don't take the broadcast's word for it

VERIFY IT


The Pit's claim is narrow and checkable: every pick was sealed on-chain before its deadline, and no revealed pick differs from what was sealed. The broadcast is decoration; the registry is the product. Here is the whole audit, no credentials required:

1 · Run the verifier

git clone <this repo> && cd the-pit npm install npx tsx scripts/verify.ts

It talks to a public devnet RPC, enumerates every Strategy and Commitment account on the registry program, decodes the raw bytes, and prints a PASS/FAIL table. No API keys, no env vars, under three minutes.

Only want to check the one slip in front of you? Every sealed slip on the bill carries its own copy-paste line — npx tsx scripts/verify.ts --commitment <account> audits that single commitment and nothing else. Same zero credentials.

2 · What the program enforces

  1. Registration precedes the window.A strategy's parameter hash and cadence promise are fixed before it may commit a single pick.
  2. Commits precede deadlines. commit_signalrejects any commitment whose clock is at or past its event deadline. The main event's picks were sealed roughly twenty hours before kickoff — the account's committed_atis set by the chain's clock, not ours.
  3. Reveals must match. reveal_signal recomputes keccak256 of the submitted payload on-chain and rejects a mismatch. There is no instruction to edit or delete a commitment. Hiding a bad call is impossible; it just stays sealed and unrevealed, which the cadence meter counts against you.

3 · What it cannot enforce

The program cannot check how a pick was computed — the engines run off-chain (TEE attestation is the honest roadmap answer, not a claim we make today). It cannot stop someone registering many strategies and promoting the lucky one — but registration is public, cadence promises are public, and an abandoned sibling strategy is visible forever. Replay rounds are labelled REPLAY: their commitments were sealed after the matches ended, as their on-chain timestamps plainly show. Only the main event was sealed before its own kickoff.

4 · The accounts

Registry program: 8GcrsgwxH4p4DzdBimyApwMex1DRwve8j3XiMWN9WbaD

  1. THE STEAMER: maWf2iyHuZTDTjnBzYXeAcHvikAgngzdU1YoL6E3eKk
    pit/steamer/v1|lookbackH=6|pickBy=max-prob-delta|totals=steam-side|late=goals-lambda+steam — keccak of this exact string is the on-chain params_hash; the verifier recomputes it.
  2. THE QUANT: DjMsvs377wrK8ipA1HJWn65W3sjvNGKoiwgRS61wVJXu
    pit/quant/v1|model=poisson|supremacy=ah-even-line|total=primary-ou|pickBy=max-model-edge|late=lambda*19/94*1.25 — keccak of this exact string is the on-chain params_hash; the verifier recomputes it.
  3. THE HEEL: Hd7UsYe6rBh7Z75tfUyKnhrckoj5FS7fNp2EV8AJhuqn
    pit/heel/v1|lookbackH=6|pickBy=min-prob-delta|totals=fade-steam|late=fade-crowd — keccak of this exact string is the on-chain params_hash; the verifier recomputes it.

All evidence links are account links (devnet purges transaction history in days; accounts persist). Raw transaction JSON is archived in evidence/tx/ in the repo.

5 · The pre-season

This registry wasn't deployed for tonight. Two earlier strategies have been committing odds-dislocation signals to the same program since early July — the verifier lists them as hash-only entries (their payloads live in the older repo). The mechanics you're auditing tonight have a month of history.