Provably Fair Game Verification

How it works

Every bet's outcome is determined by a deterministic function of three values: a server seed, your client seed, and an incrementing nonce. On supported Pixi-operated games, the active server seed hash is shown in advance. Once you rotate the seed, we reveal the original value so completed rounds can be independently recomputed. External provider games use their providers' own systems.

Place a bet to initialize your seed pair.

Coin Flip - lightning-v2

Coin Flip uses a weighted outcome based on your committed pick. Ordinary wins pay 2x with a 48% chance. Each round independently has a 1-in-9 lightning chance. Lightning chooses heads or tails equally and selects a whole-number multiplier uniformly from 3 through 500. If it boosts your pick, your win chance is 0.96 divided by that multiplier; otherwise it stays 48%. This gives 96% theoretical RTP. Returns include the stake.

To verify lightning-v2, read the first four floats from the HMAC stream: outcome, lightning trigger, lightning side, multiplier. Lightning triggers below 1/9; its side is heads below 0.5, otherwise tails; its multiplier is min(500, 3 + floor(float * 498)). Win when the outcome float is below your calculated win chance; otherwise the opposite side lands. The stored rules_version identifies these rules. Older unversioned rounds used the first float below 0.5 for heads and paid 1.98x.

Verify a bet

After rotating, you can recompute any past bet using:

hmac_sha256(server_seed, `${client_seed}:${nonce}:${cursor}`)
  → 32 bytes → split into 4-byte uint32s → / 0xFFFFFFFF → floats in [0,1)

Supported Pixi-operated games use these floats in a documented way (e.g. Crash: bust = floor((100 − 3) / (1 − r)) / 100). Their game logic lives in lib/games/ on GitHub.