Trust & verification

How Provably Fair Randomness Works on Naija Game Arena

Understand server-seed commitments, client seeds, nonces and post-game verification for Naija Game Arena cards, dice and spinners.

By Naija Game Arena Editorial Team7 min read
The short answer

Before a match begins, Naija Game Arena publishes a cryptographic hash of a secret server seed. Game outcomes are then derived from that seed, a client seed and a nonce using HMAC-SHA256. After the match, the server seed is revealed so the sequence can be reproduced and checked against the original commitment.

What “provably fair” means

Provably fair does not mean every short run looks evenly balanced. Random card orders and dice rolls can still produce streaks. It means the platform creates a tamper-evident record that lets the match’s random sequence be checked after play.

The key idea is commitment before revelation: the server commits to a secret without exposing it, uses that secret with player-visible data to generate results, and reveals it only after the match is over.

The four parts of the random stream

PartWhat it does
Server seedA secret random value generated for the match.
Server-seed hashA SHA-256 commitment shown before play so a later seed change is detectable.
Client seedA player-side value mixed into the calculation; a custom value may be set before play.
NonceA counter that produces the next deterministic value without reusing an earlier one.

What happens during a match

  1. The server creates a secret seed and publishes only its SHA-256 hash before gameplay starts.
  2. A client seed is recorded for the match.
  3. Each shuffle, die roll or spinner result consumes the next nonce in the deterministic HMAC-SHA256 stream.
  4. The game rules turn that random value into the required range without favouring part of the range.
  5. When the match finishes, the server seed and the random-event log become available for verification.

What you can verify afterwards

  • Hash the revealed server seed and compare it with the pre-match commitment.
  • Use the server seed, client seed and each nonce to reproduce the random values in order.
  • Compare the reproduced values with the shuffle, dice or spinner events recorded for the match.
  • Check that no nonce was silently reused or skipped in the published event sequence.
Good to know: A matching verification shows that the committed seed produced the recorded random sequence. It does not promise a particular player a favourable outcome.

Where randomness is used

Whot uses the stream to shuffle the deck. Ludo and Snakes & Ladders use it for dice. Quick Play uses it for the wheel spinner. The game engine then applies deterministic rules to the resulting cards, rolls or segment.

Player decisions are not randomised. Choosing a card, choosing which Ludo token to move, or selecting how to resolve dice remains part of the game interaction.

Frequently asked questions

Can the server change its seed after seeing the game?

A change would produce a different SHA-256 hash, so it would not match the commitment published before the match.

Can I verify a match after it ends?

Yes. Completed matches expose the revealed seed and event data needed by the platform’s fairness verifier.

What is a client seed?

It is a player-side input combined with the server seed. It helps ensure the final sequence is not based on a server-only value.

Does provably fair mean I should win half my matches?

No. It verifies the random stream; it does not remove normal variance or guarantee a particular win rate.

Next step

See the verification model in one place

Review the commitment, randomness and post-game verification flow before you play.

Open the fairness centre

Keep learning