SSL Secured·Provably Fair·Rankings powered by real deposit volume data·Updated Jul 2026·18+ Gamble Responsibly
Dice Verification · 8 Min Read · Jun 2026

HOW TO VERIFY PROVABLY FAIR DICE

AM
Alex Mercer · ProvenlyFair.com Editorial Team
Updated Jul 20268 min read
Dice is the simplest provably fair game to verify by hand — and the best place to learn how the whole system works. You bet on whether a roll between 0.00 and 100.00 will land above or below a target, and a provably fair Dice game lets you prove the number was fixed before you bet, not nudged across your threshold afterwards. This guide shows the exact formula that turns an HMAC-SHA256 hash into a roll, walks through a real worked example you can reproduce, and links you to our free Provably Fair Verifier tool.

Verify Your Last Dice Roll Right Now

Grab your server seed, client seed, and nonce from your casino's fairness page and paste them into our verifier. It reproduces the exact roll calculation in your browser — completely free, no sign-up required.

Open Provably Fair Verifier

The Three Seeds and What Dice Verification Proves

Every provably fair Dice bet is built from three inputs. The server seed is a random string the casino generates and keeps secret during play — but it commits to it in advance by publishing its SHA-256 hash, like a sealed envelope. The client seed is yours; you can set it to any value, which guarantees the casino could not have pre-selected a roll. The nonce is a counter that increases by one with every bet on that seed pair.

For Dice specifically, verification proves one thing precisely: the roll was fixed before you placed your bet, and was not nudged across your win/loss threshold afterwards. Because the server seed hash was published before the round and you chose the client seed, neither side can change the number once the bet is locked. After you rotate (retire) the seed pair, the casino reveals the unhashed server seed and you can recompute every roll. For the general mechanics across all games, see our complete guide to verifying provably fair results.

How the Hash Becomes a Roll: The Real Formula

Dice on Stake — the operator that popularised this method and publishes the algorithm openly — converts an HMAC-SHA256 hash into a roll with a short, exact chain. The same logic is implemented in the widely used open-source reference verifier lucasholder/fair, which is explicitly built to match Stake's output. Here are the steps:

  • 1
    Build the HMAC. The server seed is the HMAC key; the message is the string clientSeed:nonce:cursor. Computing HMAC_SHA256(serverSeed, "clientSeed:nonce:cursor") produces a 32-byte hash (64 hex characters). For a single dice roll the cursor is 0.
  • 2
    Take 4 bytes, make a float. The first 4 bytes are turned into a decimal between 0 and 1 with the formula byte₀/256¹ + byte₁/256² + byte₂/256³ + byte₃/256⁴. This spreads the value evenly across the interval [0, 1).
  • 3
    Scale to the roll range. Multiply the float by 10001 and round down, then divide by 100: roll = floor(float × 10001) / 100. Stake's dice covers the inclusive range 0.00–100.00, which is exactly 10,001 distinct two-decimal outcomes — that is why the multiplier is 10001, not 10000.

That is the whole conversion. Crucially, the house edge is not in this number at all — the roll is a pure, uniform value. The edge is applied separately, through the payout multiplier the casino offers for your chosen win chance. So a perfectly fair roll and a long-run house advantage coexist, which is exactly what verification should confirm.

Skip the Maths — Let the Tool Do It

You do not have to compute HMACs by hand. Paste your seeds and nonce into our verifier and it reproduces the roll formula above instantly, in your browser, with nothing sent to a server.

Launch the Verifier Tool

Worked Example You Can Reproduce

Let us derive a real roll from real inputs. These are genuine values computed with HMAC-SHA256 — paste them into any HMAC tool (or our verifier) and you will get the identical hash.

InputValue
Server seedserverSeed123
Client seedclientSeed456
Nonce1
Cursor0
  • 1
    Compute the HMAC. HMAC_SHA256("serverSeed123", "clientSeed456:1:0") =
    09a4e5c0d95150fed64b44b5029cec252ffeabc4de60292df9e70f437a1de445
  • 2
    Read the first 4 bytes. The leading hex pairs are 09 a4 e5 c0, i.e. the decimal bytes 9, 164, 229, 192.
  • 2
    Convert to a float. 9÷256 + 164÷256² + 229÷256³ + 192÷256⁴ = 0.03767239.
  • 3
    Scale to a roll. 0.03767239 × 10001 = 376.76, floor = 376, ÷ 100 = 3.76.

