Rules & fairness

Every rule below is deterministic and public. Nothing about the outcome depends on us after the raffle closes.

Minimum
$1
Max per payment
$500
Max per raffle
$2,000
Weight
Every whole US dollar (100 cents) of an eligible, confirmed contribution equals exactly 1 unit of raffle weight.
Cutoff
The raffle closes at 00:00:00 UTC. A payment is eligible only if the payment provider confirms its successful payment timestamp was strictly before the cutoff, even if the confirmation is delivered during the reconciliation window.
Reconciliation
A fixed reconciliation window follows the cutoff. Confirmations received after that window are never added to the closed raffle and are refunded.
Snapshot
At lock, eligible participants are sorted by immutable X user id (ascending, byte-wise) and assigned consecutive integer ranges [cumulative_start, cumulative_end] sized by their weight. The canonical JSON of [{x_user_id, weight}] is hashed with SHA-256.
Randomness
Randomness comes from the drand League of Entropy quicknet beacon. The round used is fixed and published before the raffle closes. The beacon's BLS signature is verified against the chain public key before use.
Winner
seed = SHA-256('outluckme-raffle-v1|' + raffle_id + '|' + snapshot_hash + '|' + randomness). A uniform integer in [0, total_weight - 1] is derived from the seed with rejection sampling (no modulo bias). The participant whose range contains that integer wins.
Prize conversion
The USD prize is converted to BTC using the BTC/USD reference price from the configured pricing provider at the official draw timestamp. The rate, provider and timestamp are stored and published.
Payout
Payouts are reviewed for fraud before an irreversible BTC transfer is made.

Eligibility & responsible use

Paid draws are regulated in many places. Availability may be restricted by jurisdiction and age, identity checks may be required before a payout, and accounts may be paused for review. Set limits for yourself and only play with money you can afford to lose. If it stops being fun, stop.