A provably fair draw
How we pick winners, and how you can check us
Every draw works the same way, and it's built so that anyone can check it, us included. Rather than ask you to take our word that a draw was fair, we've made it something you can verify for yourself, start to finish. Here's how it works, in plain English.
Everyone gets a numbered ticket
Every entry goes into one big list and gets its own number, in order. Paid or free, every entry sits in the same list with exactly the same chance. Buy several entries and you get a block of numbers, simple to count and simple to check. Your number is just a label so you can find yourself in the list. Where it sits makes no difference to your chance of winning.
Entries close before every draw
Each draw closes before the winners are drawn, with a clear deadline for both online and free postal entries. Free postal entries must say which draw they are for and must reach us by the deadline for that draw. An entry that doesn't name its draw, or arrives too late, can't be included. Please post in good time, it's the arrival that counts, not the postmark.
Once the deadline has passed, we bring every valid entry into one single list, online and postal together, each with exactly the same chance.
The prizes are set for that draw
The size of the prizes, and how many winners there are, grows with the size of the draw. We publish exactly how that's worked out in advance. When entries close and the final prize pot is known, we apply that same published method to set the tiers, the number of winners and every prize amount, and we lock them in before the draw runs.
The list is sealed in public
Before the draw, we take the complete list and run it through SHA-256, a well-established cryptographic method, the same kind of technology used to secure websites and protect data. It turns the whole list into a single short code called a fingerprint.
This fingerprint is unique to that exact list, in that exact order. Change even one entry, add one, remove one, or reorder them, and the fingerprint comes out completely different. It only works one way: you can produce the fingerprint from the list, but you can't work backwards from it to alter the list.
We publish that fingerprint, together with the locked prize breakdown, before the draw and before the random number even exists. Once it's public, we're locked in. We can't quietly add an entry, remove someone, swap the list, or change the prizes, because the fingerprint would no longer match and anyone checking would catch us instantly.
The world rolls a giant dice
Now we need a random number to drive the draw, and this is what makes it genuinely fair. We don't make that number ourselves. If we did, you'd just have to trust us again.
Instead we use drand, a public randomness beacon run by the League of Entropy, a group of independent universities, companies and non-profit organisations around the world. Together they produce a fresh random value on a fixed schedule, out in the open, for anyone to use. We have no affiliation with them and no influence over the number. We can't predict it, we can't change it, and we can't run it, and neither can anyone else. That's the whole point of how it's built: no single party is in control.
We announce exactly which value we'll use before it exists. Because nobody can predict it, we can't sit and wait for a result we like. We're committed to whatever the world rolls.
Live drand beacon
The public random number Snaffle uses. Refreshes every 30 seconds — the same feed we draw from. Source: api.drand.sh.
That value shuffles the list
The random value from drand is then used to shuffle the sealed list. Picture shuffling a deck of cards, except every single move of the shuffle is decided by that public value, not by us. The winners are simply whoever ends up in the top spots, the first drawn takes the top prize, the next fill the tier below, and so on down.
Because the random value decides the entire shuffle, where you started in the list makes no difference. Buying early, buying late, a low number or a high one, none of it changes anything. Everyone is shuffled by the same outside force.
Anyone can check it
After the draw we publish everything: the full list of entries, the fingerprint, the prize breakdown, the exact drand value we used, and the recipe that turns them into the result. Feed those same ingredients into our open verification tool, or your own, and you'll get the very same winners we did. Every single time, because the process is fixed and repeatable.
You don't have to trust us. You can check us, and so can journalists, regulators, and the winners themselves.
After the draw: confirming winners and paying out
The result of every draw is known and publicly verifiable the moment it runs. What happens next is making sure each prize reaches the right person, safely.
Before we pay any prize, we confirm a few things with each winner. We check they are 18 or over, confirm their identity and that they entered validly, and make sure the account we pay into belongs to them. These checks protect everyone. They make sure prizes go to the genuine winner and not to anyone attempting fraud, and we use trusted identity-verification services to do this properly.
We pay prizes as quickly as we safely can once these checks are complete. Larger prizes can take a little longer, as bigger payments may involve additional checks. We'll always keep you updated while this is happening.
For the curious: how it works under the bonnet
If you want the technical detail, here it is.
Each entry reference follows the format SNF-YYYY-DDDD-NNNNNNNNNN, numbered in order within each draw.
The number of winners and the prize for each tier depend on the final prize pot, which is only known once entries close. We publish the formula that turns the pot into tiers and prizes in advance. When entries close, we apply that fixed formula to the final pot, and the resulting prize breakdown, the tiers, the number of winners and every prize amount, is locked in and published together with the sealed entry list, before the random value exists. It cannot be changed once the draw runs.
The fingerprint is a SHA-256 hash of the full entry list in a fixed, published order (the entries joined line by line). We publish the exact format so you can rebuild the identical list and confirm the fingerprint yourself.
The randomness is a single value from a pre-announced drand round on a published chain. This is the only source of randomness in the whole draw. There is no ordinary computer random number, no timestamps, no database IDs, nothing generated by us.
The seed that drives the draw is SHA-256(fingerprint + drand value), so the outcome is tied to both the sealed list and the public randomness, and neither we nor the beacon alone can steer it. Winners are then selected without replacement using a Fisher-Yates shuffle driven by the stream SHA-256(seed + ":" + counter), with rejection sampling to avoid any bias. Prizes are then assigned to the drawn winners in order, following the locked tier breakdown.
Because every step is deterministic, the same list, the same prize breakdown and the same drand value always reproduce identical winners. We publish a verification script that takes the entry list, the fingerprint, the prize breakdown, the drand round and the seed, and recomputes the full winner list independently of our systems. If it ever disagreed with us, you'd know.
Powered by drand
Snaffle's randomness comes from drand, a public randomness beacon run by the League of Entropy, an independent consortium of universities, companies and non-profits. Learn more at docs.drand.love.

