Provably fair
Not a promise that we behaved. A method that would show it if we had not.
The problem with "we drew it fairly"
Every operator says the draw was fair. Most publish a winner and a photograph. Neither tells you anything: the number could have been chosen after seeing who held which ticket, the entry list could have been edited afterwards, and a video only shows somebody reading a number out. None of it can be checked. Draw Engine exists to replace all three with things that can.
Four things, in this order
The order is not presentation. Each step is worth something only because it happened before the next one existed.
-
Before entries open
The randomness is named in advance
We publish which future drand round will decide the competition — a specific round number, on a public schedule, that has not happened yet. The number it will produce does not exist and cannot be predicted by anyone, including us.
Naming it afterwards would let an operator shop for a round that suited them. That is why it is fixed first and recorded where it cannot be quietly changed.
-
While entries are open
Every ticket is published as it is issued
The entry list is public and searchable while the competition is still running, so you can confirm your own ticket is in it before the draw rather than after.
This is the one check the mathematics cannot do for you. Cryptography can prove a list was fixed before the randomness existed; only the people in it can prove it was complete.
-
At close
The list is sealed by somebody else
The full list is fingerprinted with SHA-256, and that fingerprint is timestamped by an independent authority under RFC 3161. The timestamp proves the list existed in exactly that form at that moment — and the moment is before the winning number exists.
Change one character of one entry afterwards and the fingerprint no longer matches. There is no way to edit the list and keep the seal, because we did not issue the seal.
-
The draw
The winner is computed, not chosen
When the named round arrives, its randomness is combined with the list's fingerprint to seed a deterministic selection. Same list plus same randomness always produces the same winner — which means anybody can run it again and get our answer, or fail to.
There is no reroll. If a draw cannot complete to this standard the competition is held and escalated; it is never rerun against different randomness. A system that recovers from a missed deadline by picking new randomness is indistinguishable, from outside, from one that waited to see the numbers.
What each piece would catch
| If an operator tried to… | It would fail because |
|---|---|
| Pick the winner after seeing the entries | The randomness comes from a round nobody controls, fixed before entries opened |
| Remove a losing entry after the draw | The list no longer matches its externally timestamped fingerprint |
| Add a winning entry after the draw | Same — and the entry was never in the published live list either |
| Redraw until a favourable number came up | Every candidate attempt is published in the receipt, in order |
| Steer an instant-win ticket to a particular person | The prize map is committed before the competition opens and revealed after |
| Quietly delete an inconvenient draw | It is published to a ledger hosted outside the operator's infrastructure |
What this does not prove
Cryptography proves the entry list was fixed before the randomness existed and has not changed since. It cannot prove every entry reached the list in the first place — that is a claim about the operator's plumbing, not about mathematics.
Which is exactly why the list is published live, searchable, while the competition is open. Check your own ticket before the draw. It takes ten seconds and it closes the one gap the rest of this cannot.
Check one now
Pick a completed draw and recompute it. Your browser fetches the randomness from drand's own servers — not from us — re-hashes the entry list and works out the winner independently. There is a published draw of every type waiting to be checked.