← Back to KICKDRAW KICKDRAW

PROVABLY FAIR

Every tournament challenge is fixed before entries open, and you don't have to take our word for it. We publish a fingerprint of each round's seed in advance. When the round closes we release the seed itself. If the two don't match, we changed something — and anyone can catch it.

HOW IT WORKS

serverSeed  = HMAC-SHA256(secret, roundId)          ← kept secret until close
commitment  = SHA-256(serverSeed)                   ← PUBLISHED IN ADVANCE
gameSeed    = HMAC-SHA256(serverSeed, roundId + ":" + gameId)

The commitment is published before a round opens. It is a one-way hash, so it reveals nothing about the seed — but once the seed is released, only the original seed can produce that commitment. We cannot swap it afterwards.

Archive the commitment yourself. A commitment we show you after a round has finished proves nothing. Record it before you enter — that is what makes the reveal binding. Upcoming commitments are listed below and available at /api/round?upcoming=10.

VERIFY A ROUND

This page checks in your browser using the Web Crypto API — the maths runs on your machine, not ours. View source if you want to read it.

UPCOMING COMMITMENTS

Published ahead of time. Save these before you play.

Loading…

WHAT THIS DOES AND DOESN'T COVER

Covered: the challenge content for a round was fixed before entries opened and was not altered afterwards. Every entrant faced the same challenge.

Not covered: scoring and ranking still run in the browser. Those are being moved server-side. Until that lands, this page proves the challenge was honest, not that every submitted score was.

We would rather say that plainly than let a fairness page imply more than it delivers.