Automatic & Live Draws Free postal entry — equal chance Provably fair · 18+ · Great Britain only
Open Verification

Draw Verification

Test Comp 1

Provably fair — cryptographic Draw complete

Draw complete — independently verifiable

This draw used a cryptographic commitment scheme. The draw secret was generated before ticket sales began, its sha256 hash (the commitment hash) was published, and the secret was only revealed after the draw. This proves the winner selection could not have been influenced by ticket sales.

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.

  1. Confirm sha256(draw_secret) equals the commitment hash in step 1.
  2. 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
  3. 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