How we guarantee fairness in every draw — distributed randomness, future-round commitment, HMAC-SHA256 and rejection sampling — and the public parameters used by every draw.
Verifiable Fairness
How we guarantee fairness in every draw — and how you can check it yourself.
Distributed Generation
The League of Entropy, a global network of independent organisations (including Cloudflare, EPFL and the University of Chile), generates randomness collectively using threshold cryptography. No single party — including us — can control or predict the output.
Public Beacon Commitment
When you click Generate, the draw is committed to a future Drand round whose randomness does not exist yet. The round number is shown immediately — before the result can be known by anyone on Earth.
Client Seed
We force the precise millisecond timestamp of your click as the Client Seed, combined with the beacon randomness and all draw parameters using HMAC-SHA256. The result is unique to your specific draw and cannot be pre-computed.
Public Verification
Rejection sampling converts the hash into a winning ticket with mathematically uniform probability (no modulo bias). Every input is revealed after the draw, and anyone can reproduce the result with open scripts — no trust in our servers required.
Public Parameters
These values are fixed, published, and included in every draw record:
| Randomness source | Drand Quicknet beacon (League of Entropy), 3-second rounds |
|---|---|
| Chain hash | 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971 |
| Scheme | bls-unchained-g1-rfc9380 |
| Static salt | aee874815cd18f485a56d43f49fab9d1 |
| Combination | HMAC-SHA256("clientSeed:roundId:staticSalt:ticketsSold:maxTickets", key = serverSeed) |
| Number derivation | Unsigned 32-bit little-endian reads, rejection sampling, winner = (value % maxTickets) + 1 |
| Public relays | https://drand.cloudflare.com · https://api.drand.sh · https://api2.drand.sh · https://api3.drand.sh |
Built on Industry Standards
HMAC-SHA256 — an industry-standard keyed hash used by financial institutions worldwide. Rejection sampling — eliminates modulo bias so every ticket has exactly the same probability. User-verifiable — simple JavaScript and PHP scripts let anyone reproduce any result independently. No proprietary black boxes.
Tamper-Evident Ledger
Every completed draw record is hashed with SHA-256 and chained to the previous record. Changing or removing any historical draw breaks the chain and is immediately detectable. The ledger is mirrored publicly at https://github.com/the-rng/ledger. Source code: https://github.com/the-rng/plugin.
Learn more: League of Entropy · drand.love