Work / Lotix

Lotix — verifiable raffle protocol

Raffles that hold real money. A prize is escrowed on-chain, tickets are sold in a stablecoin, and the winner is drawn from verifiable randomness. Live on Robinhood Chain and BSC.

Anyone can create a raffle by escrowing a prize (an ERC-20 amount or an ERC-721 NFT) and setting a ticket price, a ticket cap, and a duration. Entrants buy tickets in a stablecoin. When the raffle expires, a draw is requested from a verifiable randomness source and the winner is picked from the ticket ranges.

The draw is the easy part. A randomness provider can stall, a winner can be blacklisted, a prize token can pause, and the contract is built so that none of those end with the prize stuck on it.

Deployments

LotteryCore Robinhood · 4663 0x04491a792C82Dd66C5993b89E6E5044bF0da797d
RaffleCore BSC · 56 0xd990ca6f045f86df32c115deee4d24e4a911993b

What the design handles

  • Two randomness backends, one accounting engine. Robinhood Chain has no Chainlink VRF deployment, so it runs Quiver with a resolver-gated draw; BSC runs Chainlink VRF v2.5 through a permissionless upkeep.
  • Resolution is driven by keepers I operate, not by Chainlink Automation. On Robinhood Chain that is a Node service with two cron jobs (resolve, then settle from the randomness callback); on BSC it is a shell-driven loop.
  • Every draw request folds in a fresh salt, so a colluding randomness provider can stall a raffle but cannot grind for a winner it likes.
  • Payouts are push-with-escrow-fallback: if a transfer fails, the funds move to a claimable balance instead of reverting the settlement and freezing the raffle.
  • Cancelled raffles refund with O(1) pull accounting, and an underfilled raffle returns the prize to the host while still drawing the ticket pool, so nobody's money is stranded.

Architecture

Lotix architecture: raffle contracts, randomness backends, keepers, and settlement flow

Creation and ticket sales write to the accounting engine. Keepers request the draw, randomness resolves the winner, and settlement either pushes the payout or escrows it for the winner to claim.

← All work