🏀 How do we know it's fair?

The short version: a random number from the U.S. government (NIST) decides everything. It gets published at a time we agree on before it exists, so nobody can pick or change it. Anyone can feed that same number into the same math and get the same picks. The sections below show you how.

← Back to the lottery

⏰ Official draw time

The draw time is fixed: Monday, October 12, 2026 at 8:00 PM Pacific Time, which is 2026-10-13T03:00:00Z (UTC) or 1791860400000 milliseconds. It is written into the page before the pulse exists, and the main button stays locked until then.

Confirm it yourself: open https://beacon.nist.gov/beacon/2.0/pulse/time/1791860400000. Check that the pulse's timeStamp is 2026-10-13T03:00:00.000Z (or the first pulse right after it), then copy its outputValue and compare it with the one in the Evidence section.

1. Rerun the draw

Easiest (browser): use the checker tool just below. Paste the beacon outputValue from the Evidence section, check the team order, and press Check the draw. It works offline and must give the same picks we posted.

About the Reveal button: on the main page the commissioner presses one big button to fetch the lucky number, then again for each pick, 6 down to 1. Hiding is only cosmetic: the result is fixed by the beacon value the moment it is fetched, and the checker or scripts show the same picks and steps any time.

Replay "like a livestream": anyone can open the replay link (it looks like index.html#replay=<outputValue>&t=<time>&order=<teams>) or press "Play official replay" on the lottery page. It counts down, then reveals pick 6 down to pick 1 with pauses, and has Replay and Skip buttons. It is not a video: your browser recomputes the whole draw from the seed each time, so what you watch is verified. The posted results.json also lists the picks, and the page flags any mismatch.

The show: the reveal is presented like a lottery night: intro card, a ping-pong-ball machine, drumroll, envelope, confetti and cheers, with a mute button and a calmer version if your device asks for reduced motion. All of this is decoration. The machine's balls and sounds do not affect anything. Picks come only from the seed, so the replay link shows the identical result.

Script (Node.js 16+): download verify.js, then run:

node verify.js <outputValue> "Mice,Fear the Turtle,OferHofer,Badboys,Geoducks,Elon's Musk"

Script (Python 3): download verify.py, then run:

python3 verify.py <outputValue> "Mice,Fear the Turtle,OferHofer,Badboys,Geoducks,Elon's Musk"

Teams are listed worst record first. The browser, Node and Python versions give identical results. Check the script wasn't swapped: its SHA-256 (sha256sum verify.js) must match the hash in Evidence.

Draw checker (browser)

Not run yet.

Pulse lookup address: https://beacon.nist.gov/beacon/2.0/pulse/time/<milliseconds> (NIST returns the pulse at or just after that time). The step log shows the odds pool, the random number and the pick for every step.

2. Why it's fair

Commissioner link

The commissioner can use a private link that pre-fills the group for the "Text this pick" buttons. It looks like index.html#to=+1XXXXXXXXXX,+1YYYYYYYYYY (numbers here are made-up placeholders). The numbers stay in that phone's browser only. They are never put in replay links or in the message text, and never sent to any server. Don't share the private link.

Commissioner code

The commissioner types a code to unlock the show buttons on the main page. It only stops other people from starting the show by accident. It has nothing to do with the result: the picks come only from the NIST lucky number, so they are identical with or without the code, and the replay link and official replay are open to everyone.

3. Evidence (posted after the draw)

Draw time agreedTBD
Beacon pulse linkTBD
Final pulse JSON
TBD
Result
TBD
SHA-256 of verify.jsTBD
Screen recordingTBD

John edits the TBD values in this file after the draw (or tells Grok Bot to).