🔒 SSL Secured·✦ Provably Fair·Rankings powered by real deposit volume data·Updated Mar 11, 2026·18+ Gamble Responsibly
Education · 16 Min Read · Updated Jul 2026

WHAT IS PROVABLY FAIR GAMBLING?

PF
By Alex Mercer, Casino Analyst
Updated Jul 2026 16 min read
Provably fair is a cryptographic system that lets you independently verify that a casino game outcome was decided before you bet and was not changed afterwards — no third-party auditor required. The honest catch most guides skip: it proves the result is genuine, not that the odds are in your favour. This guide explains exactly how it works, walks through a dice and Limbo example you can reproduce yourself, and is clear about what it cannot do.
Want to check a real bet right now? Paste your server seed, client seed and nonce into our free, browser-based Provably Fair Verifier — nothing is sent to a server.
🔍 Open the Verifier →

1. The Trust Problem With Traditional Online Casinos

When you play at a traditional online casino, you trust that its Random Number Generator (RNG) is fair. That trust is mediated by third-party testing labs such as eCOGRA or iTech Labs that certify the RNG periodically. But you never see the algorithm and you cannot check any single spin — you trust the auditor, who trusts the casino, who controls the software.

This creates an uncomfortable reality: you cannot independently confirm that the specific hand, roll or crash you just lost was generated honestly. You can only trust a chain of organizations and hope the certification still reflects what the live server is actually doing. For most of online gambling history, that was the only option available to players.

2. How Provably Fair Solves This

Provably fair replaces "trust us" with "check it yourself." It uses cryptographic hashing — SHA-256 and its keyed cousin HMAC-SHA256 — to lock in a game outcome before the round starts, then lets you confirm afterwards that the outcome was never changed. Three ingredients make this possible:

The Five-Step Commit-and-Reveal Process

1
Server seed (committed as a hash): Before you bet, the casino generates a secret random server seed and shows you only its SHA-256 hash. This is a cryptographic commitment — it cannot change the seed later without the hash no longer matching.
2
Client seed: You provide your own seed (or accept a random default you can change). Because you control it, the casino cannot have pre-computed an outcome tailored against you.
3
Nonce: A counter that increases by one with every bet on the same seed pair, so each bet is unique without needing a new server seed each time.
4
HMAC-SHA256 combines them: The outcome is derived from HMAC-SHA256 using the server seed as the key and your client seed plus nonce as the message. The hex output is mapped to a game result (a dice roll, a crash multiplier, mine positions, and so on).
5
Reveal and verify: When you rotate your seeds, the casino reveals the original server seed. You hash it to confirm it matches the commitment from step 1, then re-run the HMAC for any bet to confirm the result. Our free verifier does both for you.

3. How HMAC-SHA256 Actually Turns Seeds Into a Result

Two cryptographic primitives do the heavy lifting. Understanding them is what lets you trust the system rather than just believe it.

SHA-256 is a one-way hash function. Feed it any text and it returns a fixed 64-character hexadecimal fingerprint. The same input always produces the same output, but you cannot run it backwards to recover the input, and you cannot feasibly find two inputs that produce the same fingerprint. That is exactly what makes it a usable "commitment": the casino can publish SHA-256(server_seed) as a promise, and you can later confirm the revealed seed matches without it having been able to swap the seed in between.

HMAC-SHA256 is a keyed hash. It takes two inputs — a secret key and a message — and mixes them so that you cannot produce the correct output without knowing the key. Provably fair games use it like this:

digest = HMAC_SHA256( key = server_seed, message = client_seed + ":" + nonce )
The exact message format is casino-specific. Stake-style games (used in the example below) build the message as clientSeed:nonce:0, where the trailing index supports games that need more than one number per bet.

The output is a 64-character hex string — 32 bytes of apparently random data that is actually fully determined by the three inputs. The game then reads bytes off the front of that string and converts them into a result. A dice game might take the first 8 hex characters and reduce them to a number from 0.00 to 99.99; a Limbo or Crash game takes a longer slice and runs it through a multiplier formula that bakes in the house edge. Because every step is deterministic, anyone with the same three inputs gets the same result — which is the whole point.

