A decentralized prediction market platform built on Ethereum with a modern tech stack.
This is a monorepo managed by Turborepo and pnpm workspaces:
vamos/
├── apps/
│ ├── contracts/ # Solidity smart contracts (Foundry)
│ ├── indexer/ # Blockchain indexer (Ponder)
│ └── web/ # Frontend application (Next.js)
├── .env # Centralized environment variables
└── package.json # Root package with convenient scripts
pnpm installCreate a .env file in the root directory. See ENV_SETUP.md for details.
# Run all apps
pnpm dev
# Or run specific apps
pnpm web:dev # Start web app
pnpm indexer:dev # Start indexer
pnpm contracts:build # Build contracts- MONOREPO_GUIDE.md - How to use the monorepo, run scripts, and manage packages
- ENV_SETUP.md - Environment variables configuration
- FARCASTER_SETUP.md - Farcaster integration setup
Solidity smart contracts for the prediction market, built with Foundry.
Key Commands:
pnpm contracts:build- Compile contractspnpm contracts:test- Run testspnpm contracts:deploy:vamos- Deploy Vamos contractpnpm contracts:deploy:token- Deploy prediction token
Real-time blockchain indexer built with Ponder for efficient data querying.
Key Commands:
pnpm indexer:dev- Start indexer in developmentpnpm indexer:start- Start indexer in production
Next.js frontend with Farcaster Frame integration and Web3 connectivity.
Key Commands:
pnpm web:dev- Start dev serverpnpm web:build- Build for productionpnpm web:start- Start production server
- Smart Contracts: Solidity, Foundry, OpenZeppelin
- Indexer: Ponder, PostgreSQL
- Frontend: Next.js 14, TypeScript, Tailwind CSS
- Web3: wagmi, viem, Farcaster SDK
- Monorepo: Turborepo, pnpm workspaces
pnpm build # Build all apps
pnpm dev # Run all apps in development
pnpm lint # Lint all apps
pnpm type-check # Type check all apps
pnpm clean # Clean build artifacts