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 VerifierWhen you verify a provably fair result, you're confirming two things:
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.
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:
Stake's fairness panel: Settings > Fairness view showing active seeds, hashed server seed, and current nonce
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:
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
Open the bet details for the specific round you want to verify. You need:
Stake's Verify tab: Enter game type, client seed, server seed, and nonce to independently verify a round
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.
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.
// 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.
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:
2^32 / (int + 1) * (1 - houseEdge), floored to 1.00x minimum. See our crash algorithm guide.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.
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.
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.
You don't need to verify every single bet -- but you should verify enough to establish a pattern. A reasonable approach:
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.
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 VerifierOur ranked list of verified provably fair crypto casinos, tested with real money.
Read articleUnderstand how provably fair technology compares to traditional random number generators.
Read articleA deep dive into how crash game multipliers are mathematically determined.
Read articleGet exclusive bonuses, new casino reviews, and insider tips delivered to your inbox