AI-powered FIFA World Cup 2026 prediction market on the Celo blockchain
CeloSeer lets users stake cUSD on match outcomes and tournament results, with odds and confidence scores generated by Claude (Anthropic). Bets are settled on-chain via a pool-based smart contract deployed to Celo Sepolia (testnet).
celoseer_/
├── frontend/ # React + Vite PWA (mobile-first dark UI)
├── backend/ # Express REST API + Claude AI predictor
├── contracts/ # Solidity smart contracts (Foundry)
└── scripts/ # Utility / helper scripts
┌─────────────────────────────────────────────────────────────────┐
│ Frontend (Vite/React) │
│ Onboarding → HomeTab → PredictTab → OddsSlip → Portfolio │
│ Auth: Privy (embedded wallet) Chain: wagmi + viem │
└──────────────────┬──────────────────────────┬────────────────────┘
│ REST API │ on-chain reads/writes
▼ ▼
┌──────────────────────────┐ ┌──────────────────────────────────┐
│ Backend (Express) │ │ PredictionMarket.sol (Celo) │
│ /api/markets │ │ - createMarket (owner) │
│ /api/predictions │ │ - placeBet (cUSD ERC-20) │
│ /api/bets │ │ - resolveMarket / cancelMarket │
│ Claude AI (Anthropic) │ │ - claimWinnings / claimRefund │
└──────────────────────────┘ └──────────────────────────────────┘
- Node.js 18+
- Foundry (
curl -L https://foundry.paradigm.xyz | bash) - A Privy App ID (auth) and Anthropic API key (AI predictions)
cd frontend
cp .env.example .env # fill VITE_PRIVY_APP_ID etc.
npm install
npm run dev # → http://localhost:5173cd backend
cp .env.example .env # fill ANTHROPIC_API_KEY, PORT etc.
npm install
npm run dev # → http://localhost:4000cd contracts
forge install
forge build
forge test
# Deploy
forge script script/Deploy.s.sol \
--rpc-url alfajores --broadcast --verify
# Create 26 markets (8 tournament + 18 group-stage)
CONTRACT_ADDRESS=0x... forge script script/CreateMarkets.s.sol \
--rpc-url alfajores --broadcast| Contract | Address |
|---|---|
PredictionMarket |
0x91F8763B119CA7EC990ECCD0Db6A19ca13cAfDDa |
cUSD (Alfajores) |
0x874069Fa1Eb16D44d622F2e0Ca25eeA172369bC1 |
| Feature | Status |
|---|---|
| Privy auth (email + social login) | ✅ Complete |
| Onboarding with multilingual support (16 langs) | ✅ Complete |
| Home tab – hero slider, fixtures, highlights | ✅ Complete |
| Standings tab – live group/knockout display | ✅ Complete |
| Predict tab – AI market feed from backend | ✅ Complete |
| Insights tab – AI accuracy stats & hot markets | ✅ Complete |
| OddsSlip – on-chain bet placement (2-step approve+bet) | ✅ Complete |
| Profile tab – portfolio, balance, positions | ✅ Complete |
| Backend AI predictor (Claude Sonnet 4.6) | ✅ Complete |
| Smart contract – pool-based market, 2% fee | ✅ Complete |
| On-chain odds read (refetch every 15s) | ✅ Complete |
| Live vs AI odds labelling in UI | ✅ Complete |
| Market creation script (26 markets) | ✅ Complete |
| Celoscan contract verification | ✅ Ready |
| WebSocket real-time odds stream | 🔲 Planned |
| Push notifications | 🔲 Planned |
| Result oracle / auto-resolution | 🔲 Planned |
| Mainnet deployment | 🔲 Planned |
| Layer | Technology |
|---|---|
| Frontend framework | React 19 + Vite 8 |
| Wallet & auth | Privy v3 (@privy-io/react-auth) |
| Blockchain reads/writes | wagmi v3 + viem v2 |
| Smart contract language | Solidity 0.8.24 |
| Contract toolchain | Foundry (forge/cast/anvil) |
| Backend | Express 4 (ESM) |
| AI engine | Anthropic Claude Sonnet 4.6 |
| Styling | Vanilla CSS (dark mode, glassmorphism) |
- Frontend README — component reference and design system
- implementation.md — technical deep-dive on each layer
- integration.md — how frontend ↔ backend ↔ contract connect
Built with ❤️ for the Celo ecosystem — FIFA World Cup 2026