Server Seed, Client Seed, and Nonce Explained
Learn what server seed, client seed, and nonce mean in provably fair games — commit–reveal roles, rotation, and how VFairGames uses them.

Server seed, client seed, and nonce are the three inputs behind most provably fair casino rounds. Together they feed HMAC-SHA256 so a result can be locked before the bet and re-checked after reveal — without asking anyone to “just trust the RNG.”
This guide zooms in on those three fields as used across VFairGames (Dice, Mines, Limbo, Plinko, Keno). For a short overview of the whole model, see What is provably fair?. For a paste-and-check walkthrough, see How to verify a provably fair game result.
The three inputs in plain words
| Input | Who controls it | Role |
|---|---|---|
| Server seed | Operator (kept secret until reveal) | House entropy. Players first see only its hash (commitment). |
| Client seed | Player / client | Player entropy so the house cannot unilaterally pick a convenient secret after seeing the bet. |
| Nonce | System (increments per bet on the pair) | Stops two bets under the same seeds from producing the same digest. Starts at 0 for a new pair. |
Typical HMAC message shape on VFairGames: clientSeed:nonce (and a cursor when a game needs more than one random value — Mines layouts, Plinko rows, Keno shuffle steps). The key is the server seed.
Commit–reveal (why the hash matters)
- Commit — before bets under a seed pair, the UI shows a server seed hash (
SHA-256of the secret). The secret itself stays hidden. - Play — each bet uses client seed + nonce (+ cursor when needed) with HMAC-SHA256 to build the game outcome.
- Reveal — when the player rotates to a new seed pair (new client seed), the previous server seed is revealed. Anyone can check that it hashes to the old commitment and recompute past rounds.
If the revealed seed does not match the hash, or recomputing HMAC does not match the stored result, manipulation is detectable.
Seed rotation on VFairGames
In the Provably Fair modal you can set a new client seed and accept the next server seed commitment. On success:
- The old server seed is revealed (so history becomes fully verifiable)
- Nonce resets to 0
- A new hash is shown for the next pair
Rotation is blocked while a round is still open (for example an unfinished Mines grid). Demo play uses the same story with local mock seeds so partners can evaluate before wallet go-live.
How games use the digest (high level)
The same seed trio feeds different mappings:
- Dice — digest → roll on 0–100
- Limbo — digest → crash-style multiplier (with configured RTP in the mapping)
- Mines — many HMAC steps → mine positions on a 5×5 board
- Plinko — one HMAC step per row → left/right path → bucket
- Keno — HMAC shuffle of 1–40 → first 10 numbers drawn
Game posts cover the player-facing rules; this page is only about the shared inputs.
Why operators care
Clear seed UI plus a public verifier (verify.vfair.games) turns “was this round fair?” into a checklist: hash match, recompute, compare. That is a support and trust product, not a marketing badge alone.
Evaluating VFairGames for your casino or platform? Email info@vfair.games.
FAQ
What is a server seed hash?
A public fingerprint of the still-secret server seed. Players use it to confirm the revealed seed was the one committed before play.
Can I change my client seed?
Yes — via Change seed pair / new client seed in the fairness UI. That rotates the pair and reveals the previous server seed.
Why does nonce go up?
Each bet under the same seed pair must get a unique HMAC message. Nonce counts those bets so outcomes do not collide.
Is nonce the same as a bet ID?
No. Nonce is the fairness counter for the seed pair. Bet / round IDs are separate ledger identifiers.