Provably fair
How you can prove we didn't cheat
The blast point of every round is decided before either player acts and published as a hash. Once the round starts, nothing — not us, not your opponent — can change it. After the round the seed behind that hash is revealed and anyone can recompute the result.
A real round, checked
Every value below is published. Recompute them and you get the same answer. This is a live round, not an illustration.
chain 3ea188595c9e41c0 · index 1
1 · Committed before the round
87a1ced498db265b07a34da90df08d088a74ee429dc2a041aef50c8cef827c94
SHA-256 of the revealed seed equals the hash published beforehand. That is the whole guarantee: the seed could not have been chosen after seeing how the round was going.
2 · Revealed after the round
53c095ce747f1b473b564bbf66df4be4e069d93f10405f6ed11f03e4e973af41
3 · Your seed went in too
player-m35kue · nonce 41
Your own seed and the round counter go into the derivation, so the outcome is not something the server picks alone.
4 · The blast point
4.77° Verified
Where blast points land
Not uniform. Most rounds are short and a few run very long. These are computed from the formula, not sampled from history.
- Median
- 3.75°
- Mean
- 7.21°
- Minimum possible
- 2.80°
- Reach the 100° cap
- 0.97%
Two schemes, and which one your round used
Blinko runs two provably-fair schemes and you can meet either. Check your round against the right one — they hash different things, and using the wrong one will make an honest round look wrong.
Hash chain — solo and LIVE rounds
Seeds are generated as a chain in advance, each one hashing to the entry before it. Your round takes one seed, your client seed and a nonce. SHA-256 is taken over the seed’s hex text.
commit = SHA-256(hex text of serverSeed)
digest = HMAC-SHA-256(serverSeed, "clientSeed:nonce")
u = first 52 bits of digest / 2^52
B = 2.80 + 0.95 / (1 − u) − 0.95, capped at 100Fairness v3 — PvP duels
Both players contribute a seed, and the blast point and first holder are derived under separate HMAC domains so neither reveals the other. SHA-256 is taken over the raw 32 seed bytes.
commit = SHA-256(raw 32-byte serverSeed)
entropy = SHA-256("blinko.fairness.v3" || 0x00 || … || hostSeed || guestSeed)
blast = HMAC-SHA-256(serverSeed, "blinko.explosion.v3" || 0x00 || entropy)
holder = HMAC-SHA-256(serverSeed, "blinko.holder.v3" || 0x00 || entropy)What this proof does not cover
It proves the blast point was honest. It says nothing about network latency: if your connection is slower than your opponent’s, a fair blast point does not make the duel even. That is a separate problem and it is handled separately, by measuring the lockout on server time so both players get the same window.