Create gasless ENS subdomains for your Farcaster profile, automatically generating an IPFS-hosted profile page that resolves to farcastname.tweakin.eth.
- 🔗 Claim Farcaster username as ENS subdomain
- 🆓 Completely free and gasless
- 🖼️ Auto-generates IPFS profile page
- 🔄 Syncs Farcaster profile picture and bio
- 🌐 Automatic ENS resolution setup
You'll need API keys from:
- Namestone
- Neynar
- Pinata (Premium plan required for .html uploads)
- Firebase Service Account - (OPTIONAL) can be used to create an explorer page of all subdomains registered.
- Custom local API key
Create a .env file with your API keys and configuration:
NAMESTONE_API_KEY=your_key_here
NEYNAR_API_KEY=your_key_here
PINATA_API_KEY=your_key_here
PINATA_SECRET_KEY=your_secret_here
LOCAL_API_KEY=your_chosen_key- Go to Firebase Console → Project Settings → Service Accounts
- Create new service account
- Download JSON credentials
- Save as
brotatdao-firebase.jsonin root directory- To use a different filename, update reference in
databaseUpload.ts
- To use a different filename, update reference in
- Update
NEXT_PUBLIC_URLin/app/config.ts- Set to production URL or ngrok tunnel
- Modify project name in Pinata upload function:
pinata.pinFileToIPFS(Readable.from(htmlBuffer), { pinataMetadata: { name: `PROJECTNAME/${profileName}/index.html` } })
- Update ENS domain in
route.tsxregisterSubdomain API call:domain: 'tweakin.eth'
pnpm installGood for UI testing, subdomain API gateway may not work.
pnpm run dev- Access Frog's frame tester at
http://localhost:3000/api/dev - Set
devtools: trueinroute.tsx
Full functionality including subdomain API gateway.
pnpm build
pnpm start- Visit Warpcast Frame Validator
- Enter the ngrok URL from your terminal
- Use ngrok tunnel for local development testing with the warpcast frame validator
- Enable devtools in development mode
- Verify frame responses using Warpcast validator
- Check IPFS uploads through Pinata dashboard
This project is licensed under the MIT License - see the LICENSE.md file for details.