Skip to main content

Marble Race

Marble Race uses public round data to determine the finishing order of six marbles. Five exact 64-bit draws drive a Fisher–Yates shuffle; the selected map is used only to reproduce the animation.

Interactive Marble Race verifier

See how the finishing order is decided

Edit the public round data and follow every 64-bit draw, swap, and result.

1
Step 1 of 5

Enter the public round data

Marble Race is a public round. Its seed is already in the form used by HMAC, so there is no mnemonic generation or PBKDF2 conversion.

Edit the inputUpdates automatically
Code usedPublic round inputs
const roundSeed = 'eedf44068cc1a2780edec2375df15f458b354d88c093d8b1552aca52e90f1e79'
const hashSeed = 'd881a8b6519754923c56bd84eba33133f0495e12546baf2249da6d910eb16405'
const roundId = 1193780

Technical data for this step

Seed family
Public round
Mnemonic generation
Not used
PBKDF2 conversion
Not used
HMAC key
roundSeed
HMAC message input
hashSeed + roundId + block
1 of 5

What the verification proves

  • The finishing order is deterministic. The same round seed, Bitcoin hash, and round ID always produce the same order.
  • All 64 bits are preserved. Every modulo operation uses BigInt, avoiding precision loss before a swap partner is selected.
  • The payout and animation remain separate. The shuffle determines who wins; the physics seed and map reproduce what was shown.
  • The complete calculation is visible. Public inputs, HMAC messages, 64-bit draws, swaps, order, functions, and parameters appear in the wizard.

The round seed belongs to a SHA-256 commitment chain and is published after the round. The seeds determine the finishing order; houseEdgePercent does not take part in generating it.

The race you watched

The finishing order and the animation are verified separately. The shuffle in the wizard proves which marble finishes in each position. physicsSeed() reads slot 6, and that value drives the 240 Hz simulation for the selected map.

Reproducing the simulation proves that the displayed race follows the same public round data. It does not recalculate or replace the finishing order: the map changes the track and animation, never the winner selected by the shuffle.