The pot and fees
The pot is not a treasury and not a subsidy. It is exactly the trading fees the token generated during that round, minus what the keeper needs to operate.
Where the money comes from
$GACHA launched on a Meteora dynamic bonding curve configured to collect fees in the quote token. Every trade pays:
| Direction | Fee | Collected in |
|---|---|---|
| Buy | 3% | SOL |
| Sell | 3% | SOL |
Because fees are collected in the quote token, the pot is always SOL regardless of trade direction. There is no step where the game has to sell your token to fund a prize.
From fees to prize
claimed = trading fees claimed from the pool this round
rollover = unspent SOL carried in from a voided round
gasReserve = SOL held back for transaction costs
pot = claimed + rollover
spend = pot - gasReserve
prize = market buy of spend SOL into the drawn stockThe keeper measures claimed as its own wallet balance delta across the claim transaction, not as the figure the pool reports. That way the transaction cost of claiming, and any rent reclaimed from temporary accounts, are accounted for exactly rather than approximately.
The gas reserve
Each round holds back a small amount of SOL so the keeper can always pay for the buy and the payout. A keeper that spends its last lamport on a prize cannot deliver it.
There is a second, independent guard: an operating floor on the keeper wallet.
- If the keeper's balance is below the floor, it refuses to trade and the round voids.
- If accounting and reality have drifted, the spend is capped at what the wallet can part with while staying above the floor.
Rollovers
When a round cannot settle, its SOL is not lost and not swept. It is recorded as a rollover on the next round and added to that round's pot. Several quiet rounds in a row therefore compound into one larger prize rather than a series of dust payouts.
A round voids when the pot does not clear the gas reserve or the configured minimum, when no wallet is eligible, or when a transaction fails. See How a round works.
Slippage
The buy is a market order routed through Jupiter with a slippage tolerance. The prize recorded is the keeper's actual token balance delta after the swap confirms, so the published number is what genuinely arrived, never the quote.
Combined with the 3% price-impact filter on stock selection, this keeps the gap between pot value and prize value small. It is never exactly zero: a market buy pays the spread.
What the operator takes
From the pot, nothing. The full spend goes into the prize. The gas reserve is spent on Solana transaction fees, not retained. Any protocol-level fee is taken by Meteora at the pool level before the claimable balance exists.
Round length
Rounds are 300 seconds. Shorter rounds mean more, smaller prizes; longer rounds mean fewer, larger ones. The total paid out over a day is the same either way, since it is driven entirely by trading volume.