Docs
This is the design the on-chain programs have to follow. The engine that defines it is open and tested; the programs themselves are not deployed yet.
Rounds
Each coin has a fixed round length (1 hour, 6 hours or 1 day), chosen at launch and never changed. At the end of a round the program takes a snapshot of holder balances, then asks for randomness.
Tickets
- 1 ticket per 0.01% of supply held.
- The balance counted is the lower of the round-start and round-end snapshots, so buying just before the close earns nothing.
- Hard cap of 100 tickets per wallet (1% of supply) so one whale cannot dominate.
- The creator wallet and the bonding-curve / pool accounts are excluded.
Fees
A 1% fee is taken on every trade. 10% of it goes to the protocol. The creator picks, at launch, how much funds the pot (40% to 80%) and keeps the rest. From each round pot, 10% moves to the weekly jackpot and the remainder goes to the round winner.
Winner selection
Entries are sorted by wallet address to number the tickets. The program takes a random 256-bit value from a verifiable randomness provider, computes random mod totalTickets, and the wallet that owns that ticket wins. The snapshot is committed before the randomness is requested, so nobody can change entries after seeing the result.
Verify a draw
Each draw publishes its snapshot, the randomness value and its proof. Feed the entries and the value to pickWinner in lib/draw.ts and you get the same wallet.
Weekly jackpot
Tickets from every round in the week are summed per wallet and one more draw is made, funded by the 10% cut, using the same method.
No winners
If a round has no eligible tickets, its pot rolls into the next round of the same coin.
What nobody can do
- Creators and the protocol cannot withdraw the pot or pick a winner.
- A round cannot be re-rolled or cancelled once randomness is requested.
- Round length, pot share and caps cannot change after launch.
Not live yet
The programs are not deployed. Everything the site shows for coins is simulated and labelled as such.