GUIDE Β· PROVABLY FAIR

What provably fair means and how to verify a bet

A hashed server seed, your client seed and a nonce lock each result before you bet; rotating seeds reveals the secret so you can recompute it. A worked example, what the scheme proves and does not, hash chains, and the fairness pages that fail the test.

Cover image

Provably fair means the casino locks in the result of your bet before you place it and hands you the means to check it afterwards. Before the bet you see a hash of a secret server seed; you add your own client seed; a counter called the nonce numbers each bet; after you rotate seeds the secret is revealed and you can recompute every result yourself. It proves the outcome was not changed after you bet. It does not prove the odds are good or that the cashier pays, and it only covers the operator’s own games, not third-party slots or live tables.

The scheme in four moves

Every implementation I have read is a variation of the same commitment scheme. Shuffle’s help centre describes it in the plainest terms, so I use its wording as the reference.

  1. Commit. The server generates a secret seed (Shuffle: a random 64-character hex string), hashes it with SHA-256 and shows you only the hash. The hash is the commitment: the server cannot swap the seed later without the hash changing.
  2. Contribute. You supply a client seed. Your browser generates one by default and you can edit it. This is your share of the randomness, so the operator cannot pick a server seed that beats a client seed it does not know yet.
  3. Count. The nonce starts at 0 and rises by one with every bet on the same seed pair, so each bet gets a fresh result from the same two seeds.
  4. Reveal. When you rotate to a new seed pair, the old server seed is shown unhashed. You hash it yourself, compare it with the commitment, then recompute each bet from server seed, client seed and nonce.

Cloudbet’s fairness page sums up the goal in one line: both sides contribute to the randomness, so neither can control the outcome alone, and the casino must prove it did not change its input after the fact.

The formula, worked once by hand

Shuffle publishes its implementation in code. The result of a bet comes from HMAC-SHA256, keyed with the server seed, over the message clientSeed:nonce:round. The 32-byte output is cut into eight groups of four bytes, and each group becomes a number between 0 and 1. A game that needs more than eight numbers moves to the next round and computes a fresh HMAC. For dice, Shuffle multiplies the first number by 10,001, rounds down and divides by 100, which gives a roll from 0.00 to 100.00.

Shuffle’s own documentation uses a toy example: server seed def, client seed abc, nonce 1. I recomputed it with Python’s standard hmac module to check the description against the arithmetic.

Step Value Note
Message abc:1:0 client seed, nonce, round 0
HMAC-SHA256 (key def) 6e37d85d aa228fdf … my test, 2026-10-07
First four bytes 110, 55, 216, 93 hex 6e, 37, d8, 5d
Float 0.43053962965495884 110/256 + 55/256² + 216/256³ + 93/256⁴
Dice roll 43.05 floor(float Γ— 10,001) / 100; matches Shuffle’s example
Commitment to compare cb8379ac 2098aa16 … SHA-256 of the text def

Real server seeds are 64 random hex characters, not three letters, but the steps are identical. The provably fair calculator runs this formula in your browser: pick the “Stake-style” formula, paste the three values, and the dice result comes out the same way. One caution on the commitment step: an operator may hash the seed as text or as raw bytes. If your hash does not match, check which one its documentation uses before you conclude anything.

What it proves and what it does not

The scheme answers one narrow question very well. The rest of the questions a player should ask sit outside it.

Question Does provably fair answer it Where to look instead
Was the result fixed before I bet? Yes, once the seed is revealed and the hash matches The fairness tab and a verifier
Did the casino change the result after seeing my bet? Yes, it could not without breaking the hash Same
How big is the house edge? No. The edge is part of the formula, not checked by it The game’s published RTP or edge
Will my withdrawal be paid? No The payout tests and the Shit List
Are the slots fair? No. Third-party slots run on the studio’s RNG The studio’s lab certificate, if one is published

The edge point deserves a sentence of its own. Shuffle’s Limbo code sets rtp = 0.99 inside the function that turns the random number into a multiplier, a 1% edge written into the formula in plain view. A provably fair game with a 5% edge verifies just as cleanly as one with 1%. The scheme guarantees the dice are not loaded after the fact; it does not say how the dice were designed.

The edge cases that trip people up

A seed you never rotate is never revealed

The server seed only becomes public when you rotate the pair. Shuffle’s verification steps start with “rotate pair”, and its help page notes that client seed and nonce for past bets stay the same. If you play a thousand bets on one pair and never rotate, you have a commitment and nothing to check it against. Rotate after any session you might want to audit. Shuffle also asks you to finish any open game first.

