Skip to content
LAB
← All tools

PF Universal Verifier

That flashing green “Fair” badge on your casino profile proves nothing on its own. This universal verifier lets you pull your raw seeds and audit the cryptographic randomness of your bets yourself, outside the operator’s system.

Provably Fair — Universal Verifier

Reproduces the raw HMAC-SHA256 outcome stream operators use to map (server seed, client seed, nonce) → game results. Use this to spot-check any provably-fair game before trusting its in-app "Verify" button.

A · Outcome stream

B · Seed-rotation hash check

After an operator rotates the server seed, they should publish the OLD seed. SHA-256 it here and confirm the digest matches the hash they showed you BEFORE the rotation.

Run the universal verifier: the 3-step process

Provably Fair 100% RTP Dice Game
100% RTP Engine: Verifying true mathematical random output with rejection sampling.
Universal Verifier Engine
Universal Verifier Pipeline: Re-computing HMAC-SHA256 digests across any casino format.

Stake, BC.Game, Roobet, and most modern crypto-casinos build their game results on the same cryptographic primitives, so results can’t be altered after a bet is placed. To audit a specific round, copy these values straight from your bet history panel (newer to this? Start with our guide on how to verify provably fair outcomes):

  1. Server Seed (Revealed): While you play, the operator keeps this string hashed. Once you rotate your active seed pair, the casino hands over the raw hexadecimal string of the previous server seed. For the full mechanics, see our breakdown of the server seed, client seed, and nonce.
  2. Client Seed: A string created by your browser or typed in manually before betting. Its job is simple: the casino cannot know your seed combination in advance.
  3. Nonce: The sequence number of your bet. The first wager on a seed pair is nonce 0 or 1 (site-dependent), the second is 2, and so on.
Auditing seed rotations: Copy the hashed server seed from your profile before you place a single bet. When the session ends, hit “Rotate Seed Pair” to reveal the raw server seed. Enter the revealed seed and the earlier hash into Section B below. A match confirms the casino didn’t quietly swap your seeds mid-session.

The cryptography behind the numbers

For years I assumed what was described as provably fair systems explained in casino marketing was just a wrapper to keep suspicious players quiet. Then I followed the math end to end. It turns out the whole thing rests on a single algorithm: HMAC-SHA256.

1. Building the message string

The game combines your client seed, the nonce (bet number), and a cursor value (used when one round needs several numbers, such as card draws or mines boards). Colons join the parts into one message string:

Message = "client_seed:nonce:cursor"

2. Generating the HMAC hash

That message and the revealed server seed then go through a Keyed-Hash Message Authentication Code (HMAC) built on the SHA-256 hash function. The output is a 64-character hexadecimal signature:

Signature = HMAC-SHA256(Server_Seed, Message)

This signature is locked. Change one character in your client seed or server seed and the hash becomes something unrecognizable and random-looking.

3. Converting hash bytes to game floats

To turn a 32-byte signature into multipliers or card indices, the algorithm reads the bytes in groups of 4 (32 bits) and converts each group into a decimal fraction between 0 and 1:

Float = (Byte_1 / 256^1) + (Byte_2 / 256^2) + (Byte_3 / 256^3) + (Byte_4 / 256^4)

The verifier runs this exact math stream. Compare the floats generated here against the cards, dice rolls, or crash points in your game history, and you’ll know whether the operator’s RNG is legitimate.

Strategy: Keep the operators honest

Casinos understand their audience. The overwhelming majority of players never open their seed panel, let alone write code to check it. That’s precisely why verification is worth a few minutes of your time.

Checking every wager is overkill. Build a simple habit instead: rotate seeds after a big win or an unusually long losing streak, copy your bet history, and paste the values here. Five minutes, three fields.

If a casino ever produces a result that doesn’t match this universal cryptographic stream, you hold immediate, undeniable evidence of tampering.

Frequently asked questions

What does “previously published hash” mean?

Before any bet, the casino displays a SHA-256 hash of the active server seed. Hashing hides the seed itself, so you can’t read it or predict outcomes. But it works as a commitment: once you rotate and the raw seed is revealed, hashing it must reproduce that exact digest. A mismatch means the casino swapped seeds mid-session, which is fraud.

Can the casino predict my client seed?

Not if you set it yourself. Type a random sentence or generate one with a local random number generator, and the casino has no way to know it until your bet is submitted. Pre-computing a losing outcome then becomes mathematically impossible.

Why does the verifier generate multiple floats?

Games consume different amounts of randomness. One dice roll needs a single float. A Plinko round burns one float per peg row. A mines board requires up to 25 floats to place its tiles. Deriving multiple floats is what lets this tool audit any game style.