Step 1. Find the spin data
Open the fairness panel in the game. There are four values: hash(serverSeed) — the pre-published hash of the server seed, clientSeed — your client seed, nonce — the spin number, and the serverSeed itself (it is revealed after the seed rotation).
While the server seed is active, only its hash is visible — this serves as a "commitment": the server cannot change the seed retroactively.
Step 2. Wait for the reveal and verify the hash
Change the serverSeed (rotation) — the old serverSeed will be revealed. Calculate SHA-256 of the revealed seed and compare it with the hash that was published before the game. If they match, the seed was not changed.
This is the key point: you verify that the server played with the exact seed it committed to in advance.
Step 3. Recalculate the original
Endpoint /api/fair/verify accepts serverSeed, clientSeed and nonce and independently recalculates the reel positions. The result must match what you saw in the game.
Under the hood — HMAC-SHA256 and rejection sampling (no modulo-bias), so the symbol distribution is strictly uniform. The same mechanism works in Megaways and cascade themes.