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
| Part | What it does |
|---|---|
| Server seed | A secret random value generated for the match. |
| Server-seed hash | A SHA-256 commitment shown before play so a later seed change is detectable. |
| Client seed | A player-side value mixed into the calculation; a custom value may be set before play. |
| Nonce | A counter that produces the next deterministic value without reusing an earlier one. |
What happens during a match
- The server creates a secret seed and publishes only its SHA-256 hash before gameplay starts.
- A client seed is recorded for the match.
- Each shuffle, die roll or spinner result consumes the next nonce in the deterministic HMAC-SHA256 stream.
- The game rules turn that random value into the required range without favouring part of the range.
- 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.
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.
See the verification model in one place
Review the commitment, randomness and post-game verification flow before you play.
Open the fairness centre