Tickets and the holder table
How the program weighs each holder, who gets into the 1,024-entry table, and how the website draws tickets.
The lowest-balance rule
Section titled “The lowest-balance rule”A token account’s tickets for a round are the lowest counted balance it held from the start of the round to the swap that closes it. The counted balance is the account’s balance if it is at least 10,000,000 tokens, and zero otherwise.
- A buy during a round joins the next round. A new holder has zero tickets in the round they arrive. A top-up adds nothing until the next round starts.
- A sell cuts your weight at once. Your tickets for the round drop to the new balance. Buying back in the same round does not restore them.
- Sending tokens counts as selling for the sender. The receiver’s new tokens count from the next round.
- Dropping under the minimum at any moment gives zero for that round.
- To count in a round, you hold from its start to its close.
An example, with one token account across two rounds:
| What happens | Balance | Tickets this round |
|---|---|---|
| Round 12 opens | 50M | 50M |
| Buys 30M | 80M | 50M |
| Sells 60M | 20M | 20M |
| Buys 100M | 120M | 20M |
| Round 12 closes | 120M | 20M, frozen for the draw |
| Round 13 opens | 120M | 120M, if nothing is sold |
This is why a buy just before a draw wins nothing. In testing, a $20,000 buy whose own swap closed the round got zero tickets for that draw.
It is also why splitting doesn’t help. Tickets in several accounts add up to the same total, and each prize is a separate weighted pick. Your expected share of the prizes equals your share of the tickets, however you split.
Entries are token accounts
Section titled “Entries are token accounts”The table records token accounts, not wallets. A wallet with two token accounts of $777 has two entries, each with its own balance. Most wallets use a single associated token account. Keying by token account prevents double counting. The owner of a token account that isn’t an associated token account can be changed without a transfer, so entries keyed by wallet could count the same tokens twice.
Who can hold tickets
Section titled “Who can hold tickets”Only token accounts whose owner is a regular wallet, a key on the ed25519 curve. Accounts owned by program addresses never get an entry. That covers the curve’s vaults, the pot, lockers and multisig vaults, so a treasury held in a multisig can’t win.
The minimum balance
Section titled “The minimum balance”10,000,000 tokens, 0.001% of the 1 trillion supply.
- Under it, an account counts as zero, and a newcomer doesn’t get an entry.
- An entry already in the table that drops under the minimum stays there at zero. It is the first in its window to go when a newcomer needs the slot.
The 1,024-entry table
Section titled “The 1,024-entry table”- One account at a fixed address: the PDA
["table"]of raffle-hook, 92,624 bytes. It holds a 6,608-byte status block, then 1,024 entries, then the trees that keep the ticket totals. - Each entry is a token account, its counted balance, its lowest balance this round, and the round it was last touched.
- Each token account has a home slot taken from the first bytes of its address. It can sit in any of the 16 slots starting there.
- The hook records both sides of every transfer, skipping the curve’s own vaults. Nothing in it can make a transfer fail.
When the table is full
Section titled “When the table is full”- If all 16 slots a newcomer can use are taken, it replaces the smallest entry there, if its own counted balance is larger. Otherwise it is skipped.
- The comparison uses counted balances at that moment, not tickets.
- No entry is replaced while a draw is pending, between a round’s close and its reveal. A newcomer who would need to replace someone is skipped during that time.
- A full table settles near 97% occupancy (986 of 1,024 in testing), because a few slots sit outside every newcomer’s 16-slot window.
- An evicted or skipped holder keeps their tokens. They hold no tickets until they get back in.
So when the table is full, the smallest holders can be left out. To push someone out, you have to hold more than they do.
The sync instruction
Section titled “The sync instruction”Anyone can call sync with any token accounts of the mint. It applies each account’s real balance by the same rules as a transfer, without counting a swap.
- Use it to enroll an account that was skipped or evicted, once there is room in its window or its balance beats the smallest entry there.
- Any later transfer to or from the account tries the same thing.
- Like any newcomer, an account enrolled by sync starts with zero tickets for the current round and counts from the next one.
The website’s ticket display
Section titled “The website’s ticket display”The website shows holdings as paper tickets in a drum. That is a picture of the table, rounded for display:
- 1 paper ticket per 0.1% of supply, 1,000,000,000 tokens, rounded down.
- A gold ticket stands for 10, that is 1% of supply.
- Every table holder at or above the minimum shows at least one ticket.
- Tickets that count in the current round carry a seal. Tokens bought during the round show as pending tickets that join the next round.
Pot Draw runs on public programs on Solana. Addresses are published at launch. Nothing here is financial advice or a promise of returns.