
Hash first, seed after — anyone can recompute it.
Before each round we generate a server seed and publish its SHA-256 hash. The result is derived from HMAC-SHA256(server seed, client seed:round), so it is fixed before a single bet is placed. Once the round settles the server seed is revealed and anyone can recompute it here to check that both the hash and the result line up. The client seed is yours — that is what stops an operator grinding seeds for a result it likes.
Round
20260528000123Server seed hash
Generating…The seed itself is only revealed once this round ends.
A new seed applies from the NEXT round — this round's hash is already published, so changing it now cannot affect this result.
This device has no settled round with a revealed seed yet — come back after this round draws and you can load it in one tap. You can also paste any round's seed by hand.
Message to sign::round
# any machine with node can recompute this
node -e '
const c = require("crypto");
const serverSeed = "<server seed>";
const clientSeed = "<client seed>";
const round = "<round>";
const digest = c.createHmac("sha256", serverSeed)
.update(clientSeed + ":" + round).digest("hex");
const pool = [1,2,3,4,5,6,7,8,9], out = [];
for (let i = 0; i < 6; i++)
out.push(pool.splice(parseInt(digest.slice(i*4, i*4+4), 16) % pool.length, 1)[0]);
console.log("hash ", c.createHash("sha256").update(serverSeed).digest("hex"));
console.log("result", out.join(" "));
'