🔐 Fairness Technology

What is Provably Fair?
Complete Guide 2026

Provably fair is the most important innovation in crypto gambling — it lets you mathematically verify every game result was fair, without trusting the casino at all. Here's exactly how it works.

📅 Updated February 2026⏱ 7 min read🔐 Intermediate level

⚡ Quick Answer

Provably fair is a cryptographic system unique to blockchain casinos that lets any player independently verify each game outcome wasn't manipulated. Using SHA-256 hashing with a server seed, client seed, and nonce, you can mathematically prove every result was fair — no trust required.

What is Provably Fair? The Simple Explanation

At a traditional casino, you place a bet and trust that the software produced a random result. You have no way to verify this — you simply hope the casino isn't cheating. That's why regulators and auditors exist.

Provably fair eliminates this problem entirely. Before you bet, the casino commits to a cryptographic hash of the game outcome. After the bet, they reveal the actual values — and you can verify that the pre-committed hash matches. If the casino had tried to change the outcome, the hash wouldn't match.

✅ The Key Insight

It's like a casino putting their dice results in a sealed envelope before you bet. After the game they open it. If the result matches what's in the envelope — the game was fair. Cryptographic hashing makes this envelope mathematically tamper-proof.

The 3 Components of Provably Fair

Every provably fair system uses three values combined to generate game results:

🔴 Server Seed
Generated by the casino before your bet. Kept secret until after the game, but its SHA-256 hash is shown to you upfront — so the casino can't change it mid-game.
🔵 Client Seed
Generated by your browser or provided by you. You can change it anytime. This prevents the casino from pre-calculating your outcomes based on their seed alone.
🟡 Nonce
A counter that increases by 1 with every bet. Ensures each game round produces a unique result even when using the same seeds.

These three values are combined and run through a HMAC-SHA256 function. The output determines the game result — a dice number, crash point, card draw, or any other outcome.

How Provably Fair Works — Step by Step

1
Casino generates & hashes Server Seed
Before you place a bet, the casino creates a random server seed and hashes it. They show you the hash — but NOT the actual seed yet. This locks them in.
shownHash = SHA256(serverSeed)
2
You provide (or accept) a Client Seed
Your browser generates a client seed, or you type one yourself. This adds your own randomness — the casino cannot predict the final outcome without knowing your seed.
clientSeed = "your-seed-here"
3
You place your bet — result is calculated
The game combines all three values (server seed + client seed + nonce) through HMAC-SHA256 to instantly determine the outcome.
hash = HMAC_SHA256(serverSeed, clientSeed + ":" + nonce)
4
Casino reveals Server Seed
After the game (or when you rotate seeds), the casino reveals the actual server seed. You can now verify the pre-shown hash matches — proving they couldn't have altered it.
SHA256(revealedSeed) === shownHash ✅
5
You verify the result yourself
Combine the revealed server seed + your client seed + nonce and hash them. If the output matches the game result — it was provably fair.
Your calculation === Casino result → VERIFIED ✅

💻 Verification Code Example (JavaScript)

This working implementation runs in any browser console or Node.js environment:

// Provably Fair HMAC-SHA256 Verification
// Run in browser DevTools console (F12)

async function verifyProvablyFair(serverSeed, clientSeed, nonce) {
  const encoder = new TextEncoder();
  
  // Import server seed as HMAC key
  const key = await crypto.subtle.importKey(
    'raw', encoder.encode(serverSeed),
    { name: 'HMAC', hash: 'SHA-256' },
    false, ['sign']
  );

  // Sign clientSeed:nonce with server seed
  const sig = await crypto.subtle.sign(
    'HMAC', key,
    encoder.encode(`${clientSeed}:${nonce}`)
  );

  // Convert to hex string
  const hash = [...new Uint8Array(sig)]
    .map(b => b.toString(16).padStart(2, '0')).join('');

  // Map first 8 hex chars to game outcome (0.00–99.99)
  const decimal = parseInt(hash.substring(0, 8), 16);
  const outcome = (decimal % 10000) / 100;

  return { hash, outcome, verified: true };
}

// Example — paste your own seeds to verify!
verifyProvablyFair(
  'yourServerSeed',
  'yourClientSeed',
  0  // nonce
).then(r => console.log(r));
✅ Try It Now

Press F12 in your browser → Console tab → paste the code above with your seeds. Or use our live verifier below — no coding needed.

🔍 Live Provably Fair Verifier

Verify Any Game Result Instantly

Enter the seeds from any completed provably fair game to verify the outcome right here:

HMAC-SHA256 Hash
-
Raw Decimal
-
Game Outcome (0.00 – 99.99)
-
Status
✅ Verification Complete — Result is Provably Fair

⚖️ Provably Fair vs. RNG — Key Differences

FeatureProvably FairRNG (Traditional)
Verifiable by player?✅ Yes — mathematically❌ No — trust required
Casino can cheat?✅ Impossible to hide⚠️ Possible without audits
Third-party auditor needed?✅ Not required❌ Required (eCOGRA etc.)
Real-time verification?✅ Every single bet❌ Only periodic audits
Used in slots?❌ Not typical✅ Standard for all slots
Transparency level✅ Maximum⚠️ Limited
⚠️ Not All Games Are Provably Fair

Provably fair applies mainly to crypto-native games: dice, crash, mines, plinko, keno, and limbo. Traditional slots from providers like NetEnt or Pragmatic Play use RNG — not provably fair. Always look for a "Verify" or "Fairness" button in the game interface to confirm.

🎮 Which Games Are Provably Fair?

GameProvably Fair?Available on Stake?
Dice✅ Yes✅ Yes
Crash✅ Yes✅ Yes
Mines✅ Yes✅ Yes
Plinko✅ Yes✅ Yes
Keno✅ Yes✅ Yes
Limbo✅ Yes✅ Yes
Slots (NetEnt, Pragmatic etc.)❌ No (RNG)RNG only
Live Casino❌ No (physical)Physical cards/wheel

🔐 Play Provably Fair Games Now

Try verified provably fair games at the top-rated crypto casinos — every result independently verifiable.

❓ Frequently Asked Questions

What is provably fair in crypto casinos?

Provably fair is a cryptographic system that lets players independently verify every game outcome wasn't manipulated. Using SHA-256 hashing with a server seed, client seed, and nonce, any player can mathematically prove a result was fair — without trusting the casino at all.

How do I verify a provably fair game?

After the game, the casino reveals the server seed. Combine it with your client seed and the nonce, run it through HMAC-SHA256. If the output matches the casino's pre-committed hash, the game was fair. Use the live verifier above or the casino's own fairness page.

Can provably fair casinos cheat?

No — that's the entire point. The casino commits to the server seed hash BEFORE you bet. They cannot change it after seeing your wager. Once the game ends, they reveal the real server seed. Any tampering would cause the hash to not match — immediately detectable by anyone.

Which games are provably fair?

Provably fair is used in crypto-native games: dice, crash, mines, plinko, keno, and limbo. Traditional slots from providers like NetEnt or Pragmatic are NOT provably fair — they use RNG instead. Always look for a "Verify" button in the game interface.

Is provably fair better than RNG?

Yes, in terms of transparency. RNG requires you to trust the casino and their third-party auditors. Provably fair requires zero trust — you can verify every single outcome yourself using open-source cryptography. For maximum transparency, provably fair is the gold standard in gambling.

← Back to Glossary