ODDMARKETS
REAL PRICES · PUBLIC MATH

Methodology.

Every number on oddMarkets can be traced to a source you can check yourself. This page describes exactly where prices come from, how they get on-chain, and how fills, fees, and the pool work.

01Index sources

Twelve indices, each tied to the most credible free public source available. Levels are USD in 1e6 fixed point on-chain.

MARKETSOURCEQUALITY
TP-PERPFRED PPI sanitary paper products (WPU091303), scaled to USD per 12-packMONTHLY PROXY
EGGS-PERPFRED average price, grade-A eggs per dozen (APU0000708111)REAL LEVEL
LABUBU-PERPCurated reference price, updated by handREFERENCE
GPU-HOURLYvast.ai public API, median H100 SXM ask in USD per hourLIVE
SNKRS-PERPCurated reference price, updated by handREFERENCE
POKE-PERPpokemontcg.io basket: Charizard, Blastoise, Venusaur, Pikachu, Lugia (TCGplayer market), indexed to 148.2DAILY
IPHONE-RESALEFRED CPI smartphones (CUUR0000SEEE01), scaledMONTHLY PROXY
COFFEE-PERPFRED average price, ground roast per lb (APU0000717311)REAL LEVEL
AI-DOMAINSCurated reference price, updated by handREFERENCE
HOTEL-NYCFRED CPI lodging away from home (CUUR0000SEHB), scaledMONTHLY PROXY
DDR5-PERPDRAMeXchange DDR5 16Gb chip spot session average, divided by 2 for USD per GBDAILY
NAND-PERPDRAMeXchange 512Gb TLC wafer spot session averageDAILY

Scaled proxies move with the real index but are anchored to an August 2026 dollar level. Between source refreshes (every 5 minutes) a small mean-reverting interpolation keeps the mark ticking; it is bounded to ±3% around the real anchor and documented in the open source.

02The on-chain oracle

An updater posts all twelve prices to the OddOracle contract on Robinhood Chain. The perps contract refuses to trade against a price older than 10 minutes, so if the feed ever stops, trading pauses rather than filling on stale marks.

# cadence
source refresh every 5 min
on-chain post every 9 min (mainnet) / 60s (local)
staleness guard 10 min, enforced by contract

03Fill pricing

There is no order book. Fills execute against the oracle mark with virtual-depth price impact, always adverse to the taker: longs open above the mark and close below it, shorts the reverse.

impact_bps = min(100, notional / $250,000 × 100)
fill = mark × (1 ± impact_bps / 10,000)
# plus taker fee 0.06% per side; the ladder in the terminal renders this exact curve

04The pool

Liquidity providers are the counterparty to every trade. Deposits mint pro-rata shares of the pool.

fees 70% to pool · 30% to treasury
profits paid from the pool, capped at pool capacity
losses accrue to the pool
cover pool must hold ≥ 10% of total open notional

05Liquidation & funding

A position becomes liquidatable when its mark-to-oracle loss reaches 92% of margin. Anyone may liquidate and earns 2% of the margin. The funding rate shown in the terminal is derived from the real long/short open-interest skew and is indicative only; it is not currently charged to positions.