Skip to main content



FairyRaffles is our easy-to-use dApp that grants you the superpower to create verifiably fair on-chain raffles by uploading a list of participants. There is no limit on the number of winners you can draw, and it will always cost the same amount of gas!

Check out the app at, or read on to learn more about why FairyRaffles is the last raffling product you'll ever need 👇

How it works

To get started, you'll need to prepare a list of participants for your raffle. For maximum on-chain composability, each participant should be an Ethereum address. However, this is not a requirement. A participant can be an email address, a Twitter username, a Discord username - you name it! Please note that currently; the participants list is not private and will be made available for verification. We are working on enabling privacy for raffles. Get in touch if you are interested in this feature.

Once the list of participants is uploaded, the dApp will compute a Merkle tree. A new raffle contract is then deployed and initialised with this Merkle root; which represents the on-chain commitment of the participants list.

Next, a cryptographically-verifiable random number is requested from Chainlink VRF. Once the random number arrives back at the newly-deployed raffle contract, the dApp will compute the raffle winners and generate the cryptographic proofs for each winner.

Every step after committing the participants Merkle root is performed efficiently on-chain, using our Lazy Merkle Raffle algorithm.

What can I do with the results?


In most cases, you may just want to fairly draw some winners in a verifiable way and distribute any prizes independent of any blockchain technology. FairyRaffles enables you to show proof that, given the original participants list, the raffle was performed fairly and has not been tampered with.

Simply share a link to the raffle and let your raffle participants verify the results!


It may be the case that you may want to preload a prize distributor contract with some NFT prizes (or maybe something more fungible 😉) for winners to claim based on the results of a raffle. This is also possible! Any raffle winner can prove that she was indeed a winner by providing a Merkle proof and verifying against the deployed raffle contract.

That's right, you can compose a fully on-chain and trustless raffle, from entry all the way to prize claiming, and no matter how many winners you'd like to draw, you will always consume the same amount of gas! 🤯

If you'd like our expert help to develop a custom raffle, please email us or slide into our DMs on @fairyrnd!