A social photo challenge game where users complete daily challenges by submitting verified selfies to earn rewards on the Mina blockchain. Players can chain submissions together for bonus rewards, creating a social competition with cryptographic proof of authenticity.
- Progressive Web App (PWA) - installable on mobile devices
- Native camera capture interface optimized for mobile
- Real-time photo preview and submission
- Zero-knowledge proof generation for photo authenticity
- Signature-based verification using Mina keypairs
- Non-blocking operations using Web Workers
- Real-time proof generation status
- Node.js 18.14.0+
- npm or yarn
- Modern browser with Web Worker support
- Clone the repository:
git clone https://github.com/o1-labs-XT/TouchGrass-UI.git
cd touchgrass/ui- Install dependencies:
npm install- Configure environment:
cp .env.example .env.local
# Edit .env.local with your configurationEnvironment variables:
NEXT_PUBLIC_BACKEND_URL=https://api.your-backend.com
NEXT_PUBLIC_MINA_NETWORK=devnetRun development server with mock data:
npm run devIf you have the backend running locally on port 4000:
- Update
.env.local:
NEXT_PUBLIC_USE_MOCK_API=false
NEXT_PUBLIC_BACKEND_URL=http://localhost:4000/api- Start frontend:
npm run dev- Verify backend connection at http://localhost:3000
Note: Ensure NEXT_PUBLIC_ZKAPP_ADDRESS matches the backend's ZKAPP_ADDRESS
Build for production:
npm run buildStart production server:
npm startvercel --prodOr connect GitHub repository for automatic deployments.
Run tests:
npm testRun tests in watch mode:
npm test -- --watch- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+