Practical overview
When it fits
Consider it when building or examining a Solidity-based NFT distribution that needs configurable raffle entries, randomized winner selection, participant refunds and randomized metadata assignment.
Who it is for
- Developers assessing or adapting Solidity contracts for NFT raffle distributions.
- Raffle operators who need configurable ticket limits, sale windows and NFT supply parameters.
- Participants in a deployment using the contracts who need to enter raffles, claim winning NFTs or request refunds for losing tickets.
Documented uses
- Configure a raffle with NFT details, mint cost, start and end times, supply and a per-address entry limit.
- Collect refundable raffle ticket purchases during the active period.
- Select multiple winning entries by shuffling tickets when entries exceed NFT supply.
- Let participants claim NFTs for winning tickets or refunds for losing tickets.
- Generate randomized on-chain metadata for batches of NFT token IDs.
Requirements & limits
The repository is public and identifies its license as GNU Affero GPL v3.0 (AGPL-3.0).
- The implementation is described by its repository as unaudited and unoptimized.
- Chainlink VRF is the documented randomness source; the evidence does not establish deployment or compatibility with any particular network.
- When purchased entries exceed available NFT supply, the README says raffle clearing is required and may be performed in partial steps or all at once.
- The documented build and test workflow uses Nix and DappTools and checks out a tests branch that modifies the contract to mock Chainlink.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Prepare the documented DappTools test environment
Clone the repository, switch to its tests branch and run the documented test commands.
Before you start
- Nix installed; the README's Nix installation instructions state that the user must be in sudoers.
- DappTools installed.
Steps
Clone the MultiRaffle repository and change into its directory.
Check out the remote tests branch using the README's command.
Run
make, followed by the command below.make test
Expected outcome
The documented build and test commands are run against the tests branch, which the README says modifies the contract to mock Chainlink.
Guide limitations
- The README does not provide test results or establish that the contracts are safe, audited or ready for deployment.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 15 October 2026
- Original website title
- Anish-Agnihotri/MultiRaffle · Official homepage title · retained in its source language

