Overnight.Bet

Provably fair, in one round

Play a single play-money dice round without an account, then verify the result yourself with nothing but a hash function.

Play-money only 18+ No account needed

This is play money. Overnight.Bet is a free, play-money product. There are no deposits, no payouts and no real-money wagering. Nothing on this page is a purchase, a stake or a prize, no balance is created and nothing is credited to anyone. The numbers below are an illustration of a single round.

18+. This demonstration of a gambling mechanic is intended for adults only. If play stops being entertainment, see responsible play.

No account, nothing stored. This page needs no registration and no login. It writes nothing: no account row, no bet row and no counter. It sets no cookie, and the process serving it never receives your IP address. The ordinary web-server and reverse-proxy logging described in the privacy notice applies here as on every page.

Step 1 — the server has already committed

A server seed for this round was generated before you choose anything, and only its SHA-256 hash is shown. The server cannot change the seed afterwards without breaking that hash, so it cannot pick a result once it knows your input.

Round id
58702404a6a4641a1b0eb3f8da2e4aac
Server seed hash (the commitment) — sha256(server_seed)
d2029d1d19d8797039a9acaacd88cacf91df3801c9ea8130e00705a09769a526
Server seed
hidden until the round is played

Copy the commitment now if you like — step 3 reveals the seed and you can check that its SHA-256 is exactly this string.

A commitment belongs to the running demo process. If this small service is restarted, an older round id is refused by name rather than answered with a seed that would not match the commitment you were shown — just start a fresh round.

Step 2 — your input

Nothing is wagered. No balance exists here and none is created.

Step 3 — the scheme you will be checking

This is the same HMAC scheme the real games use, and the same code path: the demo imports byte-identical copies of the casino's own fair.js and games/dice.js.

server_seed  = 64 hex characters, committed in advance as sha256(server_seed)
client_seed  = whatever you type below
nonce        = the round counter you choose

digest = HMAC_SHA256(key = server_seed, message = "<client_seed>:<nonce>:0")
float  = first 4 bytes of digest, big-endian, divided by 2**32
roll   = floor(float * 10001) / 100          -> 0.00 .. 100.00

The house edge on dice is 1%: the payout multiplier is 99 / win-chance-in-percent. In this demo that multiplier is shown for illustration only — there is no stake and no payout.

Machine-readable

Add ?format=json to either route to drive this from a script.

curl -s "https://overnight.bet/demo/provably-fair?format=json"
curl -s "https://overnight.bet/demo/provably-fair/play?round=58702404a6a4641a1b0eb3f8da2e4aac&clientSeed=2d95e6667d0c54fe&nonce=0&mode=over&target=50.50&format=json"