4. Worked Example: Verify a Dice & Limbo Bet Yourself

Below is a complete, reproducible example using the same Stake-style algorithm our Provably Fair Verifier implements. The seeds here are illustrative values we chose for teaching — they are not from a real bet — but every number is real: run the same inputs and you will get the same digest and the same results, byte for byte.

Illustrative worked example. These seeds were picked to demonstrate the math, not captured from a live game. The verification steps are identical to what you would do with your own real seeds.

Step A — The inputs

Server seed (unhashed)my-secret-server-seed
Server seed hash (shown before the bet)f9f9cda1e105f796a9b2ece06d47a00b82a700ed12ced588935c2f48457f3a15
Client seedlucky7
Nonce0

Notice that the server seed hash is just SHA-256("my-secret-server-seed"). That hash is what a casino would show you up front; the plain seed is hidden until you rotate. (In a real game the server seed is a long random string, not a readable phrase — we use a readable one here only so the example is easy to type.)

Step B — Build the message and compute the HMAC

The Stake-style message is clientSeed:nonce:0, so here it is lucky7:0:0. We compute HMAC-SHA256 with the server seed as the key:

HMAC-SHA256( key = "my-secret-server-seed", message = "lucky7:0:0" )
a143c00fee28fb8992f10d8dbd5c1362c10bee25ccff9d80a59656f306570897

You can reproduce that digest in seconds. On Mac or Linux, paste this into a terminal:

$ printf 'lucky7:0:0' | openssl dgst -sha256 -hmac 'my-secret-server-seed'
SHA2-256(stdin)= a143c00fee28fb8992f10d8dbd5c1362c10bee25ccff9d80a59656f306570897

Step C — Map the digest to a Dice roll

Dice takes the first 8 hex characters of the digest, converts them to an integer, and reduces that to a number from 0.00 to 99.99:

First 8 hex chars: a143c00f
As a decimal integer: 2,705,571,855
Take it mod 10000: 1855
Divide by 100 → Dice roll = 18.55

On a "roll under" bet, 18.55 beats any target above 18.55 and loses to any target at or below it. The key insight: the roll was fixed the instant the server seed was committed — playing with the same seeds and nonce can only ever produce 18.55.

Step D — Map the same digest to a Limbo multiplier

Limbo (and Crash) read a longer slice — the first 13 hex characters — and run it through a multiplier formula that includes a 4% house edge:

First 13 hex chars: a143c00fee28f
As a decimal integer (val): 2,836,997,714,403,983
Formula: floor( (2^52 / (2^52 − val)) × 0.96 × 100 ) / 100
Which evaluates to → Limbo multiplier = 2.59x

The × 0.96 term is the 4% house edge made visible — proof that "provably fair" describes honesty of the result, not the absence of an edge (more on that below).

Don't take our word for the numbers — plug my-secret-server-seed / lucky7 / nonce 0 into the verifier and watch it return 18.55 and 2.59x.
🔍 Try it in the Verifier →

5. How to Set, Rotate & Reveal Your Seeds

Verification only means something if you handle your seeds correctly. The workflow is the same across most casinos, usually found under a Fairness or Provably Fair menu:

  1. Set your client seed first. Before serious play, change the client seed to a value of your own. This is your guarantee the casino did not pre-pick the seed pair. Some players use a string they will remember; the exact value does not matter, only that you chose it.
  2. Record the committed server seed hash. The Fairness panel shows the SHA-256 hash of the current (still secret) server seed. Note it down. This is the promise you will hold the casino to.
  3. Play — the nonce counts up automatically. Each bet uses the same server and client seed with the nonce incrementing by one. Your bet history records the nonce for every round.
  4. Rotate to reveal. When you want to verify, click rotate / change seeds. The casino retires the current server seed, reveals it in plain text, and commits a fresh hashed seed for future bets.
  5. Verify the chain. First confirm SHA-256(revealed seed) equals the hash you recorded in step 2. Then re-run the HMAC for any bet's nonce and confirm the result. If both checks pass, those rounds were provably fair.

