Every pack result is decided by a formula whose inputs are all published. You can recompute your own draw and confirm we could not have chosen it.
We generate a secret seed and immediately publish SHA-256 of that seed. The seed itself stays hidden. The published hash is a commitment we cannot wriggle out of: change the seed later and the hash stops matching.
At the same moment we name a future round of drand, a public randomness beacon run by the League of Entropy. It emits a signed value every 30 seconds on a fixed schedule, and nobody can predict it. Because we commit our seed before that round exists, we cannot pick a seed that produces a result we like.
When your order completes, your prize is computed from our seed, that drand signature, and your own order reference. Nothing else. The same three inputs always give the same prize.
Once an epoch closes we reveal its seed. Anyone can check it against the hash we published in step 1, pull that drand round themselves, and recompute every draw the epoch produced.
h = HMAC_SHA256(key = seed + ":" + drand_signature, message = order_ref)
x = int(h[0:13], 16) / 2**52 # a number in [0, 1)
point = x * (sum of all weights)
walk the weight table in the published order; the first prize whose
running total exceeds `point` is the one you won.
13 hex characters is 52 bits, which a float64 holds exactly, so the division gives the identical result in any language. Here it is in Python:
import hmac, hashlib
h = hmac.new((seed + ":" + sig).encode(), ref.encode(), hashlib.sha256).hexdigest()
x = int(h[:13], 16) / 2**52
point, acc = x * TOTAL_WEIGHT, 0
for name, weight in WEIGHTS:
acc += weight
if point < acc:
print(name); break
| Prize | Tier | Weight | Odds |
|---|---|---|---|
| Ten Percent | Standard | 480 | 48.00% |
| Twenty Percent | Standard | 300 | 30.00% |
| Thirty-Five | Rare | 150 | 15.00% |
| Half Off | Rare | 55 | 5.50% |
| Seventy-Five | Vault | 13 | 1.30% |
| Free Evaluation | Vault | 2 | 0.20% |
| Total weight | 1000 | 100% | |
Being straight about the edges is the only way the rest of this page means anything.
| # | Status | Commitment SHA-256 | drand round | Draws | Seed |
|---|---|---|---|---|---|
| 2 | live | 6460599ffa19a001f3cb9b2afb567224… | 6386800 | 0 | held |
| 1 | revealed | c74bc5d712df2f324fb3fde48c02f172… | 6383918 | 0 | ef379dbaeb5c05d2e6e26a890a200afd… |
Beacon: drand chain 8990e7a9aaed2ffed73dbd7092123d6f… · 30 second rounds. Fetch any round yourself at api.drand.sh/public/<round>.