Verifiably Fair

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.

1

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.

2

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.

3

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.

4

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 sourceDrand Quicknet beacon (League of Entropy), 3-second rounds
Chain hash52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971
Schemebls-unchained-g1-rfc9380
Static saltaee874815cd18f485a56d43f49fab9d1
CombinationHMAC-SHA256("clientSeed:roundId:staticSalt:ticketsSold:maxTickets", key = serverSeed)
Number derivationUnsigned 32-bit little-endian reads, rejection sampling, winner = (value % maxTickets) + 1
Public relayshttps://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