The order matters: the server seed is only ever revealed after you stop using it. If you could see it while betting, you could compute outcomes in advance and break the game. That is why "the seed was revealed after the round" is a feature, not a limitation.

CasinoWhere to find your seeds
StakeAccount menu → Settings → Fairness; change client seed and rotate there. See our Stake review.
RoobetAvatar → Fairness; "Change Seeds" rotates and reveals the old seed. See our Roobet review.
BC.GameProfile → Provably Fair; shows active and previous seed pairs with the nonce.

6. Provably Fair vs RNG-Audited: What's the Difference?

These two fairness models are often confused, but they answer different questions and protect you in different ways. Neither is strictly "better" — the best casinos use both, applying each where it fits.

Provably FairRNG-Audited (eCOGRA / iTech Labs)
Who checks itYou, per betA third-party lab, periodically
What it provesThis exact outcome wasn't alteredThe RNG is statistically fair over time
Trust requiredNone — it's math you can runTrust the auditor and the casino
CoversIn-house originals (Dice, Crash, etc.)Third-party slots, live games, RNG tables
GranularityEvery single betSampled audits, not your specific spin

In short: provably fair gives you per-bet, zero-trust proof but only for games simple enough to recompute. RNG audits give you broad coverage across slots and live tables but rely on trusting the certifier. A slot from a major studio can be perfectly fair while being impossible to verify yourself — that is what the audit is for.

7. Which Games Are Provably Fair?

Provably fair applies to games with simple, computable outcomes — primarily casino "originals." It generally does not apply to live dealer games (real-world physical outcomes) or most third-party slots (proprietary RNG you cannot recompute). The verification methods below match the algorithms in our verifier tool; specifics vary slightly between casinos.

Game TypeProvably Fair?Verification Method
Dice✓ YesRoll 0.00–99.99 from the first hash bytes
Limbo✓ YesMultiplier from hash prefix (as shown above)
Crash✓ YesMultiplier derived from the hash prefix
Mines✓ YesMine positions from a hash-seeded shuffle
Plinko✓ YesLeft/right path from individual hash bits
Keno / Hilo✓ YesNumbers or cards selected from hash bytes
Third-Party Slots✗ Usually noProprietary RNG (lab-certified, not self-verifiable)
Live Dealer✗ NoPhysical outcome (real cards/wheels on camera)

8. The Limitations: What Provably Fair Does Not Prove

This is the part marketing pages leave out, and it matters because this is a money topic. Provably fair is genuinely powerful, but it is not a guarantee that gambling is a good idea or that the game is generous. Here is what it does not do:

What it DOES prove
  • The outcome was fixed before you bet
  • The result was not altered after your bet
  • You influenced the result via your client seed
  • The advertised house edge is the one applied
What it does NOT prove
  • That the house edge itself is small or fair
  • That you'll win — the math still favours the house
  • That the casino will actually pay you out
  • That slots/live games on the same site are verifiable

The house edge is still there — and provable. In the worked example, the Limbo formula multiplied by 0.96: a 4% edge to the casino, baked into the math. Provably fair proves that edge is exactly what was applied — not that it is in your favour. Over time, that edge means the house wins. Verification protects you from cheating, not from the odds.

A correct algorithm is not a trustworthy operator. A casino can implement flawless provably fair games and still refuse withdrawals, freeze accounts, or operate without a licence. The cryptography secures the dice roll; it does not secure your bankroll. This is why we still weight licensing, payout history and reputation heavily in our provably fair casino reviews.

Commitment quality matters. The proof is only as strong as the commitment. If a casino reveals a server seed whose hash you never recorded, or rotates seeds in a way that lets it pick favourable seeds, the guarantee weakens. Always verify the published hash before the seed is revealed — not just the final number afterward. Some platforms also publish a separate "next server seed hash" to chain commitments together, which is stronger still.

