DonutKing — standalone round verifier
Plain HTML + JavaScript, no framework, no network: everything below is computed in your browser with the Web Crypto API. Paste the export from /fairness (or type the inputs) and compare the outcome line. Every mapping and table this page uses is in its own source, so you can read it to check it; the game rules are on /rules. This file lives at /verify.html; save it and open it from your disk to run it fully offline.
Every round carries the rules version it was played under (the site verifier's export includes it). Rounds from before the 2026-09-15 retune are v1 (coinflip 1.96× and the old multipliers, plinko and crate tables); everything since is v2. Crash and Hi-Lo joined v2 on 2026-10-01 without moving any other constant (a crash cash-out multiplier is the one the server stamped when your request arrived). Both constant sets are embedded below — pick the round's version, or the replay will not match.
Live Crash (since 2026-10-08) is one shared round for everybody: its crash point comes from a link of a pre-generated SHA-256 hash chain plus a public salt, not from your seeds. A Crash entry's export verifies above like any round (the round's revealed hash is its server seed, the previous link its commitment, salt:chainIndex its message); the Live Crash round box at the end checks the round itself — that its hash chains back to the previous round and to the chain's published terminal hash.
Board and settlement (JSON)
Live Crash round
Paste /api/crash/round/<number>'s JSON (or type the values). The crash point is max(1.00, floor(94·10⁶ ÷ (floor(f × 10⁶) + 1)) ÷ 100) with f the first float of HMAC-SHA256(key = round hash, "salt:chainIndex:0") — Limbo's mapping, the same as the per-player Crash. SHA-256(round hash) must equal the previous round's hash (the chain's terminal hash for its first round); walking chainIndex steps must reach the terminal hash.