VFW Nevada 50/50 Raffle Log in Buy tickets
DEMO draw — for testing only

Verify: BPG chase the ace grw3tz — BPG chase the ace grw3tz — round 52

Conducted by BPG Test Dept NV grw3tz · drawn Nov 3, 2026 10:02 AM PST

Winning ticket
#103
of 2 eligible tickets · prize $2.00
  • ✓ The ticket list below matches the fingerprint frozen when sales closed (after payments were reconciled)
  • ✓ The revealed secret matches the fingerprint published before sales opened
  • ✓ Recomputing the drawing gives the same winning ticket
DrawingDRW-001648
Eligible tickets (M)2
Eligible set fingerprintc702b4e79d9bda13ca565de2e74dadae141e1d2a9080f01d48d8910c6286c4b6
Sales closed2026-11-03 18:02:38 UTC
MethodGBC-RNG-v1 · NONE — demo stand-in for a lab-certified RNG service (test draws only)
Published fingerprint96d40223a31d1b81e9f7f5f6dd496687b701854c016018e74f030c0eb5ae10cb
Revealed secret333652345f7885f9d4b09061f14d8aa8ea0b85c2ad3ecef32dc99ff4a1afa911
RNG serviceDEMO_CERTIFIED_RNG
RNG output11e3b99484ce9866cd09a9e59f97c093210fe2bf2ab847d9a99d469d2cd1a36f
RNG receipt07a972c752d4c032431ca29bfd3c386644cf230319b5788bb48d5ef99da95885
Check it yourself (Python 3)
import hashlib, hmac
seed = bytes.fromhex("333652345f7885f9d4b09061f14d8aa8ea0b85c2ad3ecef32dc99ff4a1afa911")
assert hashlib.sha256(seed).hexdigest() == "96d40223a31d1b81e9f7f5f6dd496687b701854c016018e74f030c0eb5ae10cb"
ref = "DRW-001648"
# Eligible ticket numbers frozen after sales closed and payments were reconciled
ranges = [(103, 104)]
setHash = hashlib.sha256("\n".join(f"{a}-{b}" for a, b in ranges).encode()).hexdigest()
assert setHash == "c702b4e79d9bda13ca565de2e74dadae141e1d2a9080f01d48d8910c6286c4b6"
m = sum(b - a + 1 for a, b in ranges)
randomness = "11e3b99484ce9866cd09a9e59f97c093210fe2bf2ab847d9a99d469d2cd1a36f"  # the RNG service output above
limit = ((1 << 48) // m) * m
used = set()
for rank in range(1, 1 + 1):   # selection 1, then alternates / further prizes
    c = 0
    while True:
        part = f"{rank}|" if rank > 1 else ""
        msg = f"GBC-RNG-v1|{ref}|{m}|{setHash}|{randomness}|{part}{c}".encode()
        v = int.from_bytes(hmac.new(seed, msg, hashlib.sha256).digest()[:6], "big")
        c += 1
        if v >= limit or (v % m + 1) in used:
            continue
        k = v % m + 1
        used.add(k)
        break
    for a, b in ranges:
        if k <= b - a + 1:
            print("selection", rank, "ticket", a + k - 1)
            break
        k -= b - a + 1
# (a prize raffle with "one prize per person" also skips a buyer's other tickets — the server applies that rule from the frozen data)

Contact us

What is it about?

Never include card numbers. We reply by email, usually within one business day.