Draw Verification
Test Comp 1
Draw Result
- Winner
- Winner, Derbyshire
- Winning ticket
- #190
- Entries in pool
- 4 (all entrants)
- Winner index
- 0 (0-based)
- Draw executed
- 9 Aug 2026, 10:57 AM
- Entropy source
- secrets.SystemRandom (instant-win positions at setup)
- Fairness mechanism
- SHA-256 commit-reveal — selection by sha256(draw_secret:pool_hash:counter) with rejection sampling
How This Result Was Produced
4 steps, each one checkable against the values published below. Nothing here depends on trusting us — every input is shown.
Verify commitment was published before the draw
This sha256 hash was published when the competition was created. It proves the draw_secret could not have been changed after tickets were sold.
faeed53642a8aa2cadd2bb7bbdf29d4065597469a5bf7e56bf584dc22378933f
Verify draw_secret matches commitment_hash
The draw_secret is revealed below. sha256(draw_secret) is shown — it must equal the commitment_hash in step 1.
draw_secret (input)
08997c18f23dd2633e845b850c861f9c9cd2fa1b53c188b9ab58e3e5c46964a3
sha256(draw_secret) must equal step 1
faeed53642a8aa2cadd2bb7bbdf29d4065597469a5bf7e56bf584dc22378933f
Verify the entry pool hash
sha256 of every ticket number in the draw pool, in ascending numeric order, joined with commas and no spaces. Instant-win tickets in this competition were settled at purchase and are not part of the main draw pool.
2edfc17f6170a62dcd2cb3290402d12815ec7a66edfa737f834138362d7cf22b
Reproduce the winner selection (rejection sampling)
Starting at counter=0, compute sha256(draw_secret:pool_hash:counter) as a 256-bit integer. Let limit be the largest multiple of N below 2^256. If the value is >= limit, increment counter and retry. Otherwise winner_index = value mod N.
counter=0, winner_index=0
Check It Yourself
Run every check in your own browser. It recomputes the hashes and the winner selection locally from the values published on this page — nothing is sent to our servers, so a pass cannot depend on trusting us.
- Confirm sha256(draw_secret) equals the commitment hash in step 1.
-
Confirm the sha256 of the entry pool below equals the pool hash in step 3. Hash the text
exactly as shown — ticket numbers in ascending numeric order, separated by commas, with no
spaces and no trailing newline.
Entry pool — ticket numbers in ascending numeric order
190,287,325,548 -
Run the pre-filled command below to reproduce the rejection-sampling winner index
(counter=?, expected
winner_index=0).
python3 - <<'PY' import hashlib draw_secret = '08997c18f23dd2633e845b850c861f9c9cd2fa1b53c188b9ab58e3e5c46964a3' pool_hash = '2edfc17f6170a62dcd2cb3290402d12815ec7a66edfa737f834138362d7cf22b' total_entries = 4 counter = 0 limit = (1 << 256) - ((1 << 256) % total_entries) while True: seed = hashlib.sha256(f'{draw_secret}:{pool_hash}:{counter}'.encode()).digest() candidate = int.from_bytes(seed[:32], 'big') if candidate < limit: print(f'counter={counter} winner_index={candidate % total_entries}') break counter += 1 PY
Full Entry List
All sold tickets with entry method and optional-question answer status (no personal names). Download it to cross-reference ticket numbers against the draw pool; the "In Main Draw" column marks which rows formed it. Instant-win tickets in this competition appear here too — they were settled at purchase and are not part of the main draw pool.
Download entry list CSV