This is a single page application that lets users register and manage their offchain ENS subnames via the NameStone API.
Namestone is an API for easy subdomain management and issuance. Follow their docs to set up a free account.
Pinata is a cloud storage provider that supports pinning content to IPFS. We use it to store ENS avatar images. Follow this guide to create the relevant API key (it needs Admin permissions).
Upstash is a Redis provider that we use for storing allowlisted addresses. Customize the allowlist functionality in src/lib/allowlist.ts.
- Change the
parentDomainin src/lib/namestone.ts to your desired domain. - Customize the allowlist functionality in src/lib/allowlist.ts.
- Adding
gateway.pinata.cloudas an approved host in next.config.mjs is good for optimizing image loading, but also allows proxying of any IPFS content through your domain. If this is an issue, remove the host and change<Image />to<img />in src/components/ProfileCard.tsx.
Install dependencies
yarn installCreate a .env.local file based on the template and set your environment variables.
cp .env.example .env.localStart the development server
yarn dev