Raffles & mystery-stock prizes
Ticket weights, verifiable draws, prior winners, prize taxes and reserved payments.
On this page
Tickets and prize configuration
Tickets are the round’s lowest eligible balance divided by the configured positive ticket size, rounded down. A minimum balance of 500 with ticket size 100 gives five tickets. Unlike airdrop weighting, buying late or briefly holding a larger amount does not raise the minimum balance over the entire interval.
Creators select the schedule, a prize share greater than zero and less than 100%, one to ten winners, optional prize tax and optional mystery stocks. A prize below $2 per actual winner carries rather than creating an uneconomic qualifying draw. Select no more distinct winners than eligible holders.
Selection is tied to a posted commitment
Posting freezes the ticket root, round identity, public randomness key and required prior completed-draw reference. Prior selected winners sit out while enough other eligible holders exist, then can be admitted when needed. Unpaid winners count in that reference; a later-finishing older draw cannot rewrite an already-posted snapshot.
seed = keccak256(token, round, ticketRoot)
ordinal[k] = uint256(keccak256(verifiedOutput, k)) % remainingEligibleTicketsEach selected winner’s entire ticket interval is removed before the next selection. The host and contract use the same bounded interval selection and Merkle proofs. The draw verifies the randomness proof and records credits; it does not transfer prizes in the draw transaction.
Prize tax and independent payments
An optional flat prize tax is capped at 50% and split between a configured recipient and the raffle pool according to the configured proportion. The pool’s share becomes new pot funding. Ordinary credits can be paid by anyone; one failing recipient does not block the others.
Mystery-stock selection and liquidity
When enabled approved stock paths exist for the backing at draw time, the draw deterministically chooses a path for each applicable backing prize and stores it with the credit. An approved keeper later converts and pays it with minimum-output enforcement. An unpaid or unconvertible prize retains its reservation and selected path.
A stock path that exists but cannot fill the prize is a different case from having no stock path. It does not trigger an automatic prize substitution. See Conversion paths and Troubleshooting.
Skip to documentation