Provably Fair

Every roll is verifiable. No trust required.

How it works

Before each round starts, the server generates a random server seed and broadcasts its SHA-256 hash. You can confirm the hash before betting — proof that the seed was fixed before you placed any bet.


When the round ends, the server reveals the full server seed. You can then verify the roll yourself:

// 1. Compute HMAC-SHA256
h = HMAC-SHA256(key = server_seed, message = client_seed + ":" + nonce)

// 2. Take the first 8 hex characters, parse as an integer
roll = parseInt(h.slice(0, 8), 16) % 15

// 3. Look up on the wheel
wheel = [
  "green",  // 0
  "red",    // 1
  "black",  // 2
  "red",    // 3
  "black",  // 4
  "red",    // 5
  "black",  // 6
  "red",    // 7
  "black",  // 8
  "red",    // 9
  "black",  // 10
  "red",    // 11
  "black",  // 12
  "red",    // 13
  "black",  // 14
]

You can also verify with openssl:

echo -n "<client_seed>:<nonce>" | openssl dgst -sha256 -hmac "<server_seed>"
# take first 8 hex chars → parseInt → mod 15

Verify a round