“Provably fair” is a method for checking one narrow thing: that a game result was fixed before you bet and was not changed afterwards. It works through a hash commitment. The site publishes a fingerprint of a secret value before you play. Once the game is over, it reveals the secret, and you check that the secret matches the fingerprint and produces the result you saw.
The check is useful but narrow. This page covers how it works and where it applies. For what it leaves open, read what provably fair doesn’t prove.
The idea: commit, then reveal
Think of a sealed envelope. Before you bet, the site writes a secret number, seals it, and hands you the envelope. It cannot open it and swap the number later, because you are holding it. After your bets, it opens the envelope. You see the number and check that the game used it.
Cryptography replaces the envelope with a hash. A hash function such as SHA-256, defined in NIST’s FIPS 180-4, turns any input into a fixed 64-character hex string. Two properties matter here:
- The same input always gives the same hash.
- You cannot work backwards from the hash to the input, and you cannot find a second input that gives the same hash in any practical amount of time.
So the site shows you the hash of its secret seed (the commitment). It cannot later claim a different seed, because a different seed would give a different hash. You can test this yourself with any SHA-256 tool.
Why the commitment stops the house changing the outcome
Without a commitment, a game could pick its result after seeing your bet. You would have no way to tell. With one, the order of events is locked:
- The site generates a secret server seed and shows you only its hash.
- You set (or accept) your own client seed.
- Each bet combines the server seed, your client seed and a counter. The result is calculated from those three values only.
- Later, the site reveals the server seed. You hash it and compare with the hash you were shown at step 1.
If the hashes match, the seed was fixed before you bet. Your client seed was an input the site could not predict. The result then follows from a published formula, so you can recompute every bet yourself. The three values are covered in seeds and nonces, and the full process is in how to verify a bet.
The scheme most sites use builds the result with HMAC, a keyed hash described in RFC 2104. The server seed acts as the key, and the client seed and nonce are the message.
Which games use it
Provably fair applies to games where the outcome is a number the site generates. These are usually called originals or in-house games:
| Game | What the random number decides |
|---|---|
| Dice | A roll from 0.00 to 100.00 against your chosen target |
| Crash | The multiplier at which the round ends |
| Plinko | The path a ball takes down the pegs |
| Limbo | A target multiplier, hit or missed |
| Mines | Which tiles hide a mine |
All of these reduce to the same step: turn some bytes from the hash into a number, then map that number to a game result. How the mapping works differs by game and by site.
Ordinary sportsbook bets are not provably fair
A bet on a football game, a tennis match or an NBA total is settled by what happens in the real world. No seed or hash decides it, so there is nothing to verify cryptographically. A site cannot prove the final score with a hash.
For those bets, fairness depends on other things: the odds you were quoted, the rules the site applies to settle bets, and whether it pays out. A “provably fair” badge on a sportsbook page, if it appears at all, applies to the site’s casino originals and not to the sports market.
This matters because offshore crypto sportsbooks are not licensed in any US state, and there is no US regulator to take a complaint to. A provably fair dice game does not change that. See are offshore sportsbooks legal for the legal position.
A quick way to see it work
The Woyale dice verifier runs the calculation in your browser. You enter a server seed, client seed and nonce, and it shows the hash and the roll. Change one character in any input and the output changes completely. Because any change alters the output, a revealed seed that matches its commitment can be trusted.
Variants to expect
There is no single standard. Sites differ in how they build the string that gets hashed, how many bytes they use, and how they map bytes to a result. Some add extra rounds or a “cursor” value for games needing many random numbers, such as mines. Always check the site’s own fairness page for its exact method before you rely on a verifier.
Common questions
Does provably fair mean I will win more?
No. It says nothing about your odds. It only lets you check that a result was not altered after you bet. The house edge of each game is a separate figure set by the site.
Can the site still cheat if it uses provably fair?
It cannot change a committed result after the fact. It can still do other things that this method does not cover, such as offering a game with a poor payout table or refusing a withdrawal. See what provably fair doesn’t prove.
Is a hash the same as encryption?
No. Encryption can be reversed with a key. A hash is one-way: it produces a fingerprint that cannot be turned back into the original input. Provably fair uses hashing, not encryption.
