Nobody knows the seed when the field is sealed
Each race is decided by a Solana blockhash that does not exist yet when the entries are locked. Every marble has the same size and weight. Anyone can re-run any race from its record and get the same finish.
- 1Entries
Buys of at least 0.02 SOL since the last race. One marble per wallet. A wallet must still hold its tokens at the seal.
- 2Seal at slot C
The entry list is fixed and published with its hash: wallet, tokens, SOL bought.
- 3Seed slot C + 25
About ten seconds later. Its blockhash is unknown to everyone, us included, until that block is produced.
- 4seed = sha256(blockhash ‖ entries hash ‖ race)
The seed shuffles the start order and the launch jitter. Nothing else is random.
- 5Physics
Rapier, deterministic build, fixed 60 Hz steps, on one baked track file. Same seed, same entries: same frames, bit for bit.
Re-run any race
Download the verifier, run it with Node 20 or newer. It fetches the race record, reads the blockhash from any public Solana RPC, re-runs the race and prints the finish order and the frame hash. Every race page has the same check in the browser.
$ curl -O /shared/verify.mjs $ node verify.mjs <race number>
- Physics engine
- —
- Track
- —
- Tick
- 60 Hz fixed
- Marble
- —
