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
parentDomain
in src/lib/namestone.ts to your desired domain. - Customize the allowlist functionality in src/lib/allowlist.ts.
- Adding
gateway.pinata.cloud
as 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 install
Create a .env.local
file based on the template and set your environment variables.
cp .env.example .env.local
Start the development server
yarn dev