Harvest: from withheld fees to SOL
The pot is paid in SOL, but transfer fees are withheld in each coin. The keeper bridges the two every hour.
Every hour
| Minute (UTC) | Memo | What the keeper does |
|---|---|---|
| :00 | snap | Snapshot of every holder of every coin; hour hash in a Memo |
| :05 | harvest | WithdrawWithheldTokensFromAccounts on every coin, 20 accounts per transaction |
| :05 | harvest | HarvestWithheldTokensToMint + WithdrawWithheldTokensFromMint for fees left in closed accounts |
| :10 | sell | Harvested coins sold for SOL on the curve, or the CPMM pool after graduation |
| :10 | pot | SOL moved from the House key to the pot wallet |
| :20 | claim, burn | Curve platform fees claimed in SOL, $T22 bought and burned |
Withdrawing withheld fees
For each coin, the keeper lists every Token-2022 account of the mint with getProgramAccounts, reads the transfer fee amount extension, and keeps the accounts with something withheld. It then sends WithdrawWithheldTokensFromAccounts signed by the House key, 20 source accounts per transaction, to the House's own token account for that coin. Fees left in closed accounts were already moved to the mint; WithdrawWithheldTokensFromMint collects those.
Selling for SOL
The harvested coins are sold the same hour: on the coin's LaunchLab curve while it is there, through its Raydium CPMM pool after graduation. About 1% of each coin's transfer volume is sold every hour, and the keeper's own sell pays the 1% too, which goes into the next harvest. Coins worth less than 0.001 SOL wait for the next hour. The SOL goes to the pot wallet in a separate transfer.
The records
Every step writes a Memo signed by the House key: harvest with the mint, amount and account count; sell with the amount and the lamports received; pot with the lamports moved. The ledger reads them back from the chain. Each coin page sums the SOL its sells put into the pot.