Leaving the default client seed

The browser-generated seed is still a seed the server did not choose, so the scheme holds. Setting your own adds certainty that no script on the page picked it for you, at no cost. Cloudbet accepts up to 255 characters.

Multiplayer games use a shared chain instead of your seed

In a crash round everyone sees the same result, so there is no single client seed to mix in. Operators use pre-committed hash chains instead. Gamdom generated a chain of 10 million SHA-256 hashes per game, published the final hash, and plays the chain in reverse; you verify that the SHA-256 of each round’s hash equals the previous round’s hash. BC.Game uses the same idea for Crash, with a published formula and a verifier. Rainbet’s fairness page says its multiplayer games, Case Battles and EOS Roulette, take outcomes from EOS blocks.

Not every operator uses HMAC-SHA256

Cloudbet’s Originals use SHA3-256 for the commitment and the round signature, then SHAKE256 to produce the random stream, with rejection sampling so that no outcome is favoured by uneven division. That is a sound design, but it is a different formula. My calculator implements the HMAC-SHA256 family only, so a Cloudbet bet has to be checked with Cloudbet’s own game verifier and server seed verifier, which its fairness page provides.

Verifying a bet, step by step

  1. Before you play, copy the hashed server seed and your client seed from the game’s fairness panel.
  2. Place your bets. Note the nonce of any bet you want to check; the bet slip usually shows it.
  3. Rotate the seed pair. The previous server seed is now shown unhashed.
  4. Hash the revealed server seed with SHA-256 (SHA3-256 at Cloudbet) and compare it with what you copied in step 1. A mismatch is the only result that matters in this whole exercise.
  5. Paste server seed, client seed and nonce into the calculator or the operator’s verifier, choose the game, and compare the result with your bet history.

Where the values live differs by site. Shuffle has a “rotate pair” control in the bet modal and a public verification tab. Wolf.bet has Overview, Verification and Implementation tabs, the last one showing the JavaScript for Dice. Gamdom links sample code for each of its eleven chain-based Originals. Roobet‘s fairness page has a tab for each of fourteen games, from Crash to Wheel. Rainbet has a “Game Verifier” tab and per-game algorithms. Duelbits publishes daily seeds and Node.js code for its Originals.

Third-party slots and live tables are a different system

A slot from an outside studio runs on that studio’s random number generator, and the casino cannot hand you a seed for it. Fairness there rests on lab testing, not on anything you can recompute. Gaming Laboratories International, one of the testing labs, lists RNG and RTP analysis among its iGaming services and publishes GLI-19, its standard for interactive gaming systems. A certificate is something an operator or studio either publishes or does not; a sentence in the help centre is not one.

Some of the sites I review show the gap clearly. SportsBetting.ag says its RNGs are approved by GLI but links no certificate. Bovada‘s fairness page is generic and names no lab. BetUS’s terms say random number generator software determines outcomes, with no lab named. Live dealer games are physical cards and wheels on camera, so a seed scheme does not apply to them at all. The live casino category and the slots category list sites by what they offer, not by provable fairness.

One partial exception: BitStarz says most BGaming titles it carries are provably fair and explains the method. That is the studio’s scheme, not the casino’s, and it covers only that studio.

Reading a fairness page critically

“Provably fair” is a phrase anyone can put in a footer. The test is whether you can actually verify a bet without an account and without trusting the operator’s word. I set the provably fair flag on a review only when a public verifier or published formula exists. Three cases from my research show why the rule matters.

Site What the page offers My flag
RocketPlay FAQ says most games are provably fair; no page, seed tool or algorithm found No
TrustDice Page describes server seed, client seed and nonce; the verifier link rendered an empty page No
Monkey Tilt Describes the scheme; the verifier panel did not load without an account No
Wolf.bet Public verifier plus the Dice code Yes
Gamdom Published final hashes and sample code per game Yes

Read on 2026-10-06. Questions worth asking of any fairness page: is the formula published, or only the word “fair”? Is there an algorithm per game, or one generic paragraph? Can you verify a bet after rotation, including old ones? Does the page say which games it covers? Stake’s help article, for instance, explains provable fairness for “Stake original games” specifically, which is the honest scope.

How it counts in my score

Provably fair sits inside “Games & odds”, which carries 15% of the score at the weights published on how I rate. It is one input to that part, alongside library size, providers, originals and sportsbook margins. Payout speed and reliability carry 25%, and reputation 20%. That weighting is deliberate: a verifiable dice game at a site that sits on withdrawals is still a site that sits on withdrawals. The provably fair page lists the reviewed sites that pass the verifier rule, and the crypto casinos category shows them in context.

