Fairness Protocol
Casino Originals Seed Math
How casino original games (Stake Originals, Roobet, Gamdom) evaluate outcomes deterministically from unhashed server seeds and client seeds.
Byte-to-Float Conversion
For each round (nonce $n$), a 32-byte HMAC-SHA256 digest is generated. The bytes are split into 4-byte chunks and mapped to a continuous uniform distribution in $[0, 1)$:
Byte to Float Function
function getFloatFromBytes(bytes: Uint8Array, offset = 0): number {
return (
bytes[offset] / 256 +
bytes[offset + 1] / (256 ** 2) +
bytes[offset + 2] / (256 ** 3) +
bytes[offset + 3] / (256 ** 4)
);
}Game Outcome Formulas
1. Stake Limbo & Crash
With a 1% house edge, the maximum achievable multiplier crash point is:
crashPoint = Math.floor((1e8 / (Math.floor(float * 1e8) + 1)) * 0.99) / 100;
2. Stake Dice
Scales the float across 10,001 discrete divisions from 0.00 to 100.00:
roll = Math.floor(float * 10001) / 100;
3. Stake Plinko (8–16 Rows)
Each row consumes 1 float; if $f \ge 0.5$, the ball falls right (+1), else left (+0). The sum of right bounces determines the terminal prize bucket.
Audit Any Game Seed Live
Try our interactive verifier tool at /verify/games to simulate thousands of rounds on any Stake seed pair with live charts.
