Now shippingDolvero Supply · Volume 01Made to order, dispatched within five working daysFree shipping over £150A sealed pack with every order Now shippingDolvero Supply · Volume 01Made to order, dispatched within five working daysFree shipping over £150A sealed pack with every order Now shippingDolvero Supply · Volume 01Made to order, dispatched within five working daysFree shipping over £150A sealed pack with every order Now shippingDolvero Supply · Volume 01Made to order, dispatched within five working daysFree shipping over £150A sealed pack with every order
Sign in
Supply Packs

You do not have to
take our word for it.

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.

01

We commit before we can know anything

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.

02

We bind ourselves to a coin-flip we do not control

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.

03

Your prize is a function of both, plus your order

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.

04

Then we publish the seed

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.

The exact computation

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

The weight table

PrizeTierWeightOdds
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 weight1000100%

What this does not prove

Being straight about the edges is the only way the rest of this page means anything.

Check your own pack

Every epoch

#StatusCommitment SHA-256 drand roundDrawsSeed
62 live 2134129f847e2f8074441a77300c309d… 6559990 0 held
61 revealed 301fbecb5a23f021260c0dcb61faebd5… 6557110 0 e4b7440d89eb6ee291cb4c356a623d13…
60 revealed 47d4f910d969e77cf6a5ea0d7f99ff57… 6554230 0 f36dc9f98e505a912e042c0ff2c4b512…
59 revealed fbe0f30880970d2ea33462377d43430e… 6551350 0 d50ec7a2acaeffe97e1572e299251a34…
58 revealed bdec66bc36e9c9758d596114b2254e2c… 6548470 0 0eb173e9388915bfffce032cd07830af…
57 revealed 61a5a0444bacb7fe6b138e8cef52ee5f… 6545590 0 41ed085b3b569eb5903a4a8839211b9d…
56 revealed 61e9a9bb91c90152bedda024a4d4e10e… 6542710 0 c2e254c39627e1ebf4a2e77a02f2f2f0…
55 revealed 6946114a216ea6b59603fb6dd6ee6035… 6539820 0 3192844e4d2cc45e3b03dabbd88d2319…
54 revealed 79ba730a8809ff256f70565cf4bba308… 6536930 0 1e2c7669509c931f04fa3f0d904dd827…
53 revealed 420aaa4c7ef644cee5b8c81745619ca9… 6534040 0 f596542fdf21bbc88a18f227c92605f8…
52 revealed da42d8f8b5cd16d5c20083913f345e49… 6531160 0 15653214b407e552fb2bb2eef8f9972b…
51 revealed 0dde0669d9072f20989753d068f88a6c… 6528270 0 a0f1cac353985e91fc68e15626e366a7…
50 revealed 599df0736bc351f1e1e117aa78b2195a… 6525380 0 98fa8a414ca07a81ab01f01aa11adada…
49 revealed ecac36ee1b4e1933534a36d7513ab896… 6522490 0 7bc0b085a150f7b2d0277188fe45ea83…
48 revealed bdea5cde52081535ea8bd4d796873bfe… 6519600 0 68054da98b528a85304522f9c8212cd3…
47 revealed 3a8ee07c21978a5457ed720e497ad926… 6516720 0 e426fb5494c2f27cf8c7717a34f25506…
46 revealed 1375330988467e56d4d58e4ccfa80d50… 6513830 0 f45a2d5a84aed9016b81c89b8223d044…
45 revealed b165ce26bdf12d96ddb866ca6f6a282d… 6510950 0 0c7686696c99c2bdbbd0713ec4866f96…
44 revealed 1b3110cfe77f444f48ebc801cb5684e6… 6508060 0 fb2ff07df18d879ff130675b5e027aa0…
43 revealed 2281d1f53288fdb6a7feafaf3e710dd4… 6505170 0 b52e79cf3448b6f70d31c4ccfbf14463…
42 revealed 37440907fb5402661b0cc050be01a091… 6502290 0 fbf7197a6baeb3d48b5b5c208fb6b078…
41 revealed 3f6ec2e248ef38a86964faf11d5b0381… 6499410 0 5ef2b4e93ec4ae81e75ad3d3387cfa9e…
40 revealed 1ec9043b911182fde17b9c9b190bc0ae… 6496520 0 433d4ec1f5a4ebe6095233418cfa8036…
39 revealed 77edc6b75d1dfc57b03b3534a4dd37c7… 6493630 0 4a87a2c59fa8d9629b42d3d66c7ce5ff…
38 revealed c01320c48055df22f92cdb3f0a01b850… 6490740 0 0ea3c885788df071e7e5f72e47db9e0c…

Beacon: drand chain 8990e7a9aaed2ffed73dbd7092123d6f… · 30 second rounds. Fetch any round yourself at api.drand.sh/public/<round>.