Skip to main content

What Provably Fair System do you use in Keno?

Written by Sylvia

Keno uses a Provably Fair system to ensure that every draw is transparent, independently verifiable, and cannot be altered after betting begins.

Each Keno draw is generated using three values:

Server seed — generated by the server and committed before the draw by displaying its SHA-256 hash.

Client seed — your unique client seed.

Nonce — an incrementing value that ensures every draw generates a unique result.

Because you receive the hashed server seed before placing your bet, the server cannot change the outcome afterward without invalidating the previously displayed hash.

The Keno result is generated by using HMAC-SHA256 outputs to perform a Fisher-Yates selection. The process works as follows:

For each of the 10 drawn numbers, the system generates an HMAC value using:

HMAC_SHA256(serverSeed, clientSeed:nonce:i)

The first 8 characters of the HMAC output are converted into a number:

raw = parseInt(hmac[0..8], 16)

The generated value is used to select an index from the remaining number pool:

idx = raw % remaining_pool_size

The selected number is removed from the pool and added to the draw result.

This process is repeated 10 times to generate 10 unique numbers from 1–40 using a Fisher-Yates shuffle method.

After the server seed is revealed (when the seed pair is rotated), you can verify previous Keno draws by comparing the revealed server seed with the previously displayed hash and repeating the calculation using your client seed and nonce.

This system ensures that every Keno draw is random, transparent, and cannot be manipulated by either the player or the casino after the server seed has been committed.

Did this answer your question?