Back to Guides

How to Verify Provably Fair Casino Games (Step-by-Step Guide)

8 min readBeginner-friendlyUpdated April 2026

Provably fair crypto casinos let you verify that every game result was determined honestly -- before you even placed the bet. The system uses cryptographic commitments (specifically HMAC-SHA256) to guarantee that neither the casino nor the player can manipulate the outcome after the fact.

But most players never actually verify. They see the "provably fair" badge and assume it means everything is checked automatically. It doesn't. Provably fair means you can verify, not that someone already has. The math only protects you if you run it.

This guide walks you through the exact steps to verify any provably fair game result, from collecting the right inputs to interpreting the output. It works for dice, crash, mines, plinko, limbo, and any game that uses the standard HMAC-SHA256 scheme.

Just want to verify a bet right now?

Skip the theory and jump straight to our free, client-side verifier tool.

Open Provably Fair Verifier

What You're Actually Verifying

When you verify a provably fair result, you're confirming two things:

  • 1
    The commitment was honest. The hashed server seed you were shown before the bet matches the actual server seed revealed after the bet. This proves the casino didn't change the server seed mid-round.
  • 2
    The result matches the math. Given the server seed, your client seed, and the nonce, the HMAC-SHA256 output produces the exact game result the casino showed you. This proves the result wasn't fabricated.

If both checks pass, the round is mathematically verified as fair. There is no ambiguity -- the same inputs will always produce the same output, on any computer, anywhere in the world.

The Verification Process -- 4 Steps

Step 1: Locate Your Seeds and Nonce