The short version

Provably fair is a commitment: the hash you see before the bet locks the result, and the revealed seed lets you recompute it. Rotate your seeds after any session you might audit, set your own client seed, and check one bet with the calculator to see that it works. Then look elsewhere for what the scheme cannot tell you: the edge per game, whether the slots have a lab certificate, and whether the cashier pays. The scam guide covers the last part.

Sources

Pages I read for this guide, in the state they were on the last-reviewed date. Operators change terms without notice; if a link disagrees with the text above, the link wins and I owe you a correction.

  1. Provably fair: commitment schemes (64-character server seed, SHA-256, nonce from 0) β€” Shuffle help help.shuffle.com
  2. Provably fair: implementation (HMAC-SHA256, bytes to floats) β€” Shuffle help help.shuffle.com
  3. Provably fair: game events (Dice, Limbo rtp 0.99) β€” Shuffle help help.shuffle.com
  4. Provably fair: how to verify bets (rotate pair) β€” Shuffle help help.shuffle.com
  5. Provably fair crypto casino: how it works (SHA3-256, SHAKE256, rejection sampling) β€” Cloudbet www.cloudbet.com
  6. Provably fair: 10 million SHA256 hash chain per game β€” Gamdom gamdom.com
  7. Provably fair (Overview, Verification, Implementation tabs) β€” Wolf.bet wolfbet.com
  8. Provably fair (Crash hash chain, verifier) β€” BC.Game help bc.game
  9. Provable fairness for Stake original games β€” Stake help help.stake.com
  10. Provably fair (client seed, hashed server seed, nonce, EOS blocks) β€” Rainbet rainbet.com
  11. Fairness (14 game tabs) β€” Roobet roobet.com
  12. Fairness (daily seeds, Node.js code) β€” Duelbits duelbits.io
  13. Provability explained (BGaming titles) β€” BitStarz www.bitstarz.com
  14. GLI standards (GLI-19 Interactive Gaming Systems; RNG testing) β€” Gaming Laboratories International gaminglabs.com
  15. Fair gaming and integrity (GLI claim) β€” SportsBetting.ag help help.sportsbetting.ag
  16. Provably fair casino page β€” TrustDice trustdice.win
  17. Provably fair β€” Monkey Tilt monkeytilt.com
  18. FAQ ("most of the games ... are provably fair") β€” RocketPlay www.rocketplay.com

Questions people ask

What does provably fair mean?

That the casino commits to a game result before you bet and lets you check it afterwards. You see a hash of a secret server seed, you add a client seed, a nonce counts your bets, and when you rotate seeds the server seed is revealed so you can recompute each result and compare the hash.

How do I verify a provably fair bet?

Copy the hashed server seed and your client seed before playing, note the nonce of the bet, then rotate the seed pair. Hash the revealed server seed and compare it with the commitment, and run server seed, client seed and nonce through the provably fair calculator or the operator's verifier.

Can a provably fair game still be rigged?

The scheme stops a casino from changing a result after your bet, as long as you verify. It does not stop a high house edge, which is written into the game formula, and it says nothing about whether withdrawals are honoured. Check the published edge and the payout record separately.

Are slots at crypto casinos provably fair?

Usually not. Provably fair applies to the operator's own games such as dice, crash, plinko and mines. Third-party slots run on the studio's RNG, which a testing lab may certify; some studios, such as BGaming at BitStarz, run their own provably fair scheme.

Why do I need to rotate my seed?

Because the server seed is only revealed when the pair is rotated. Until then you hold a hash with nothing to compare it against. Rotate after any session you might want to check; the client seed and nonce of past bets stay the same.

Do all provably fair casinos use the same formula?

No. Shuffle and Wolf.bet use HMAC-SHA256 over client seed and nonce, Gamdom uses pre-generated hash chains for its Originals and BC.Game for Crash, and Cloudbet uses SHA3-256 with SHAKE256. Use a verifier that implements the operator's published formula.

Sites mentioned in this guide

Changelog

  • First full version: the scheme with Shuffle's published formula, a worked HMAC example recomputed by hand, hash chains and Cloudbet's SHA3 variant, the slots and live-table gap, and the fairness pages that fail the verifier rule.
  • Outline and brief.

Affiliate disclosure: some links to operators are affiliate links and may earn me a commission. They never change what a guide says. Details Nothing here is legal or financial advice.