MapRacesOracleDocsACUSPortfolio
Transparency

The odds oracle.

Our keeper reads Kalshi's public prices, signs the batch and anyone can relay it on-chain. Each race stores the probability of the Democratic side in basis points, with the snapshot time. The site shows pool odds next to this reference; nothing here moves funds.

Contractnot deployed
Signer—
Batches posted—
Last snapshot—
How a snapshot is made
  1. The keeper fetches every race from Kalshi's public API (no key, same data you can read yourself).
  2. It builds keccak256(chainId, oracle, ids[], bps[], ts) and signs it with the keeper key.
  3. Anyone sends the batch to post(); the contract checks the signature and keeps only newer values.
  4. The race page reads latest(id) and shows it next to the pool.
What it is not

The oracle does not settle races. Settlement is a separate call by the resolver, with a 24-hour dispute window and a refund path, documented on the docs page. The oracle is reference data so you can check the gap between the pool and the market, and so the keeper's history is public.

RaceReference (D)Snapshot timePostedVs site
The on-chain log appears here once the oracle is deployed. Until then the site reads Kalshi directly, every 90 seconds.