Prediction Market

Final Score β€” On-Chain Sports Prediction Markets (Live on Mainnet)

Hey everyone :waving_hand:

I’ve been building Final Score, a fully on-chain sports prediction market running on the Internet Computer. It’s been stable on mainnet for the past 24 hours and I’m looking for collaborators, testers, and anyone interested in prediction markets or AI agent infrastructure.

What is Final Score?

Final Score is a prediction market running entirely on-chain on the Internet Computer. Markets are synced from Polymarket via an off-chain worker, and when they resolve, the canister does a direct HTTP outcall to Polymarket to fetch the outcome β€” no trusted intermediary needed for resolution.

It uses the standard $1 contract model (same as Polymarket/Kalshi) β€” you buy outcome shares at a price between $0 and $1, and winning shares pay out $1. Simple, familiar, composable.

We started with sports but the architecture works with any market on Polymarket β€” politics, crypto, world events, whatever. The sync worker just needs to be pointed at new categories.

:globe_with_meridians: Live App: vn2t6-yiaaa-aaaai-q4b4q-cai.icp0.io
:package: GitHub: github.com/jneums/final-score
:robot: MCP Endpoint: https://ilyol-uqaaa-aaaai-q34kq-cai.icp0.io/mcp

Current Stats

  • 685 markets synced (628 currently open)
  • 47 markets resolved with successful payouts
  • 6 sports covered so far: Football, Basketball, Cricket, Baseball, Hockey, American Football
  • Multi-league: Premier League, La Liga, Bundesliga, Serie A, Ligue 1, Champions League, WNBA, and more
  • Expandable to any Polymarket category

How It Works

  1. Connect your ICP wallet
  2. Approve token spending (ICRC-2)
  3. Buy outcome shares on a market (priced $0–$1)
  4. Winning shares pay out $1 β€” all settled on-chain

Markets are synced from Polymarket and resolution is verified via HTTP outcalls directly to Polymarket’s API. No oracle trust assumptions beyond Polymarket itself.

Note on tokens: We’re currently using a test ICRC-1 token from the DFINITY faucet while we finalize the token choice. Options on the table are ckUSDC, 1sec USDC, or ICP. Happy to hear opinions on this.

The AI Agent Angle (MCP)

This is where it gets interesting. Final Score is built as an MCP (Model Context Protocol) server, meaning AI agents can natively interact with it. Any MCP-compatible agent can:

  • Browse and filter markets
  • Check account balances
  • Place predictions
  • Claim winnings

The MCP endpoint exposes 7 tools that any agent can call. If you’re building AI agents on ICP or experimenting with MCP, this is a live production target to test against.

What I’m Looking For

I’m at the stage where the core system works and I need people to battle-test it and help push it forward. Here’s where you can contribute:

:test_tube: Testers

Try the app, place some predictions, break things. I need eyes on the UI, the wallet connection flow, and the trading experience. Bug reports are gold.

:money_bag: Market Makers

The markets need liquidity. If you’re interested in providing liquidity across sports markets, I’d love to chat about strategies and tooling to make this easier.

:robot: AI Agent Builders

If you’re building MCP-compatible agents or experimenting with autonomous trading, Final Score is a live sandbox. Point your agent at the MCP endpoint and see what it can do. I’m especially interested in agents that can:

  • Analyze match data and place informed predictions
  • Provide automated liquidity across markets
  • Build dashboards or analytics on top of the market data

:hammer_and_wrench: Bot & Strategy Developers

Want to write a trading bot? The canister interface is fully documented and the MCP endpoint makes integration straightforward. The $1 contract model means you’re trading shares at market prices β€” find mispriced outcomes and profit.

:satellite_antenna: Market Expansion / Sync Contributors

The sync worker currently pulls sports markets from Polymarket, but the architecture supports any category β€” politics, crypto, entertainment, world events. If you’re interested in helping expand market coverage or improving the sync pipeline, there’s plenty of room.

:artist_palette: Frontend Contributors

The app is React + Vite deployed as an ICP asset canister. There’s plenty of room for UI/UX improvements β€” better market cards, live odds visualization, mobile experience, portfolio analytics. The repo is open source.

Tech Stack

  • Backend: Motoko canister on ICP
  • Frontend: React + Vite (asset canister)
  • Token: ICRC-2 compatible (currently test token, deciding on ckUSDC / 1sec USDC / ICP)
  • Market Sync: Off-chain worker syncs markets from Polymarket
  • Resolution: HTTP outcalls from canister directly to Polymarket API
  • Protocol: MCP (Model Context Protocol) for AI agent integration

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Polymarket     β”‚      β”‚   Final Score    β”‚      β”‚   Token Ledger  β”‚
β”‚  (Market Data)  │◀────▢│   Canister       │◀─────│   (ICRC-2)      β”‚
β”‚                 β”‚      β”‚   (MCP Server)   β”‚      β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β–²                         β”‚
        β”‚                         β”‚ MCP Protocol
   Off-chain                      β”‚
   Sync Worker           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
   (Market Sync)         β”‚   AI Agents /   β”‚
                         β”‚   Users         β”‚
                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Get Involved

Would love to hear feedback, ideas, or just what breaks when you try it. This is early and I’m building in the open.

4 Likes