Integration/View as Markdown

Fairness

Every result comes from one weighted draw, decided before the player sees it and provable afterwards.

The commitment

When a session is minted, its answer carries fairness.serverSeedHash: the SHA-256 of a server seed we keep secret for the life of the session. Show it to the player before the first round if you like. Together with the player's clientSeed (fixed per session, passed at minting) and a nonce per round, it fixes every outcome in advance.

The draw

A round resolves one weighted selection from the game's published book set with HMAC-SHA256 over the server seed, client seed and nonce. Nothing else in the round path draws randomness.

The record

Every round is recorded before it is served: game, gameVersion, book set, seed and nonce. When the session's seed is rotated, the old server seed is revealed, and anyone can recompute each round with the verifier.

Versions

gameVersion travels with every round, so changing a game's maths never changes how an old round verifies.