Every roll is verifiable. No trust required.
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