If you've participated in token sales, you know that lottery processes are usually hidden away from the user. At Polkastarter, we want you to fully trust our processes. That's why we developed a solution to make the lottery transparent, understandable, and even applicable.
Initially, our ideal situation was having it on-chain, but high gas costs on Ethereum make that prohibitively expensive. In addition, by design, blockchains cannot be used to create random numbers because all nodes need to share the same data (state) and need to come up with identical results when processing transactions. This meant that if any step in the process were to contain a random element, blocks could not be verified.
After considering all the possibilities, we decided to use the following design:
- An on-chain smart contract will be triggered to generate a random (seed) number for the lottery of a certain project.
- The smart contract sends a request to a Chainlink VRF Oracle (Verifiable Random Function), which generates a proven random number and sends it back to the smart contract.
- The smart contract stores the random number related to the project.
- An off-chain program or script generates as many (pseudo) random numbers from the initial random number (seed) to select as many participants from the allowlist as needed.
How to make the lottery process as transparent as possible?
Everyone that applied to the allowlist can verify the process and replicate the lottery generation with the steps below:
1. Download the correct version of the open-source code from github.
2. Download the CSV with the list of applications to the project (that includes their POLS Power that was used for the lottery process)
3. Obtain the initial random number generated by the Chainlink VRF for that project by providing the exact project slug name, e.g “wonderful-project” for “Wonderful Project” to function 5. `getRandomNumbers` and press the [Query] button.
4. Run the verifier script with the correct parameters (number of max winners + your application ID + the random seed number).
From now on, each project's card will have a "Lottery Details" tab where you will find this information to verify the process as seen in the screenshot below.
If you submitted a valid allowlist application, you will be able to check additional information,
such as the total winners of the lottery and the details of your lottery results will be accessible.
Polkastarter is the leading early-stage fundraising platform enabling web3’s most innovative projects to kick-start their journey and grow their communities. Polkastarter allows its users to make research-based decisions to participate in high-potential public sales.
Website | X | Discord | Telegram | Instagram | YouTube
Polkastarter Blog - Latest Polkastarter News & Updates Newsletter
Join the newsletter to receive the latest updates in your inbox.