Why we don't livestream our draws
We don't livestream draws because we chose a method that can be checked after the event, not just watched. Every Grand Draws competition is drawn automatically at 9pm on its closing date using a commit-reveal draw. Before entries close we publish a SHA-256 commitment to a secret seed and name a future round of the drand public randomness beacon. After the draw we reveal the seed. With those published values, anyone can recompute the winning ticket at /draw-check, today or years from now, and get the same answer.
A design choice, not a gap
Livestreamed draws are a familiar format, and plenty of people enjoy them. We took a different route because of what we wanted a draw record to do: stay checkable by anyone, indefinitely, from published data.
A video is a record of what happened in front of the camera at the time. A commit-reveal draw is a record you can re-run. We think the second is the more useful promise for us to make, so it's the one we built.
What happens instead, step by step
Five steps, from before entries close to long after the winner is paid:
- Commit. Before entries close, we generate a secret random seed and publish its SHA-256 hash, the commitment. A hash works like a fingerprint: if the seed changed afterwards, the fingerprint would no longer match.
- Name a future beacon round. At the same time we name a round of the drand beacon that will only be produced after entries close. drand is run by the League of Entropy, a group of independent organisations, and publishes a new random value every 30 seconds. Nobody can know a future round's value in advance, us included.
- Draw. The draw runs automatically at 9pm on the closing date, using the named round. The seed and the beacon value are combined with HMAC-SHA256 and reduced to a ticket number between 1 and the number of qualifying entries. Where a competition has more than one winner, each further ticket is drawn the same way from the tickets not yet drawn.
- Reveal. We publish the seed alongside the result, the beacon round and the entry count.
- Recompute. Anyone can put those values into /draw-check, confirm the seed matches the commitment, fetch the beacon round from drand, and land on the same winning ticket. The page shows a worked example.
Why the result can't be steered
The commitment locks our seed in before the beacon value exists. The beacon supplies a value we can't predict or choose. Once both are set, the arithmetic leaves room for only one answer: change the seed and it no longer matches the commitment; use a different round and it no longer matches the one we named in advance.
That is a different kind of assurance from a video. It doesn't depend on who was watching at the time, which is why it suits an automatic draw: nobody needs to be in the room for the result to be checkable, because the result can be rebuilt from the published record.
What you can check, and when
Before entries close, the commitment and the named beacon round are published. After the draw, the seed, the beacon value, the entry count and the winning ticket number are published too.
Because drand keeps every past round available, a draw from years ago can be checked as easily as last night's. The check doesn't expire.
The standard we work to
The CAP Code requires prize draws to award prizes in accordance with the laws of chance, and allows a computer process that produces verifiably random results in place of an independent person. The Government's Voluntary Code of Good Practice for Prize Draw Operators likewise describes a computer process that produces verifiably random and auditable results.
Our draw is built to that description, and our statement on every competition is the same: winners are selected at random from all qualifying entries, in accordance with the laws of chance, using a verifiable random draw.
Sources
- drand: distributed randomness beacon (League of Entropy)
- drand documentation: Cryptography (how each round is produced and verified)
- FIPS 180-4: Secure Hash Standard, which specifies SHA-256 (NIST)
- RFC 2104: HMAC, keyed-hashing for message authentication (IETF)
- CAP Code, section 8: promotional marketing (ASA)
Checked against these sources on .
Common questions
Can I watch the draw happen?
No. Draws run automatically at 9pm on the closing date and are not streamed. The result, the revealed seed and the beacon details are published afterwards, so you can recompute the winner yourself at /draw-check.
Do I need technical knowledge to check a draw?
No. The draw checker does the maths in your browser. You paste in the published values, or follow the link from a result, and it tells you whether the seed matches the commitment and which ticket wins.
What stops you choosing a seed that favours someone?
When we publish the commitment, the beacon value that will be combined with the seed does not exist yet, so no seed can be chosen to produce a particular ticket. Once the round publishes, the seed cannot be changed without breaking the commitment.
Who runs the drand beacon?
The League of Entropy, a group of independent organisations including universities and technology companies. We are not part of it and cannot influence its output.