Tether Developers CupPears + QVAC + WDK

A football prediction market with no server.

The swarm is the exchange. The crowd is the oracle. Every fan holds their own keys.

Curva lets any group of football fans run a real-money prediction market among themselves — bets matched by the peers in the room, results called by the crowd actually watching the match, and winnings settled wallet-to-wallet in USDt. No company in the middle. No account. Nothing to shut down.

Kill any machine in the swarm — including the one that created the market — and the market keeps trading.
0
Servers
0
Tests, all green
0
Languages, local AI
0 phones
All it takes

01 What Curva is

The terrace, rebuilt as a protocol.

The curva is the curved stand behind the goal where the ultras gather — thousands of fans, no assigned seats, moving as one. No single fan is the crowd; the crowd only exists in the aggregate. Curva is a betting market built the same way: every phone holds a piece of the ledger, and the market only exists in the swarm. Everyone “knows” a prediction market needs three centralized things. Curva removes all three.

No exchange server

The swarm matches

Every bet is a signed message on that fan's own append-only log; pool odds are recomputed live on every phone. Payout is a pure function of the final bet-set — merge order doesn't matter, so partitions heal for free. The only ordered event is the betting cutoff.

Their version: a matching engine in a data centre.
No oracle company

The crowd calls it

At watch-party scale everyone is literally watching the answer. On-device speech recognition hears the score from the commentary and pre-fills an attestation; the crowd signs a dual ⅔ quorum of stake and writers. No feed, no fee, no referee-for-hire.

Their version: an oracle company you must trust.
No custodian

You hold the money

One seed phrase derives your identity key and a self-custodial USDt wallet. Settlement is just netting: the payout manifest reduces to a minimal set of transfers, and each loser signs their own. At no point does anyone — or any company — hold the pot.

Their version: your balance on their books.
Polymarket needs AWS, an oracle firm, and a custodian.
Curva needs two phones.

02 How you take part

One match night, start to square.

This is the whole lifecycle of a market — called a terrace — exactly as the code runs it. Anyone can host; everyone else joins with a single invite key. No sign-up, no deposit into anyone's platform.

01

Get your keysEvery fan

One seed phrase derives everything: the identity key that signs your every message, and your own USDt wallet. There is no account to create — your keys are your membership.

02

Open a terraceAny fan

Someone opens a market for tonight's match and shares an invite key with the group chat. Mates join over Hyperswarm — from the same pub or three time zones away.

03

Back your hunchEveryone

Match result, total goals, first scorer, correct score, minute-by-minute micro-rounds — pick a market, stake USDt, and watch the parimutuel odds shift live on every screen as the pool moves.

04

Lose the host — nothing happensThe swarm

The fan who created the market closes their laptop. The market keeps trading and every peer still converges to the same state, because there is no host — only the swarm.

05

Kick-off locks the bookThe protocol

At cutoff the market fences: the one moment that needs ordering, and the only one the protocol pays for. Late bets are dropped deterministically on every peer.

06

The crowd calls full timeThe oracle

Each phone's on-device speech recognition hears the final score from the commentary and pre-fills an attestation — one tap to confirm or correct. When ⅔ of the stake and ⅔ of the writers agree, the outcome stands. Disputes void the market and refund every stake.

07

Settle wallet-to-walletThe winners

Payouts are netted to the minimal set of transfers — seven debts might collapse into three. Each loser signs their own USDt transfer from their own wallet; receipts land on every log. Everyone's square.

03 Why it's worth it

Everything the bookie takes, you keep.

Curva is for the people football betting was taken from: the watch party, the supporters' club, the expat crew streaming the derby at 3am. Real stakes among your own crowd — without handing a platform your margin, your custody, or your data.

No house edge baked in

Odds aren't quoted by a bookmaker with a 5–10% margin — they're just the pool, split among winners. Conservation is exact to the cent: every stake comes back out as payout, with rounding dust returned to winners, not skimmed to a treasury.

Your money never leaves your wallet

There is no deposit, no platform balance, no withdrawal request pending review. USDt sits in your self-custodial wallet until the moment you settle — and then it moves peer to peer.

No account, no KYC, no surveillance

A seed phrase is the entire onboarding. No email, no ID upload, no behavioural analytics deciding you're winning too often. The protocol has no backend to collect anything.

Unstoppable by construction

