Provably fair, explained
A heavily marketed term with, oddly, no neutral encyclopedic explanation of its own. Read honestly it is an ordinary cryptographic construction — a commitment scheme with a keyed derivation on top. What the cryptography actually guarantees (per-bet outcome integrity against a committed seed), what it cannot (fair RTP, honest game design, a seed that was not cherry-picked before commitment), and how to verify a result yourself.
“Provably fair” is one of the most marketed phrases in crypto-native gambling and one of the least neutrally explained. Search for a plain, non-commercial account of the term and you find a gap: there is no dedicated encyclopedic article on it, and the honest way to close that gap is not to invent one but to recognise what the mechanism already is. Underneath the branding, provably fair is a textbook cryptographic construction — a commitment scheme, with a keyed derivation layered on top. Name the parts correctly and both its real guarantee and its real limits become obvious.
The primitive: a commitment scheme
A commitment scheme is the cryptographic version of sealing a prediction in an envelope. It has two phases. In the commit phase you publish something that locks in a secret value without revealing it; in the reveal phase you open it, and anyone can check it matches. Two properties make it work. Hiding: the committed value cannot be extracted from the published message. Binding: a party cannot change the value after they have committed to it. The classic use, described in the same references, is fair coin-flipping over a distance: one side commits to a choice, the other calls, then the first reveals — neither can cheat, because the commitment was binding and the call was made blind.
In a provably fair game the operator plays the committing party. Before you bet, it publishes a cryptographic hash — typically SHA-256 — of a secret server seed. The hash is the sealed envelope: it hides the seed (you cannot read the seed off the hash) and it binds the operator (it cannot later swap in a different seed, because the new seed would not hash to the value already published).
Two layers, kept separate
This is where popular explanations blur an important line, so it is worth drawing sharply. There are two distinct layers, and only the first is the formal commitment scheme.
Layer 2 — the per-bet derivation. Each outcome is then computed by combining the server seed with a client seed you can set and a nonce (a counter that increments per bet), usually via HMAC-SHA256(server seed, client seed : nonce), mapping the result to a game outcome.
The crucial accuracy point: Layer 2 is an operator implementation convention, not part of the commitment-scheme definition. The primitive guarantees only that the committed seed is hidden and fixed. The client-seed-plus-nonce-plus-HMAC arrangement is what turns that one commitment into a whole sequence of per-bet outcomes, and it is what lets you inject influence: because you choose the client seed after the server seed is already committed, the operator cannot have tailored its seed to your input. Conceptually this is a step toward a verifiable random function — an output that arrives with a proof of its own correctness — though the everyday implementation is the simpler hash-and-HMAC pair, not a full VRF.
Verifying a result yourself
The payoff is that you can check, not trust. After a betting session the operator reveals the server seed. You do two things. First, you hash the revealed seed and confirm it equals the commitment published before you played — that is the binding check; if it matches, the operator did not change the seed mid-session. Second, you re-run the Layer-2 derivation yourself — same server seed, your client seed, each nonce — and confirm every outcome reproduces exactly. If both checks pass, each result provably came from the pre-committed seed and your own input, computed honestly.
One caveat lives inside the cryptography: the committed seed must have enough entropy. If an operator committed to a low-entropy seed, an observer could brute-force it straight from the published hash — the same lesson as the guessable-seed problem in how casino RNGs work. Hiding assumes the value was hard to guess in the first place.
What it guarantees, and what it does not
Stated exactly, provably fair guarantees per-bet outcome integrity against a committed seed: every outcome is verifiably derived from a seed fixed before the bet, plus your own client seed, and was not altered afterwards. That is a real, valuable, checkable property. It is also narrow. It does not guarantee a fair return to player — the house edge is a separate design choice, as the FAQ below spells out. It does not guarantee honest game design: the mapping from hash to outcome could implement any distribution the operator wants, and the proof only shows the mapping was followed, not that it was reasonable. It does not guarantee operator solvency — that a winning bet actually gets paid. And it cannot rule out a seed that was cherry-picked before commitment: nothing in the hash forces the operator to have generated a neutral seed, only to stick with whatever it committed to.
Provably fair vs licensed-market certification
The two models answer different questions and are not substitutes. Provably fair gives you a per-bet tamper-evidence proof but says nothing about the pay table, the operator’s finances or the neutrality of the seed. Licensed-market certification — the subject of what a certificate asserts — gives you an independent laboratory’s dated statement that a build met a written standard, including a payout floor, but asks you to trust the lab and the regulator rather than to check each bet. For a sense of what genuinely neutral, publicly verifiable randomness looks like at the infrastructure level, projects such as the drand randomness beacon publish distributed, independently verifiable random values — a useful contrast to a single operator’s server-seed commitment. Understanding all three is what lets you judge a “provably fair” badge for exactly what it is worth: proof of an honest draw, not proof of a fair game.
Common questions
Is provably fair actually fair?
It proves one specific thing: that a bet’s outcome was computed from a seed the operator committed to in advance and could not change afterwards. That is genuine and verifiable. But "fair" in the everyday sense — a reasonable return to player, honest game design, a solvent operator who pays out — is not what it proves. A provably fair game can commit to a seed and derive every outcome correctly while still carrying any house edge the operator chose, because provably fair certifies the integrity of the draw, not the generosity of the maths.
Does provably fair mean the game has a good RTP?
No. The commitment scheme guarantees that outcomes were not altered after the fact; it says nothing about the probability distribution behind them. The RTP is a property of the game design layered on top, exactly as it is for any other game, and it can be high or low regardless of the provably fair mechanism. Provably fair and a good return are independent questions — the first is about tamper-evidence, the second is about the pay table.
Sources (4)
- Commitment scheme (commit–reveal; hiding and binding; coin-flipping) — Wikipediaen.wikipedia.org
- Coin flipping (cryptographic commit-then-reveal protocol) — Wikipediaen.wikipedia.org
- Verifiable random function (output plus a proof of correctness) — Wikipediaen.wikipedia.org
- drand / League of Entropy — a publicly verifiable, distributed randomness beacondrand.love
Education, not advice. This chapter explains how the random number generators behind casino games are built, tested and certified so you can judge the claims made about them honestly. It is not a system, and nothing here treats gambling as a way to make money — over enough play the mathematics favours the house. 18+.
Next in the pathLive dealer vs RNG