A decentralized platform where users submit, discover, and vote on AI prompts with zero-knowledge voting, NFT-gated premium access, and on-chain tipping on Base network.
- ZK-Powered Voting: Sybil-resistant voting using zero-knowledge proofs
- NFT-Gated Premium Access: Premium prompts unlocked with PromptPass NFT
- On-Chain Tipping: Earn ETH directly from your prompts
- AI Moderation: GPT-based content moderation via Bhindi AI
- IPFS Storage: Decentralized image storage
- Creator Dashboard: Track your prompts, earnings, and activity
- Frontend: Next.js 14, React, TypeScript, Tailwind CSS
- Web3: Thirdweb SDK, Ethers.js
- Blockchain: Base Network (Goerli testnet)
- Storage: IPFS, Google Sheets
- AI: OpenAI API (moderation)
- ZK: Semaphore Protocol (voting)
- Node.js 18+
- npm or yarn
- MetaMask or other Web3 wallet
- Thirdweb account
- OpenAI API key
- Google Cloud project (for Sheets API)
git clone <repository-url>
cd promptora
npm installCopy the example environment file and fill in your values:
cp env.example .env.localEdit .env.local with your actual values:
# Thirdweb Configuration
NEXT_PUBLIC_THIRDWEB_CLIENT_ID=your_thirdweb_client_id_here
# OpenAI Configuration (for Bhindi moderation)
OPENAI_API_KEY=your_openai_api_key_here
# Google Sheets Configuration (for Bhindi storage)
GOOGLE_SERVICE_ACCOUNT_EMAIL=[email protected]
GOOGLE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nYour private key here\n-----END PRIVATE KEY-----\n"
GOOGLE_SHEET_ID=your_google_sheet_id_here
# Discord Webhook (for Bhindi alerts)
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/your_webhook_url_here
# Contract Addresses (replace with your deployed contracts)
NEXT_PUBLIC_PROMPT_TIPPING_CONTRACT_ADDRESS=your_tipping_contract_address_here
NEXT_PUBLIC_PROMPT_PASS_CONTRACT_ADDRESS=your_pass_contract_address_hereDeploy the smart contracts to Base Goerli testnet:
- PromptPass.sol - ERC-1155 NFT for premium access
- PromptTipping.sol - Contract for ETH tips
Create a Google Sheet with the following structure:
Prompts Sheet: | promptId | title | prompt | wallet | imageUrl | premium | timestamp |
Votes Sheet: | promptId | nullifierHash | timestamp |
Tips Sheet: | promptId | fromWallet | amount | timestamp |
npm run devVisit http://localhost:3000 to see your application!
- Connect Wallet: Use MetaMask or any Web3 wallet
- Explore Prompts: Browse and search through submitted prompts
- Vote: Use ZK voting to support your favorite prompts
- Tip Creators: Send ETH tips to prompt creators
- Mint PromptPass: Unlock premium content with NFT
- Submit Prompts: Create and submit AI prompts with images
- Set Premium: Mark prompts as premium (requires NFT)
- Track Earnings: Monitor tips and engagement in dashboard
- Manage Content: View all your submitted prompts
- Create account at thirdweb.com
- Get your client ID from the dashboard
- Add to
NEXT_PUBLIC_THIRDWEB_CLIENT_ID
- Get API key from OpenAI
- Add to
OPENAI_API_KEY
- Create Google Cloud project
- Enable Google Sheets API
- Create service account and download credentials
- Share your Google Sheet with the service account email
- Add credentials to environment variables
- Create Discord server
- Add webhook integration
- Copy webhook URL to
DISCORD_WEBHOOK_URL
promptora/
โโโ app/
โ โโโ api/ # API routes
โ โ โโโ bhindi-submit/ # Prompt submission & moderation
โ โ โโโ prompts/ # Fetch prompts
โ โ โโโ vote/ # ZK voting
โ โโโ components/ # React components
โ โโโ dashboard/ # Creator dashboard
โ โโโ explore/ # Explore prompts page
โ โโโ submit/ # Submit prompt page
โ โโโ layout.tsx # Root layout
โโโ contracts/ # Smart contracts
โ โโโ PromptPass.sol # ERC-1155 NFT
โ โโโ PromptTipping.sol # Tipping contract
โโโ public/ # Static assets
โโโ package.json
- ZK Voting: Prevents Sybil attacks without storing wallet addresses
- Content Moderation: AI-powered filtering of inappropriate content
- NFT Gating: Secure premium content access
- On-Chain Tips: Transparent and secure payments
- Connect your GitHub repository
- Add environment variables in Vercel dashboard
- Deploy automatically on push
- Netlify
- Railway
- DigitalOcean App Platform
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - see LICENSE file for details
- Create an issue on GitHub
- Join our Discord community
- Check the documentation
- Real-time notifications
- Advanced analytics
- Mobile app
- Multi-chain support
- Social features
- AI-powered prompt suggestions
Built with โค๏ธ on Base network