Recent sealections
A sealection picks giveaway winners from chat. The server commits to a secret seed before anyone enters, the pool for every draw is published with the draw, and the seed is revealed when the round ends. Click a round to replay every draw in your browser.
How a draw is decided
For draw N the pool is every eligible chatter's Kick id, sorted, with earlier
winners removed (unless that round allowed repeat winners — the round page says so). The winner's position is
Random(seed).randrange(len(pool)) where
seed is the first 8 bytes of
HMAC-SHA256(server_seed, SHA256(client_seed_base + ":tb:chatterpicker-draw-N"))
and client_seed_base is the mixer salt plus the sorted ids of the
first draw's pool. Random is Python's Mersenne Twister, replayed
here bit for bit.
Slot wheel rounds pick from slot requests the same way, with slices: each
request holds one slice (active affiliates hold more, shown on the round page).
Spin N draws ticket = Random(seed).randrange(total slices) with the
label slotwheel-draw-N, and the request whose slices contain that
ticket, counting through the sorted pool, is picked.
Verify any sealection proof
Paste a proof JSON (from the round page's "copy proof JSON" button). Nothing leaves your browser.