Inspiration
PolyDraft started from three observations.
First, we believe the best way to onboard people to prediction markets on-chain isn’t to teach them about wallets and keys, but to meet them inside a familiar experience they already enjoy. Fantasy sports is a massive industry where millions of users already understand drafts, lineups, leaderboards, and the culture of friendly competition, which makes it a natural on-ramp for bringing this audience into Web3 without changing their behavior.
Second, most conversations aren’t just about sports. People argue about elections, ETH/BTC prices, macro news, and pop culture. We wanted a way for that energy to live in a fantasy-like format, where you “draft” your convictions using real Polymarket markets instead of players.
Third, people like beating their friends more than placing solo bets against a house. Head-to-head leagues are social, creating return visits and moments that blow up the group chat. Polydraft combines all three by hosting prediction markets in a fantasy league where beating your friends is just as compelling as a profitable trade.
What It Does
Polydraft is a mobile-first fantasy app for prediction markets:
- Users create or join leagues built on Polymarket yes/no markets (e.g., “Will BTC be above X?”).
- Instead of drafting athletes, players draft markets as their “picks” — stances on real-world outcomes.
- Commissioners configure season length, scoring rules, and starting budgets, then share a join code.
- Drafts follow a snake order; players hold their picks until market resolution.
- As Polymarket prices change, leaderboard standings update based on profitable outcomes and head-to-head victories.
League Modes:
- Simulated Leagues (default): Virtual balances mirror real market prices, safe for onboarding.
- Paid Leagues (in progress):
- Buy-ins and prizes in USDC on Base.
- Funds bridge Base → Polygon to settle real Polymarket trades.
- Standardized position sizes keep the UI simple.
- Buy-ins and prizes in USDC on Base.
How We Built It
Frontend / UX:
- Mobile-first Next.js app with bottom navigation (Home / Draft / Leagues / Settings).
- Fantasy-style draft room with turn order, available markets, and user picks.
- UX hides crypto complexity while keeping the system transparent.
Data + Realtime:
- Supabase handles Postgres, authentication, and realtime updates.
- Realtime channels keep drafts synchronized (turn order, duplicate prevention, reconnects).
Polymarket Integration:
- Server routes proxy Polymarket APIs to fetch market lists, prices, and resolutions.
- Data is normalized into a lightweight format for mobile.
Base + USDC + Circle:
- App targets Base (Sepolia for testing).
- Paid leagues: players fund participation in USDC on Base → bridged to Polygon for Polymarket execution.
- Compatible with Base mini-app distribution.
Challenges
- Simplifying order books into draftable “player cards” for UX.
- Maintaining consistent real-time drafts with minimal backend.
- Normalizing Polymarket data for small-screen mobile display.
- Designing clear, idempotent cross-chain funding flows with fallbacks and status updates.
Accomplishments
- Working end-to-end draft flow with real Polymarket markets.
- Friction-light onboarding hiding Web3 complexity.
- Robust realtime layer handling leagues, drafts, and picks without heavy infrastructure.
- Clear design for USDC-funded paid leagues bridging into Polymarket.
What We Learned
- Supabase + thin server logic can power collaborative onchain-adjacent apps.
- Good cross-chain UX requires idempotency, clear status transitions, and recovery paths.
What's Next
Paid League Flow: Persist user wallets/proxies, implement verified webhooks/polling, gate league readiness based on funding completion.
Onchain League Logic: Deploy LeagueManager/escrow contract to hold USDC, enforce payouts, and integrate Polymarket execution.
ERC-20 In-Game Currency: Scoped token for free leagues, engagement rewards, cosmetic unlocks, and XP-style progression.
Product Polish: Expand profiles, leaderboards, scoring, historical records, guardrails for paid leagues, and monitoring for public beta.
Built With
- base
- javascript
- next.js
- polygon
- polymarket
- react
- supabase
- vercel
Log in or sign up for Devpost to join the conversation.