There's no company to sanction, no domain to seize, no server to subpoena. The market lives on the fans' own devices, and it survives any of them — including its creator — going dark.

AI at the terrace, not in the cloud

A local LLM — the Gaffer — banters over the match, chat is translated across 32 languages, and speech recognition hears the score, all on-device. A mic in a pub demands local inference; nothing you say leaves the room.

Trust tiers that match real life

Mates Mode for people who share a table. A 2-of-3 steward escrow for pools among strangers. Threshold custody on the roadmap, so the swarm itself becomes the custodian.

04 How it's different

Same thrill. None of the middlemen.

Every existing way to bet on football reintroduces the same three chokepoints — a matching engine, an oracle, a custodian. Curva is the first design where all three dissolve into the crowd itself.

Traditional bookmaker On-chain markets
(Polymarket-style)
Curva
Who matches bets Their servers quote the odds An order book on cloud infra The swarm — pool odds computed on every phone
Who calls the result The house An oracle company you pay and trust The crowd watching, under a dual ⅔ quorum
Who holds your money They do — your balance on their books Contracts, bridges, custodial ramps You do — self-custodial USDt, settled wallet-to-wallet
The house edge 5–10% margin baked into every price Trading fees and spread None baked in — the pool pays the winners, dust included
Getting in Account, KYC, deposit, geo-blocks Wallet plus geo-blocks and ramps A seed phrase and an invite key. That's it
Infrastructure Data centres Cloud servers + a blockchain Two phones. The demo runs with no network at all
Kill switch Licence pulled → market gone Domain or API seized → market frozen There isn't one. Kill any machine; the market keeps trading

05 Built on three tracks

Each one is load-bearing.

Curva is a Tether Developers Cup entry built on the full stack — Pears, QVAC, and WDK. These aren't checkbox integrations: remove any single one and the product ceases to exist.

Pears

The market

Hyperswarm discovery · Autobase multi-writer ledger with a deterministic apply fold · Hyperbee view · the cutoff fence · pear deploy.

Remove it → there is no market.
QVAC

The oracle

On-device ASR → score extraction → attestation pre-fill · a local-LLM Gaffer · chat translated locally across 32 languages. Zero cloud AI.

Remove it → there is no oracle.
WDK

The money

One seed → the HD identity key that signs every message + a self-custodial USDt wallet · minimal-transfer netting · transfers · receipts.

Remove it → there is no money, no identity.

06 Proven, not asserted

A CS thesis with tests.

The core claim — a parimutuel pool is a CRDT, so the market needs no consensus and no server — is checked by 237 property, fuzz, quorum-safety, and end-to-end tests, all green in CI.

  • Conservation — Σ payouts + Σ fees ≡ Σ stakes, exactly, for arbitrary bet sets.
  • Commutativity — any permutation, partition, or merge of the same bets yields identical pools and payouts.
  • Convergence under fuzz — 100 adversarial swarm runs (churn, partitions, late bets, whales) heal to one byte-identical view.
  • Quorum safety — the dual ⅔ threshold makes two outcomes reaching quorum mathematically impossible.
  • Netting soundness — the transfer set settles every party exactly, in ≤ n−1 edges.
  • Serverless by construction — the headless demo exercises the entire pipeline with no network at all.

07 Get started

See the whole thesis in two minutes.

Everything runs from one repo. Start with the headless demo — it plays an entire match night (bets, host-kill, cutoff, crowd oracle, netting, settlement) with no network and no external services — then run the live P2P app with your own crowd.

Step 1 · The proof

Run the demo

One command replays the entire match-night pipeline, headless. Watch the host die and the market keep trading in your own terminal.

# needs Node ≥ 20.19
git clone https://github.com/rajkaria/curva
cd curva && npm install
npm run demo

# typecheck + lint + 237 tests
npm run check

Uses clearly-labelled in-memory fakes for wallet and speech — the whole claim is verifiable with nothing else installed.

Step 2 · The real thing

Open a terrace

Run the live app on the Pear runtime, open a market for tonight's match, and share the invite key with your crowd. They join from anywhere.

# install the Pear P2P runtime
npm install -g pear

# build & launch the app
npm run build
pear run apps/terrace

Host, join, bet, resolve, settle — every phone in the swarm is a full peer holding its own ledger and its own keys.

The market is the crowd.

No server to rent, no oracle to pay, no custodian to trust. Just fans, phones, and a protocol that can't be switched off.