How a market is decided
Fairness & settlement
The payout math
Pari-mutuel: there is no bookmaker taking the other side. The winning side splits both pools in proportion to stake, after fees. Fees are 2% of the pot to the protocol, plus 1% to the player who opened the duel, and never more than the losing pool, so backing the winner never returns less than your stake.
Example · NVDA vs AMD, player-made
Who holds what
Admin (deployer wallet)
CanList assets and their feeds, set fees (capped at 10% combined) and limits, pause new markets and bets, name operators.
CannotMove stakes, pick a winner, or block claims and refunds. Each market copies its feeds when it opens, so swapping a feed later can’t reach it.
Keeper (operator, optional)
CanSettle due markets so players find them final, and push a price into a relay feed when a deadline needs one. It can also pre-open the schedule without a seed and with no creator fee.
CannotSettle with a price other than the first round after the deadline. Anyone can settle; if the keeper is down, players settle their own markets when they claim.
Price feeds
CanTessera's relay feeds (AggregatorV3 interface), fed from Yahoo Finance and Coinbase when a deadline needs a price. This is a trust assumption: you rely on the operator to publish honest prices. Every price stays on-chain to audit. Chainlink's own Robinhood Chain feeds update too rarely for 5-minute rounds; Chainlink Data Streams is the planned replacement.
CannotRewrite history: every round is stored, so a settlement can always be re-checked.
Contracts
Robinhood Chain · chain id 4663Price feeds (Tessera relay, AggregatorV3)
On-chain proof
Deployed, and you can check it
Every contract and the transaction that created it, on both networks. Deployer, admin and treasury: 0x6C079ff20B77fBbc89Fb5C90c5f43Cf24166d7D4.