Bottom line on limits: Provably fair is the strongest transparency tool in online gambling, and you should prefer casinos that offer it. But it is a tool for verifying honesty of outcomes, not a promise of profit. Gambling still carries real financial risk — never wager more than you can afford to lose. Support is available at GambleAware.org.

9. Provably Fair Casinos We've Tested

These are platforms whose provably fair systems we have checked hands-on. For the full ranked comparison — including licensing and payout notes — see our best provably fair casinos guide.

Stake.com
Full implementation — Dice, Crash, Limbo, Mines, Keno, Hilo, Plinko, Wheel
Play Now
Roobet
Crash, Tower, and Dice provably fair. Slots use certified RNG.
Play Now
Rollbit
Rocketpot (Crash variant) and Roulette both provably fair.
Play Now
Whichever casino you use, the habit is the same: verify a few of your own results. Our free tool computes the HMAC-SHA256 and the game outcome for you, entirely in your browser.
🔍 Verify a result yourself →

Bottom Line

Provably fair is not marketing — it is a genuine, checkable mathematical guarantee. A casino that implements it correctly cannot alter an individual outcome after you bet without the tampering being detectable, and the house edge it applies is exactly the one you can verify. That makes it the most transparent form of online gambling available. Just keep the honest caveat in view: it proves the result was fair, not that the game is in your favour or that the operator is trustworthy in every other respect. Verify your results, choose licensed casinos, and never wager more than you can afford to lose.

Frequently Asked Questions

No. Provably fair proves a specific outcome was generated from a server seed committed before the round and was not altered after you bet. It does not change the house edge. A provably fair dice or Limbo game still has a built-in mathematical advantage for the casino (commonly around 1%–4%). The system guarantees the result is honest, not that the odds favour you.
An RNG audit (by labs such as eCOGRA or iTech Labs) is a periodic third-party certification that a casino's random number generator behaves correctly on average — you trust the auditor and the casino. Provably fair removes that middle layer: using the server seed, client seed and nonce you can independently verify each individual bet yourself with HMAC-SHA256, trusting no one. Audits cover slots and live games that provably fair cannot, so the two are complementary. See the comparison table above.
The casino keeps a secret server seed and shows you its SHA-256 hash before you play, which locks it in. You supply a client seed, and a nonce counts up by one with every bet. To settle a bet the casino computes HMAC-SHA256 using the server seed as the key and a string built from your client seed and nonce as the message. The resulting hex digest is converted into the game result — for example a dice roll from 0.00 to 99.99 or a Limbo multiplier, as in the worked example above.
In the casino's Fairness or Provably Fair settings, rotate or change your seed pair. This retires the current server seed and reveals it in plain text, while committing a new hashed seed for future bets. Then hash the revealed server seed and confirm it equals the commitment you were shown earlier, and re-run HMAC-SHA256 on each bet's client seed and nonce to confirm the results match. You can do all of this with our free Provably Fair Verifier.
It cannot secretly change a single committed outcome: the server seed is locked by its published hash before you bet and you control the client seed, so any after-the-fact tampering breaks the hash and is detectable. The realistic risks lie elsewhere — a casino quietly swapping a seed it never properly committed, refusing payouts, or running games that are not provably fair at all. Always verify the commitment, not just the final result, and stick to reputable, licensed casinos.
No. You can paste your three values into our verifier and read off the result with no coding. If you prefer to check independently, a single openssl command (shown in the worked example) reproduces the same HMAC-SHA256 digest, and the mapping to the game result is simple arithmetic.
No. Because each result is fixed by a server seed committed before your bet and every round is independent, no “predictor” app or pattern can forecast the outcome — the HMAC-SHA256 math makes it impossible, and most predictor downloads are scams or malware. The honest edge is verification, not prediction: see do provably fair predictors work? and check any round in our verifier.
🥇 Stake.com — #1 Ranked · $1.86B Volume
Claim Bonus →