Every provably fair casino has a "Fairness" or "Seeds" panel, usually in your account settings or accessible from the game interface. You need three values:

  • Client Seed -- a value you set or the casino generated for you at the start of the seed pair
  • Server Seed (hashed) -- the SHA-256 hash of the server seed, visible before you play
  • Nonce -- a counter that increments with each bet (bet #1 = nonce 0, bet #2 = nonce 1, etc.)

Stake's fairness panel: Settings > Fairness view showing active seeds, hashed server seed, and current nonce

Screenshot coming soon

Step 2: Rotate Your Seed Pair

You cannot verify bets from the current seed pair -- the server seed is still hidden. To verify, you need to "rotate" or "change" your seed pair. This does two things:

  • Ends the current seed pair and starts a new one
  • Reveals the previous server seed (the unhashed version)

After rotation, you'll have access to the revealed server seed for all the bets you placed under that pair. Each bet has a unique nonce, so you can verify any individual round.

Seed rotation: Click 'Change' to rotate your seed pair and reveal the previous server seed

Screenshot coming soon

Step 3: Collect the Values for the Round You Want to Check

Open the bet details for the specific round you want to verify. You need:

  • Server Seed (revealed) -- the actual server seed, not the hash
  • Hashed Server Seed -- optional, but lets you verify the commitment
  • Client Seed -- your seed for that pair
  • Nonce -- the specific nonce for that round

Stake's Verify tab: Enter game type, client seed, server seed, and nonce to independently verify a round

Screenshot coming soon

Step 4: Verify with an Independent Tool

Paste the values into an independent verifier -- not the casino's own tool. The casino's verifier runs on their servers, using their code. An independent tool runs the same math on different infrastructure.

Why use an independent tool?

If both the casino's verifier and a completely separate tool produce the same result from the same inputs, you have mathematical proof the round was fair. A self-check alone is weaker -- it only proves the casino's tool agrees with itself.

Use our free SHA-256 provably fair verifier below. Select the game type, paste your seeds and nonce, and compare the output.

A Worked Example -- Verifying a Stake Dice Roll

Let's walk through the exact math for a Stake-style dice verification. This is the most common algorithm and is also used by Roobet, Shuffle, and several other major operators.

javascript
// Inputs
const serverSeed = "a1b2c3d4e5f6..."; // Revealed after rotation
const clientSeed = "myCustomSeed123";
const nonce = 42;

// Step 1: Build the HMAC message
const message = "myCustomSeed123:42:0";

// Step 2: Compute HMAC-SHA256(serverSeed, message)
// Using Web Crypto API: crypto.subtle.sign('HMAC', key, data)
const hmacHex = "e3b0c44298fc1c14..."; // 64-char hex output

// Step 3: Extract the result
// Take the first 5 hex characters
const hexSlice = "e3b0c"; // = 933644 in decimal

// Step 4: Apply the formula
// 933644 % 10000 = 3644
// 3644 / 100 = 36.44
const diceRoll = 36.44;

// The casino should have shown you 36.44 for this round.
// If it did, the round was fair. If it didn't, something is wrong.

The formula is deterministic. Anyone with the same three inputs (server seed, client seed, nonce) will always get 36.44. That's the entire point -- the result is fixed at the moment of the commitment, and neither party can change it afterward.

Game-Specific Verification Notes

While the underlying HMAC-SHA256 computation is the same across all games, each game type uses a different formula to convert the hash output into a game result:

  • Dice: First 5 hex characters are converted to a decimal, modulo 10,000, divided by 100. Result range: 0.00 to 99.99. See our dice algorithm deep dive.
  • Crash: First 8 hex characters converted to a 32-bit integer, used in the formula 2^32 / (int + 1) * (1 - houseEdge), floored to 1.00x minimum. See our crash algorithm guide.
  • Limbo: Same math as crash, different UI framing. The multiplier represents a target you need to hit rather than a crash point.
  • Mines: The HMAC output seeds a Fisher-Yates shuffle of a 25-tile grid. The first N tiles in the shuffled array become mines. See our mines algorithm breakdown.
  • Plinko: Each bit of the hash output determines a left or right bounce at each pin row. A 16-row plinko game consumes 16 bits (2 hex characters) per ball drop.

Common Mistakes (and How to Avoid Them)

Using the hashed server seed instead of the revealed one.

The hashed version (SHA-256 hash) is what you see before rotation. After rotation, the casino reveals the actual server seed. You need the revealed version for verification.

Trailing whitespace in seed inputs.

Copying seeds from a casino UI sometimes adds invisible spaces at the beginning or end. Always trim your inputs. Our verifier does this automatically.

Wrong nonce.

The nonce is a counter that starts at 0 for the first bet under a seed pair and increments by 1 for each subsequent bet. If you verify bet #15 but enter nonce 14, the result won't match.

Verifying a round from the current (active) seed pair.

The server seed is only revealed after you rotate. You cannot verify rounds from the seed pair you're currently playing on -- that would defeat the purpose of the commitment scheme.

Assuming all casinos use the same formula.

While most major casinos (Stake, Roobet, Shuffle) use nearly identical Stake-style formulas, BC.Game and Bustabit have variations. Always check which preset matches your casino.

When Verification Fails -- What to Do

Scenario 1: The hash commitment doesn't match

If the SHA-256 hash of the revealed server seed does not match the hashed server seed you were shown before playing, this is a serious red flag. It means the casino may have changed the server seed after taking your bet. Screenshot everything -- the revealed seed, the commitment hash, and your verification result -- and contact the casino's support immediately. Do not continue playing until they explain.

Scenario 2: The game result doesn't match your calculation

This is more commonly caused by user error. Double-check: (1) that you're using the revealed server seed (not the hash), (2) that your nonce is correct for the specific round, (3) that your client seed matches exactly, including capitalization, (4) that you've selected the correct game type and casino preset. If everything is correct and the result still doesn't match, contact the casino with your detailed inputs and expected vs. actual output.

How Often Should You Verify?

You don't need to verify every single bet -- but you should verify enough to establish a pattern. A reasonable approach:

  • Verify several rounds when you first start playing at a new casino
  • Spot-check after any round where the result felt "off" (even though feelings aren't evidence, checking builds trust)
  • Verify at least once per seed rotation to make sure the commitment scheme is working
  • Always verify if you experience an unusually long losing streak that you want to investigate

The power of provably fair isn't that you verify every round -- it's that you can verify any round, at any time, and the casino knows this. That accountability mechanism is what keeps the system honest.

Verify a Bet Right Now

Our verifier runs entirely in your browser using the Web Crypto API. No sign-up, no data sent anywhere, no cookies. Paste your seeds and get your result in under a second.

Open the Provably Fair Verifier

Frequently Asked Questions

Yes. Our verifier runs entirely in your browser using the Web Crypto API (crypto.subtle). No data is sent to any server. You can disconnect from the internet after loading the page and it still works. Open your browser's DevTools Network tab to confirm zero outbound requests.
No. Many crypto casinos use traditional certified RNGs, just like regular online casinos. Provably fair is a specific technology that only some crypto-native casinos implement. Check our ranked list of verified provably fair casinos to find operators that support it.
Not if the system is implemented correctly and you verify. The commitment scheme (hashed server seed shown before the bet) prevents the casino from changing the outcome after your bet. The only scenario where cheating is possible is if the hashing or commitment is broken -- which is exactly what the hash commitment check detects.
No. You just need to copy three values (server seed, client seed, nonce) from the casino into a verifier tool and compare the output. The cryptographic math happens automatically. This guide explains the process step by step for complete beginners.
Select "Custom SHA-256" to compute the raw HMAC-SHA256 output, then compare it against your casino's published algorithm documentation. Most casinos use a Stake-style formula, so try the default preset first. If the result doesn't match, check whether your casino documents a different conversion formula.

Related Articles

Stay Updated with Top Casino Deals

Get exclusive bonuses, new casino reviews, and insider tips delivered to your inbox

Exclusive Bonuses
Latest Reviews
Insider Tips

Join 10,000+ players getting the best casino deals. Unsubscribe anytime.