Result: these seeds at nonce 1 roll 3.76 — every single time, on any machine. If you had bet "roll over 50" you would lose; if you had bet "roll under 50" you would win — and the casino could not have changed which side of the line this number fell on. That reproducibility is the entire point.

Where to Find Your Dice Seeds

Before you can verify, you need the unhashed server seed, which the casino only reveals once you rotate (retire) the seed pair. Here is where to look on the main provably fair platforms:

CasinoHow to Find Your Seeds
StakeProfile icon → SettingsFairness. Note your active client seed and the next server seed hash, then click Rotate / New Seed to reveal the previous unhashed server seed. The Dice bet detail shows the nonce.
RoobetOpen your Game History, click the Dice bet, then Fairness / Reveal Seeds. The server seed is shown after the pair is rotated, alongside the client seed and nonce.
BC.GameAvatar → ProfileFairness. View the current seed pair, then rotate to unhash the old server seed. Open Game History for the per-bet nonce.

What This Proves — and What It Does Not

Provably fair verification is powerful, but it is precise about what it guarantees. Be clear on both sides:

  • It proves the roll was not altered after your bet. The number was committed by the server seed hash before you bet over or under, so the casino could not move it across your threshold.
  • It proves the casino used the seeds it claimed. A matching roll confirms the published server seed really does hash to the committed value and produces the number you saw.
  • It does NOT remove the house edge. The edge lives in the payout multiplier, not the roll. A fair, uniform number and a long-term mathematical edge for the casino coexist — verification confirms fairness, not profitability.
  • It does NOT guarantee you get paid. Provably fair maths says nothing about whether a casino will process your withdrawal or treat you fairly elsewhere. For that, choose a licensed, reputable operator — see our best provably fair casinos.

Key Takeaways

Provably fair Dice derives the roll from HMAC-SHA256(serverSeed, clientSeed:nonce:cursor): the first 4 bytes become a float, then roll = floor(float × 10001) / 100 gives a uniform 0.00–100.00 result. The house edge sits in the payout, not the number. Our worked example (serverSeed123 / clientSeed456 / nonce 1) rolls 3.76, reproducibly. Check your own rolls with our Provably Fair Verifier in seconds.

Frequently Asked Questions

The casino computes HMAC-SHA256(serverSeed, clientSeed:nonce:cursor). The first four bytes of that hash are converted into a decimal between 0 and 1, then the roll is floor(float × 10001) divided by 100. This produces an evenly distributed result from 0.00 to 100.00 across the 10,001 possible outcomes, and the same seeds always reproduce the same roll. You can confirm this with our verifier tool.
Stake's dice covers the inclusive range 0.00 to 100.00, which is 10,001 distinct two-decimal values (0.00, 0.01, ... up to 100.00). Multiplying the float by 10001 and flooring maps the [0,1) interval evenly onto all 10,001 outcomes. Dividing by 100 then turns the integer 0–10000 into the familiar 0.00–100.00 roll.
It proves the number was fixed by the server seed before you placed the bet and was not nudged across your win/loss threshold afterwards. Because the server seed hash was committed in advance and you set the client seed, the roll is tamper-proof. It does not change the house edge baked into the payout multiplier, nor does it guarantee the casino will pay a withdrawal.
No. The roll itself is a pure, uniform 0.00–100.00 value from the hash. The house edge is applied separately through the payout multiplier the casino offers for your chosen win chance, not by skewing the number. That is why a verified roll can be perfectly fair while the game still favours the house over time.
Stake publishes this exact HMAC-SHA256 dice formula, and Roobet, BC.Game and many other crypto casinos use the same or a near-identical method. Our free Provably Fair Verifier reproduces the roll calculation in your browser so you can independently check any dice bet.
AM
Alex Mercer
Alex covers crypto casinos and provably fair gaming for the ProvenlyFair.com Editorial Team. Specialising in cryptographic verification systems and transparency in online gambling.
Free Tool — Verify Any Dice Roll
Verify Now