KoKiYo
FairnessBecome a host

How fairness works

Every result on KoKiYo is decided by two things nobody controls alone. You can re-check any round yourself.

1. A seed committed in advance

Each game has a hash chain of one million seeds: x₁₀₀₀₀₀₀ is random, and every earlier seed is the SHA-256 of the next one. The first value x₀ is published before any round. Round j uses xⱼ and reveals it after settling; anyone can hash it j times and arrive at x₀. Past seeds don't reveal future ones.

2. Public randomness that arrives later

When a round locks, it uses the next drand quicknet beacon — randomness produced by an independent network every 3 seconds, signed with BLS. The beacon doesn't exist yet when entries close, so the result can't be chosen.

chain hash 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971
public key 83cf0f2896adee7eb8b5f01fcad3912212c437e0073e911fb90022d3e760183c8c4b450b6a0a6c3ac6a5776a2d1064510d1fec758c921cc22b0e17e63aaf4bcb5ed66304de9cf809bd274ca73bab4af5a6e9c76a4bc09e76eae8991ef5ece45a
About drand

3. One formula for every game

value = HMAC-SHA256(seed, randomness : instance : round : entries root : label), then the first 52 bits as a number between 0 and 1. Every entry gets a receipt — a fingerprint of round, seat, player, ticket, choice and time — the moment it's accepted. When the round locks, all receipts combine into the entries root, so every entry takes part in the draw and nobody can be added or removed afterwards.

u = HMAC_SHA256(x_j, randomness ∥ ":" ∥ instance_id ∥ ":" ∥ seq ∥ ":" ∥ entries_root ∥ ":" ∥ label)[0..52] ÷ 2^52

Coin Flip: heads below 0.5. Double: each seat's value ranks the seats. Crash: stop point = 0.97 ÷ (1 − value), two decimals; below 1.01 shows as 1.00. Dice: each die = floor(value × 6) + 1. Wheel: colour = floor(value × 4). Plinko: each of 7 rows bounces right when the value is 0.5 or more. Mines: the 5 mines, who goes first and a turn's random reveal are each picked from the remaining choices with floor(value × count).

4. Verify a round

Open any round's details and press Verify. Your browser checks the hash chain, the drand signature and recomputes the result — nothing is sent to us.

© KoKiYoFairnessBecome a hostPlayers and hosts must follow the laws where they live.