Back to raffle Cryptographic proof

Verify results

DiceyCast Wooden Coaster Giveaway 2

This raffle uses a commit-reveal random selection process. A secret seed was locked in when the raffle was created — before anyone entered — by publishing its SHA-256 fingerprint (the commitment). Because the seed was fixed before any entrant existed and the final draw seed also depends on the full entrant pool, the organizer cannot have chosen a seed that favors a particular entrant. The checks below run entirely in your browser.

Seed commitment

Published when the raffle was created, before entries opened. The revealed seed for each draw below must hash to exactly this value.

ff24aa0b80b5d44b59254f28008654bb40b58e75dcabd95691112753cea7ea8a

How it works

  1. 1 At creation, a secret server seed is generated and its SHA-256 commitment is published (above). The seed itself stays hidden until the draw.
  2. 2 At draw time the seed is revealed and combined with the full entrant pool to derive the draw seed: SHA256(server_seed + "|" + snapshot).
  3. 3 Each entrant gets virtual "slots" equal to their entry count, and the draw seed deterministically selects the winning slots.
  4. 4 Anyone can confirm the revealed seed matches the commitment and replay the selection to reproduce the same winners.
commitment = SHA256(server_seed)              // published before entries opened
snapshot   = "id:count,id:count,..."          // eligible entrants, sorted by id
draw_seed  = SHA256(server_seed + "|" + snapshot)
slots = expand entrants to slot pool based on entries_count
for N = 0, 1, 2... until all winners picked:
    // rejection sampling: redraw instead of biasing low slots
    for attempt = 0, 1, 2...:
        value = parseInt(SHA256(draw_seed + ":" + N + ":" + attempt).substring(0, 8), 16)
        if value < 2^32 - (2^32 mod slots.length): break
    index = value mod slots.length
    winner (position N+1) = entrant owning slot[index]
    slots.removeAll(winner's slots)

Draw details

Oct 11, 2026 at 1:14 AM

Winners selected (1)

Zombwaymanager
Verifying in your browser… Verified — results are authentic Verification failed

Revealed server seed

1a63e38e2dcc593e4b050caf6920863b2b247b49424f76076d8c0a5408b17a0f

Derived draw seed

f989e2886fef0072b9173f3e9398e3117a9657b5159dead7a34dfcd368425ed8

Eligible entrants (40 entrants, 40 total slots)

[#2406(1), #2407(1), #2408(1), #2409(1), #2411(1), ...]
Entrant #2406: 1 entry
Entrant #2407: 1 entry
Entrant #2408: 1 entry
Entrant #2409: 1 entry
Entrant #2411: 1 entry
Entrant #2412: 1 entry
Entrant #2413: 1 entry
Entrant #2415: 1 entry
Entrant #2416: 1 entry
Entrant #2417: 1 entry
Entrant #2419: 1 entry
Entrant #2420: 1 entry
Entrant #2421: 1 entry
Entrant #2422: 1 entry
Entrant #2423: 1 entry
Entrant #2424: 1 entry
Entrant #2425: 1 entry
Entrant #2426: 1 entry
Entrant #2427: 1 entry
Entrant #2428: 1 entry
Entrant #2429: 1 entry
Entrant #2430: 1 entry
Entrant #2432: 1 entry
Entrant #2433: 1 entry
Entrant #2434: 1 entry
Entrant #2435: 1 entry
Entrant #2436: 1 entry
Entrant #2437: 1 entry
Entrant #2439: 1 entry
Entrant #2441: 1 entry
Entrant #2442: 1 entry
Entrant #2443: 1 entry
Entrant #2444: 1 entry
Entrant #2445: 1 entry
Entrant #2447: 1 entry
Entrant #2448: 1 entry
Entrant #2450: 1 entry
Entrant #2453: 1 entry
Entrant #2454: 1 entry
Entrant #2455: 1 entry