An AI-powered meme generator with zero-knowledge proof verification on the Boundless protocol. Create, verify, and share memes with cryptographic proof of generation.
- AI-Powered Meme Generation: Create memes using OpenAI's image processing capabilities
- ZK Proof Verification: Cryptographic proof of meme generation using RISC Zero
- Decentralized Storage: IPFS-based storage for generated memes
- Web3 Integration: Wallet-based authentication and blockchain verification
- Responsive UI: Modern, accessible interface built with Next.js and Tailwind CSS
- Real-time Updates: Live proof verification and transaction status
- Frontend: Next.js 14 with TypeScript and Tailwind CSS
- Backend: Express.js with Node.js
- Smart Contracts: Solidity with Foundry
- ZK Proofs: RISC Zero for verification
- Storage: IPFS (Pinata) + PostgreSQL
- AI: OpenAI API for image processing
- Node.js 18+ and npm 9+
- Foundry (for smart contract development)
- RISC Zero (for ZK proof generation)
- PostgreSQL database
- OpenAI API key
- Pinata API key
-
Clone the repository
git clone <repository-url> cd ai-meme-generator
-
Install dependencies
npm run setup
-
Set up environment variables
cp .env.example .env # Edit .env with your API keys and configuration -
Set up the database
cd backend npx prisma migrate dev npx prisma generate -
Deploy smart contracts
cd contracts forge build forge script Deploy --rpc-url <your-rpc-url> --broadcast
npm run devThis will start:
- Frontend: http://localhost:3000
- Backend: http://localhost:3001
npm run testnpm run buildai-meme-generator/
├── frontend/ # Next.js frontend application
├── backend/ # Express.js backend API
├── contracts/ # Solidity smart contracts
├── zkvm/ # RISC Zero guest programs
├── docs/ # Project documentation
└── scripts/ # Deployment and utility scripts
Create a .env file in the root directory:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/meme_generator"
# OpenAI
OPENAI_API_KEY="your-openai-api-key"
# IPFS (Pinata)
PINATA_API_KEY="your-pinata-api-key"
PINATA_SECRET_KEY="your-pinata-secret-key"
# Blockchain
PRIVATE_KEY="your-private-key"
RPC_URL="your-rpc-url"
# Boundless
BOUNDLESS_API_KEY="your-boundless-api-key"
BOUNDLESS_CONTRACT_ADDRESS="boundless-contract-address"
# JWT
JWT_SECRET="your-jwt-secret"cd frontend
npm run testcd backend
npm run testcd contracts
forge testnpm run test:e2e- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Boundless Protocol for ZK proof infrastructure
- RISC Zero for zero-knowledge proof framework
- OpenAI for AI capabilities
- Pinata for IPFS storage
If you encounter any issues or have questions:
- Check the documentation
- Search existing issues
- Create a new issue with detailed information