Your seed pair
- Server seed: a secret random value. Before you bet you see only its SHA-256 hash, which commits us to it.
- Client seed: yours. Change it to anything you like, at any time.
- Nonce: a counter that rises by one with every bet, so no two bets share an input.
From seeds to a result
Mix the inputs
HMAC-SHA256 with the server seed as the key and “client seed:nonce” as the message gives 64 hex characters.
Make a number
The first 13 hex characters, divided by 2^52, give a number from 0 up to 1.
Apply the game
Dice turns it into a roll from 0.00 to 99.99. Games that need more numbers, such as Mines or Slots, add “:1”, “:2” and so on to the message.
Check it yourself
Rotate your seed
In the fairness panel, rotate to reveal your current server seed and start a fresh pair.
Compare the hash
The SHA-256 of the revealed seed must equal the hash you were shown before betting.
Recompute
Enter the seed, client seed and nonce in the verifier, or any HMAC-SHA256 tool, and you get the same result.
Crash: a hash chain
Crash rounds are shared, so they use a hash chain made before the first round. Each crash point comes from HMAC-SHA256 of the round’s hash with a fixed salt, and the SHA-256 of a round’s hash equals the previous round’s hash, so the whole sequence was fixed in advance. See Crash.
Draws: commit and reveal
Each draw publishes its seed’s hash when it opens. At draw time, winning ticket = floor(float × tickets sold) + 1, with the float from HMAC-SHA256 of the seed and “draw ID:tickets sold:last ticket ID”. The seed is revealed straight after. See Prize draws.
What fairness does not mean
Provably fair means a result can’t be changed after you bet. It doesn’t remove the house edge, and a losing streak never makes a win more likely.
Last updated
