Provably Fair — Verifiably Fair
CSFail uses Provably Fair, a system that lets any player independently verify the result of any game.
How Provably Fair Works
Server Seed
Before a session begins, the server generates a unique seed. It is hashed (SHA-256) and provided to the player — so the player can confirm the seed wasn't changed after the bet.
Client Seed
The player also provides their own seed (or one is auto-generated). The client seed influences the result, so the server cannot rig outcomes for specific players.
Nonce (Counter)
Each game increments a counter (nonce). Together with the seeds, it ensures every result is unique and eliminates repetition.
HMAC-SHA256 Hashing
The result is computed using the formula HMAC-SHA256(server_seed, client_seed + nonce). The result is converted to a number to determine the game outcome.
Post-game Verification
After the game ends, the server seed (unhashed) is revealed. Players can compare it against the hash they were given and independently calculate the result.
Seed Rotation
Players can change their client seed at any time. This reveals the previous server seed, ending the previous session.
📐 Verification Formula
You can independently verify the result of any game using this algorithm:
The resulting hex string is converted to a number between 0 and 1, which determines the game outcome (multiplier in Crash, color in Double, etc.).
You can use any online HMAC-SHA256 calculator or write a Python/JavaScript script to verify results.