Polymate — Polymarket × Kalshi cross-venue arbitrage dashboard
Hackathon Investor Pick: surfaces risk-free-style locked-profit bundles between Polymarket and Kalshi—NBA search, stake split hints, and guaranteed-return readouts.
Tech Stack
Opening note
This project won Investor Pick ($200) at Vibe-Coding Day with Beta University & Stoody (Chinese session). Source: Harvey-Yuan/polymate.
Problem framing
When you manually flip between Polymarket and Kalshi to compare NBA moneylines, it is easy to miss cross-venue mispricings on what is effectively the same storyline: the APIs and UIs differ, and market copy does not always line up. Polymate pulls both sides through one normalization pipeline, aligns markets semantically, and surfaces inter-market mismatches plus classic cross-book shells in a single dashboard. When a complementary two-leg structure exists, the UI shows suggested stake splits and a guaranteed-return-style readout per $100 notional—i.e. the math of a risk-free arbitrage-style bundle you can still verify via links and house rules.
True “risk-free” execution still depends on fees, liquidity, settlement rules, and whether the legs are strictly the same event; always double-check before trading.
Where data comes from and how it is compared
| Stage | What happens |
|---|---|
| Fetch | Polymarket via Gamma API; Kalshi via NBA search endpoints; * pulls a broad NBA slice then filters locally |
| Normalize | Map both venues into shared NBAGame / moneyline structures; fix home/away orientation |
| Opportunities | Cross-book locks plus single-venue edge analytics; UI separates cross-book rows from intra-venue signals |
The goal is not to replace compliance work, but to shrink the gap between “tabbing across two apps” and “seeing whether a lock exists right now.”
Product UI (after searching “lakers”)

At the event

Technology stack
frontend:
- Next.js 14
- React 18
- TypeScript
- Tailwind CSS
integration:
- Model Context Protocol (@modelcontextprotocol/sdk)
- Zod
tooling:
- tsx / ESLint