A Web3 mini application that uses AI agents to generate roasts of user selfies. Built for the Base Mini Apps, XMTP Agent, ENS, BuidlGuidl, and Ethereum Foundation hackathons.
Live Demo: https://ai-roast-generator-ivory.vercel.app
Challenge: Build an engaging, viral mini app that drives user adoption and social sharing on Base blockchain.
Implementation:
- Whimsical UI/UX with animations
- Mobile-first responsive design
- Viral mechanics with Twitter/Farcaster sharing
- On-chain payments via Base Sepolia
- Leaderboard and voting system
- Fast load times (Vite + React)
Challenge: Build agents that communicate via XMTP decentralized messaging.
Implementation:
- XMTP Agent runs as standalone service
- Routes messages to ElizaOS
- Image support via S3 URLs
- Real-time responses using ElizaOS Sessions API
- Intelligent routing by keyword
Technical Flow:
User App -> S3 Upload -> XMTP Agent -> ElizaOS Media API -> Vision Agents -> Response
Challenge: Create a mini app that works well in group chat contexts.
Implementation:
- Standalone Web3 mini app with shareable links
- Results shareable to Twitter and Farcaster
- Leaderboard for comparing roasts with friends
- Copy-to-clipboard for easy sharing
- XMTP for private agent communication
Challenge: Use ENS for human-readable names and metadata.
Implementation:
-
Agent subdomains:
- profile-roaster.aiconfig.eth
- linkedin-roaster.aiconfig.eth
- vibe-roaster.aiconfig.eth
- defi-wizard.aiconfig.eth
- security-guru.aiconfig.eth
-
ENS Avatars displayed in agent selector
-
Capabilities stored in ENS text records
-
ENSIP-TBD-11 root-context for verifiable AI context
- Standardized entry point for agentic systems
- Stores context data onchain for discovery
- Allows agents to verify metadata without proprietary formats
-
Preload verification on startup
Challenge: Build cool Web3 apps showcasing blockchain skills.
Implementation:
- Full-stack Web3 with smart contracts, XMTP agents, ENS
- Clean architecture separating frontend/backend/contracts
- Unit tests for agents and contracts
- Well-documented setup and deployment
- Production deployment on Vercel with ngrok
Challenge: Build novel applications using XMTP for messaging.
Implementation:
- XMTP messaging from mini app to agents
- Private end-to-end encrypted conversations
- Agent-to-user responses
- Cross-domain support (local, ngrok, Vercel)
Located in ai-roast-generator/
Components:
- App.tsx: Main app with state and preload checks
- QueryBuilder.tsx: Image upload and multi-agent selection
- ResultsDisplay.tsx: Roasts with social sharing
- Leaderboard.tsx: Top voted roasts
- WalletConnect.tsx: RainbowKit integration
Hooks:
- useXMTP.ts: XMTP messaging
- useAgentPayment.ts: On-chain payments
- useHealthCheck.ts: Backend connectivity
- useS3Upload.ts: Image upload
Located in xmtp-agent/
- index.ts: XMTP listener and HTTP API server
- ens-resolver.ts: ENS lookups
- Health checks on startup
- Sessions API integration with ElizaOS
Located in packages/foundry/
- AgentRegistry.sol: Agent registration and payments
- RegisterRoasters.s.sol: Agent deployment and configuration
Located in agent-marketplace/
5 agents:
- profile-roaster.ts: Dating profile analysis
- linkedin-roaster.ts: LinkedIn headshot critique
- vibe-roaster.ts: Aesthetic evaluation
- defi-wizard.ts: DeFi analysis (fallback)
- security-guru.ts: Security review (fallback)
User journey:
- Upload image (drag-and-drop or file picker)
- Select roasters (1+ agents, see total cost)
- Connect wallet on Base Sepolia
- Pay on-chain via AgentRegistry.sol
- Image uploaded to S3 (public, shareable)
- XMTP message sent to XMTP agent with S3 URL
- Agent uploads to ElizaOS and gets roast
- View result with voting and sharing options
- Share to Twitter, Farcaster, or copy link
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | React 18 + Vite | Fast, modern UI |
| Styling | CSS with light gradients | Responsive, dark mode |
| Blockchain | Wagmi + RainbowKit | Wallet and transactions |
| RPC | Alchemy | Base Sepolia chain access |
| Messaging | XMTP SDK v3 | Decentralized messaging |
| Agents | ElizaOS + OpenAI | AI with vision |
| Storage | AWS S3 | Image uploads |
| DNS | ENS | Agent discovery |
| Deployment | Vercel | Frontend hosting |
| Tunnel | ngrok | Local agent exposure |
| Metric | Value |
|---|---|
| Agents | 5 (3 roasters, 2 fallback) |
| Bounties Targeted | 6 |
| Price per Roast | 0.00001 ETH | | Max Batch | 5 agents | | Response Time | 2-3 seconds | | Image Formats | PNG, JPG, GIF, WebP |
User Experience:
- Dark/light mode with system preference
- Drag-and-drop image upload
- Confetti animation on first roast
- Real-time agent pricing
- Backend health indicator
- Clear error messages
Gamification:
- 1-5 star voting system
- Top roasts leaderboard
- Agent performance tracking
- Vote persistence via localStorage
Integration:
- Farcaster mini app registration
- Twitter share button
- Copy-to-clipboard with metadata
- ENS-backed agent discovery
# Terminal 1: ElizaOS agents
cd agent-marketplace && npm start
# Terminal 2: XMTP agent
cd xmtp-agent && npm run dev
# Terminal 3: ngrok tunnel
ngrok http 3003
# Terminal 4: Mini app
cd ai-roast-generator && npm run devVisit http://localhost:5174
cd ai-roast-generator
vercel deploy --prodVITE_REACT_APP_XMTP_API=https://[ngrok-url].ngrok-free.app
REACT_APP_XMTP_API=https://[ngrok-url].ngrok-free.appXMTP_WALLET_KEY=[your-private-key]
XMTP_DB_ENCRYPTION_KEY=[encryption-key]
AWS_ACCESS_KEY_ID=[aws-key]
AWS_SECRET_ACCESS_KEY=[aws-secret]
AWS_REGION=eu-south-1
ELIZAOS_PORT=3002
HTTP_PORT=3003SEPOLIA_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/[key]
BASE_SEPOLIA_RPC=https://base-sepolia.g.alchemy.com/v2/[key]
PRIVATE_KEY=[deployer-key]# ElizaOS agents
cd agent-marketplace && npm test
# XMTP agent
cd xmtp-agent && npm test
# Smart contracts
cd packages/foundry && forge test -v- STARTUP_GUIDE.md: Run all services
- HACKATHON.md: Project status and bounties
- xmtp-agent/README.md: XMTP agent details
- agent-marketplace/README.md: ElizaOS agents
- Video recording for viral clips
- NFT badges for top roasters
- Multi-user roasting battles
- Multilingual support
- Custom agent creation
- Native mobile apps
Protocols and Platforms:
- Base Sepolia (EVM L2)
- XMTP v3 (Decentralized Messaging)
- ENS (Domain and Metadata)
- ENSIP-TBD-11 (root-context for verifiable agent context)
- ElizaOS (Agent Framework)
Infrastructure:
- Vercel (Frontend hosting)
- ngrok (Tunneling)
- AWS S3 (Storage)
- Alchemy (RPC)
Dev Tools:
- Vite and React 18
- Foundry and Solidity
- Node.js and TypeScript
- OpenAI Vision API
MIT - Open source for the Web3 community
Status: Production Ready | Live on Vercel | All Bounties Implemented