For most of the internet’s history, online games of chance have run on a simple bargain: the player trusts the operator. A random number generator runs on a private server, and the only reassurance available is a certificate from a testing lab.
A different model has spread through the crypto economy over the past decade. Known as provably fair, it replaces institutional trust with a check that any user can run. Looking at how it works in a real deployment shows both what the approach achieves and where its limits lie.

The trust gap in digital chance
Physical games carry their own evidence. You can watch a shuffle or see dice land. Online, every outcome is a number produced by software, and even an honest operator struggles to prove that a particular result was not altered after a bet was placed.
The conventional answer is the audit. Independent labs test random number generators and certify that outcomes match the expected distribution over millions of samples.
Audits are useful, but they are aggregate rather than per round; they describe software at a moment in time, and they still ask the user to trust both the auditor and the operator.
Commit and reveal
Provably fair systems are an application of a cryptographic pattern called commit and reveal. One party commits to a secret value by publishing a fingerprint of it, then reveals the value later so anyone can confirm it was never changed.
The fingerprint is produced by a cryptographic hash function, usually SHA-256, the same family of functions used in blockchains and password storage.
Two properties make it suitable. It is practically impossible to reconstruct the input from the output, and changing a single character of the input produces a completely different output. A published hash therefore locks in a value without revealing it.
The three inputs
Most implementations combine three values.
- Server seed. Generated by the operator and kept secret. Only its hash is shown to the player before play begins, which acts as the commitment.
- Client seed. Supplied or editable by the player. Because the operator cannot predict it, it cannot pick a server seed that produces favorable results.
- Nonce. A counter that increases with each bet, so that every round produces a distinct output from the same pair of seeds.
These are combined with a keyed hash, typically HMAC-SHA256, and the resulting bytes are mapped to an outcome: a number between 0 and 100 for a dice game, a multiplier for a crash game, or positions on a grid for a mines game.
When the player rotates to a new seed pair, the old server seed is revealed. The player can hash it, confirm it matches the original commitment, and recompute every outcome generated with it.
A case study: a live implementation
Grailbet, a crypto casino and sportsbook, offers a useful illustration of how this works at scale. The Grailbet catalog lists more than 3,800 games, many of them from external studios, where players rely on the conventional model of trust. Alongside those sit more than 20 in-house titles, which it calls Originals, built on the commit and reveal pattern.
In each of Grailbet’s Originals, the verification tools sit inside the game interface. A player can view the hashed server seed before betting, edit the client seed, see the nonce for each round and, after rotating seeds, check past outcomes without leaving the page.
The design choice is significant. Verification that requires exporting values to a separate tool is possible but rarely done. Placing the check beside the game lowers the effort enough that ordinary users can try it.
Grailbet also shows the two trust models running side by side. Third-party titles follow the conventional approach, while the in-house Originals offer per-round verification.
That split is typical across the sector and reflects a practical reality: provably fair schemes are easiest to apply to simple games whose outcome can be derived from a single random number.
What the system proves, and what it does not?
Commit and reveal proves that an outcome was fixed before the bet and was derived from the agreed inputs. That is a meaningful guarantee, and it is stronger than anything a player can confirm about a conventional online game.
It does not prove that a game is generous. The mapping from random bytes to outcomes encodes a house edge, and verification confirms only that the published rules were followed.
It also depends on users actually checking. A commitment that nobody verifies offers the same practical protection as no commitment at all, which is why interface design matters as much as the cryptography.
There are implementation risks too. A weak source of randomness for the server seed, a flawed mapping from hash to outcome, or a client seed that the platform quietly controls would all undermine the scheme. Open documentation of the algorithm allows independent developers to audit the logic as well as the individual results.
Beyond gaming
The same pattern appears well outside casinos. Sealed-bid auctions, blockchain randomness beacons, lottery draws and some voting proposals use commit and reveal so that no participant can change their input after seeing others. Gaming is simply one of the most visible consumer applications, because millions of small, verifiable events take place every day.
For anyone interested in how cryptography reshapes trust, provably fair systems are a compact case study. They show how a small amount of public maths can shift verification from an institution to an individual, and how much the result depends on making that verification easy to perform.
Practical takeaways
- A provably fair label is a claim. The value lies in being able to test it yourself.
- Look for platforms that show the hashed seed before play and let you set the client seed.
- Treat verification as proof of process, not proof of value. The house edge remains.
18+ only. Where online gambling is legal and you choose to take part, please gamble responsibly and never stake more than you can afford to lose.


