How to Verify Provably Fair Games: Step-by-Step Technical Guide
"Provably fair" sounds great in theory. Crypto casinos claim you can verify every bet to prove they're not cheating. But how many players actually do it?
Almost none. Why? Because most guides explain what provably fair is, but not how to verify it yourself.
This guide changes that. I'll walk you through the exact process of verifying a provably fair bet on Stake, BC.Game, and other major crypto casinos. You'll learn how seeds work, how to check hashes, and how to confirm that your results weren't manipulated.
No math degree requiredājust copy, paste, and verify.
What is Provably Fair? (The Quick Version)
Traditional online casinos ask you to trust them. "We're fair, we promise." But you can't verify it.
Provably fair casinos use cryptographic hashing to let you verify every single bet independently. Here's the concept:
- The casino generates a server seed (a random string) and hashes it before you bet
- You provide a client seed (or the casino generates one for you)
- The game combines both seeds to determine the outcome
- After the bet, the casino reveals the server seed so you can verify the hash matches
If the hash doesn't match, the casino cheated. If it does, the result was pre-determined and fair.
Think of it like this: the casino writes down the answer in a sealed envelope before you roll the dice. After the roll, they open the envelopeāif the answer inside matches what happened, it's fair.
Why Most Players Don't Verify (And Why You Should)
Let's be honest: checking hashes is tedious. Most players trust the casino's "Verify" button and move on.
But here's the thing: you should verify at least once to confirm the system works. If you never check, you're back to trusting the casino blindly.
You don't need to verify every betājust spot-check occasionally, especially after big wins or losses.
Red flag: If a casino makes verification difficult (hidden menus, broken verification tools, no seed info), that's a sign they might not actually be provably fair.
How to Verify a Bet on Stake (Step-by-Step)
Stake is one of the biggest crypto casinos and uses a clear provably fair system. Here's how to verify a bet:
Step 1: Make a Bet
Play any provably fair game on Stake (Dice, Plinko, Mines, etc.). After the round ends, you'll see your bet in the history.
Step 2: Open Bet Details
Click on the bet in your history. Look for a "Verify" or "Provably Fair" button. You'll see:
- Server Seed (Hashed): The encrypted server seed shown before the bet
- Server Seed (Unhashed): The actual server seed revealed after the bet
- Client Seed: Your seed (usually auto-generated unless you customize it)
- Nonce: A counter that increments with each bet
Step 3: Verify the Hash
Copy the unhashed server seed and run it through a SHA-256 hash calculator. You can use:
- Online SHA-256 Tool
- Your browser's console (see code below)
The hash result should exactly match the hashed server seed shown before the bet. If it doesn't, something's wrong.
Step 4: Recreate the Result
Now verify the outcome was calculated correctly. Stake provides a verification script (usually JavaScript) that combines:
- Server seed (unhashed)
- Client seed
- Nonce
Run the script to regenerate the result. If it matches your actual bet outcome, it's provably fair.
Example: Verifying a Dice Roll on Stake
Let's say you roll 55.42 on Stake Dice. Here's the data:
Server Seed (Hashed): a3f5b8c9e2d1f4a7b6c8e9f0d3a5b7c9e1f3a5b7d9c1e3f5a7b9d1c3e5f7a9b1c3
Server Seed (Unhashed): 8f3c5e7a9b1d3f5a7c9e1f3b5d7a9c1e3f5b7d9c1e3a5f7b9d1c3e5a7b9c1e3f5
Client Seed: my-custom-seed-12345
Nonce: 187
Step 1: Verify the hash
Hash the unhashed server seed using SHA-256. Open your browser console (F12 ā Console) and paste:
async function sha256(message) {
const msgBuffer = new TextEncoder().encode(message);
const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
const hashArray = Array.from(new Uint8Array(hashBuffer));
return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}
sha256('8f3c5e7a9b1d3f5a7c9e1f3b5d7a9c1e3f5b7d9c1e3a5f7b9d1c3e5a7b9c1e3f5').then(hash => console.log(hash));
If the output matches a3f5b8c9e2d1f4a7..., the server seed is legit.
Step 2: Verify the result
Stake uses HMAC-SHA256 to generate the dice result. Here's the formula (simplified):
Result = HMAC_SHA256(client_seed:nonce, server_seed) % 10000 / 100
You can use Stake's built-in verifier or paste this into your console:
// Simplified Stake Dice verification (actual implementation may vary)
async function verifyDice(serverSeed, clientSeed, nonce) {
const key = await crypto.subtle.importKey(
'raw',
new TextEncoder().encode(serverSeed),
{ name: 'HMAC', hash: 'SHA-256' },
false,
['sign']
);
const message = `${clientSeed}:${nonce}`;
const signature = await crypto.subtle.sign('HMAC', key, new TextEncoder().encode(message));
const hashArray = Array.from(new Uint8Array(signature));
const hex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
const first5Hex = hex.substring(0, 5);
const result = (parseInt(first5Hex, 16) % 10000) / 100;
return result.toFixed(2);
}
verifyDice('8f3c5e7a...', 'my-custom-seed-12345', 187).then(result => console.log(result));
If the output is 55.42, your bet was provably fair.
How to Verify on BC.Game
BC.Game uses a similar system but with slightly different formatting:
- Click on a bet in your history ā "Fairness"
- Copy the Active Server Seed Hash, Server Seed, and Client Seed
- Hash the server seed using SHA-256āit should match the hash shown
- Use BC.Game's built-in verifier or their open-source script (GitHub) to recalculate the result
BC.Game provides verification code on GitHub for each game type (Crash, Dice, Plinko, etc.).
How to Verify on Other Casinos
Most provably fair casinos follow a similar pattern, but the exact formula varies. Here's where to find verification info:
- Rollbit: Click "Fairness" on any bet ā use their JavaScript verifier
- Roobet: Bet history ā "Verify" ā copy seeds and use their tool
- Shuffle: Provably Fair section ā open-source verification scripts
- Duelbits: Bet details ā "Provably Fair" ā hash checker + result formula
Look for casinos that provide:
- Clear seed information (server seed, client seed, nonce)
- Built-in verification tools
- Open-source verification code (GitHub)
If a casino hides this info or makes it hard to find, that's a red flag.
Can You Change Your Client Seed?
Yesāand you should, especially if you're a high roller.
Most casinos auto-generate a client seed for you, but you can customize it. This prevents any theoretical attack where the casino pre-calculates outcomes based on predictable client seeds.
On Stake, BC.Game, and most casinos:
- Go to Settings ā Provably Fair (or similar)
- Click "Change Client Seed"
- Enter a random string (e.g.,
my-lucky-seed-12345) - Save and start betting
You can change your client seed as often as you want. Each time you change it, the server seed also rotates.
Pro tip: Change your client seed before a big betting session, then verify a few bets afterward to confirm everything's legit.
Common Verification Mistakes
Mistake 1: Not Checking the Server Seed Hash Before Betting
The whole point of provably fair is that the server seed is hashed before you bet. If you only look at it after, you can't prove the casino didn't change it mid-game.
Solution: Check the hashed server seed before making large bets (most casinos display it in settings).
Mistake 2: Trusting the Casino's Verifier Blindly
The casino's "Verify" button is convenient, but you're still trusting their code. For maximum security, verify manually using independent tools or your browser console.
Mistake 3: Not Understanding What You're Verifying
You're verifying two things:
- The server seed wasn't changed (hash matches)
- The result was calculated correctly (formula matches)
If either fails, something's wrong.
Is Provably Fair Really Better Than RNG?
Yes, but only if the casino implements it correctly.
Traditional online casinos use RNG (random number generators) certified by third parties like eCOGRA or iTech Labs. You can't verify individual bets, but auditors check the RNG regularly.
Provably fair casinos let you verify every single bet yourself. No auditor required. But if the casino's implementation is flawed (weak seeds, predictable formulas), it's useless.
Bottom line: A well-implemented provably fair system is more transparent than traditional RNG. But a poorly implemented one is worse than audited RNG.
Track Real Casino Activity
See live blockchain data from the biggest crypto casinosādeposits, withdrawals, and on-chain activity updated daily.
View Live Data āTools and Resources for Verification
Here are the best tools for verifying provably fair bets:
Hash Calculators
- Online SHA-256 Tool
- Cryptii SHA-256 Hash
- Browser console (see code examples above)
Open-Source Verifiers
- BC.Game Provably Fair Scripts
- Stake Provably Fair Docs (if available)
- Most casinos link to verification scripts in their "Fairness" section
Learning Resources
Final Thoughts: Trust, But Verify
Provably fair is one of crypto gambling's biggest advantages over traditional online casinos. But only if you actually use it.
You don't need to verify every betājust spot-check occasionally to keep casinos honest. If you've never verified a single bet, take 5 minutes today to try it.
The casinos that make verification easy (clear seed info, built-in tools, open-source code) are the ones worth trusting. The ones that hide it? Walk away.
Your money, your verification. Don't gamble on trust alone.
More Crypto Casino Guides
Explore our in-depth comparisons, strategies, and analysis of the top crypto casinos.
Read More ā