Every draft is provably fair.
The server cannot pick a winner and cannot bias the randomness. Here is how, and how to check it yourself with nothing but a hash function.
How a winner is chosen
- 1. Commit. Before a round closes the server generates a secret seed and publishes only its SHA-256 hash. That hash is the commitment, and it is on record before anyone knows the outcome.
- 2. Snapshot. When the clock hits zero, every wallet's balance becomes its draft weight. Liquidity vaults, the pack wallet, and any wallet holding more than 6% of the eligible supply are removed from the draw.
- 3. Public entropy. The blockhash of the first confirmed Solana slot at or after the close is the second input. Nobody running this site produces blocks, so nobody can steer it.
- 4. Draw. The draw number is
SHA-256(seed + ":" + blockhash)read as an integer, modulo the total weight. Wallets are laid end to end in the snapshot order; the wallet whose segment contains that number wins. - 5. Reveal. The seed is published with the result. Hash it: it matches the commitment. Recompute step 4: it lands on the same wallet.
Verify a draft yourself
Take any draw from /api/fairness and run:
const { createHash } = require("crypto");
const d = /* one entry from /api/fairness */;
const sha = (s) => createHash("sha256").update(s).digest("hex");
console.log(sha(d.seed) === d.commitment); // 1. the seed matches the published commitment
const r = BigInt("0x" + sha(d.seed + ":" + d.blockhash)); // 2. the draw number
let cursor = r % BigInt(d.totalWeightRaw);
let winner;
for (const h of d.snapshot) { // 3. walk the snapshot
if (cursor < BigInt(h.weightRaw)) { winner = h.owner; break; }
cursor -= BigInt(h.weightRaw);
}
console.log(winner === d.winner); // 4. same wallet the site announcedThe blockhash for a slot can be checked on any Solana explorer. The snapshot hash lets you confirm the holder list was not edited after the fact.
Live commitments
Round 2761 · committed 7:39:57 PM
73415afb696eb8c4fc431641235e9add7451b414c899ec526e1200f96fa8921eRound 2762 · committed 8:04:57 PM
df21dbb8a04f6a91afe47cac38eb7f7b7d36ff2646adaa86a89ab7629f94e060Latest draw, fully revealed
Replay draft 2761 ↗ — the exact spin, the cards, and a one-click check that recomputes this proof in your browser.
- Winner
7sXpmvN7A5LYGhHZik9CoyQCv44FqBzMd7FRiLWzmVjR- Commitment
73415afb696eb8c4fc431641235e9add7451b414c899ec526e1200f96fa8921e- Seed
13756ee5a6273fb8bd83c479333052a30fcbc1890db965fad7152197a140e838- Slot
467042673- Blockhash
EFkw4ZTMQXMpJX7MySDu2patEtpUpuWbnrnz1K5YNgYy- Draw number
044baf888358fae13f462c2df591a825d981ee65fc65b5933152b6728e6d1768- Total weight
43038512840982- Snapshot hash
6f66ac6f9cfa9ba318561e92cbc83af48c45743358fd58307717cab13d9d924f- Wallets in snapshot
89
Recent drafts
7sXp…mVjR · slot 467042673 · 11/8/2026, 8:04:58 PMReplay ↗
seed
13756ee5a6273fb8…commitment73415afb696eb8c4…22sp…My1z · slot 467035675 · 11/8/2026, 7:39:58 PMReplay ↗
seed
196079857a595fb2…commitmentf26f4fcdf31fbe8e…6nmz…Rm4t · slot 467028704 · 11/8/2026, 7:14:58 PMReplay ↗
seed
8d5ea3d408f3c7b8…commitment3289856b2e4de1e0…51ye…VBqa · slot 467021723 · 11/8/2026, 6:49:58 PMReplay ↗
seed
859adebe4169179e…commitmentbf8ff97a5ad901cf…7sXp…mVjR · slot 467014739 · 11/8/2026, 6:24:58 PMReplay ↗
seed
d643f19b59bd3445…commitmentacaa2854db312b61…7Dv2…UjYW · slot 467007764 · 11/8/2026, 5:59:58 PMReplay ↗
seed
f90acee68793f5b3…commitmentc7b66eb6b3114609…7Dv2…UjYW · slot 467000778 · 11/8/2026, 5:34:58 PMReplay ↗
seed
e70f57cb7e1b6347…commitment3808a3e80adfb199…yMBR…HAv1 · slot 466993782 · 11/8/2026, 5:09:58 PMReplay ↗
seed
935cdd665a3e59ee…commitmentba29c1c329c3c3c9…Vod7…9AcT · slot 466986829 · 11/8/2026, 4:44:58 PMReplay ↗
seed
cbbaaeecadba2043…commitmentc29ef8addf57e230…7sXp…mVjR · slot 466979839 · 11/8/2026, 4:19:58 PMReplay ↗
seed
7a5d50bbfce2aa97…commitment769520dbe6b9f125…7Dv2…UjYW · slot 466972878 · 11/8/2026, 3:54:58 PMReplay ↗
seed
fbfe01b590318efb…commitmente87d268647b45a0b…7Dv2…UjYW · slot 466965884 · 11/8/2026, 3:29:58 PMReplay ↗
seed
5fb3dae3d3ee7a64…commitment4dec0ba8f07dcf3e…
Card contents are chosen by Collector Crypt's on-chain VRF, independently verifiable on their side. Full data: /api/fairness.