The deposit and the fee
A backer picks one token by its ticker or token address: one whose mint and freeze authorities are revoked, which removes those two authorities. This does not make the token safe or guarantee transfers. They choose the pool size: how many tokens the pool buys in total, any whole number from 1,000 up to the most the token's decimals allow: 18,446,744,073 for a token with 9 decimals, more for a token with fewer (we call it N in the formulas below). The limit keeps every sale's burn within what Solana can count in one number. They choose how long the pool buys, and put in USDC. The deposit is split three ways at once:
- 20% fee, to the platform. It is never returned.
- 10% chain bonus, paid on top of the price when the token is sold in an hourly chain.
- 70% payout: the money that pays sellers for their tokens.
The payout and the bonus go into the pool's own vault. The vault belongs to a program address that has no private key. USDC leaves it in only two ways: as payment to a seller whose tokens are burned, or back to the backer. The current code has no admin withdrawal instruction. The owner can upgrade the program and change these rules, including access to funds. Try your own numbers on the Create a pool page.
The payout must be at least $87.50, so the smallest deposit is $87.50 × 10000 / (10000 − fee_bps − bonus_bps) = $125 with a 20% fee and a 10% bonus. If these settings change, the smallest deposit changes too. A pool keeps the split it was made with.
The price
A pool buys its token at price = payout / N, where N is the pool size. The price does not change while the pool is open: the first token sold and the last one get the same price (except the pool's very last tokens, see below). In a chain, each token also gets bonus / N on top. With the default settings that is one seventh of the price, so a chain sale pays the price + 14.3%.
- A $1,250 deposit for a pool size of
N = 100,000leaves a $875 payout and a $125 bonus. That is a price of$0.00875per token, and$0.00125more in a chain. - Selling
qtokens paysq × payout / N, and in a chain alsoq × bonus / N. In the example, selling 10,000 tokens pays $87.50, or $100 in a chain.
The contract counts every payment in whole units of 0.000001 USDC, the smallest USDC unit, and rounds down. So rounding never pays too much: the tiny leftovers stay in the pool and go back to the backer at the end. There is one exception: when someone sells a pool's last tokens, they get all of the payout that is left. This way no tokens are ever stuck because nobody can sell them.
Every sale must pay at least 0.000001 USDC. In the example, one token already pays 0.00875 USDC, so the smallest sale is 1 token. In a thin pool, a $87.50 payout for 18,446,744,073 tokens (the most for a token with 9 decimals), one token costs $0.00000000474, so the smallest sale is 211 tokens, which pays 0.000001 USDC.
Selling into a pool
Once a pool is open, anyone can sell the token straight into it at its price, any amount up to what the pool still buys. One transaction burns the tokens and sends the USDC from the pool's vault to the seller's wallet. A successful sale pays in the same transaction, with no separate claim. Delays and failed transactions are still possible. Both kinds of Solana token are supported (Token and eligible Token-2022 tokens). Some Token-2022 extensions are not supported.
A token can have several pools, from different backers or from the same one. The seller chooses which pool to sell into, usually the one that pays most. We call the highest price of any open pool its floor. It is a limited buyback offer, not a market price guarantee. You can see it on Chains → Floors, with how many tokens the pool still buys and until when.
Hourly chains
Every hour, the contract picks up to 3 chains of up to 5 tokens for the next hour, at random. It picks from the tokens whose pools are open and still buying.
- How tokens are picked. The random number comes from a Solana block that nobody can know in advance, not even the person who starts the draw. Fresh tokens go first: tokens never in a chain, and tokens back after all their pools ran out. The rest follow in random order. No token is in two chains in the same hour. If there are 2 to 14 tokens to pick from, every one of them gets into a chain.
- Announced one hour before, open for one hour. Each chain is announced at the start of one hour and is open for the whole next hour.
- The bonus. Sell the same amount of every token in the chain together, in one transaction, and each pool pays its price plus its bonus. The seller picks one pool for each token. In a chain of 3 pools like the one in the example, selling 10,000 of each token pays $300: $100 from each pool.
- Sold-out tokens. If all pools of a token are sold out, that token is skipped, and the sale takes the chain's other tokens. Even if only one token of the chain is left, selling it still pays its bonus.
Outside a chain's hour, or for a token that is in no chain, the pools still buy at their normal price. Only the bonus needs a chain.
When a pool opens and closes
- Make a pool at any time. You pick the day it opens: any Monday, Wednesday or Friday, 12:00 UTC, from 72 hours after you make it up to a year ahead.
- Until it opens, it waits. It is listed under “Opening soon”, and nobody can sell into it yet. It cannot be cancelled: the deposit stays in the pool until the pool closes.
- It buys for 7, 30, 90 or 365 days. This time counts from when the pool opens. The pool closes when the time is over, or earlier if it has bought all its tokens.
- Money back. After a pool closes, one transaction sends everything left in it (unsold payout, unused bonus, rounding leftovers) back to its backer, and removes the pool. Anyone can send this transaction, but the money can only go to the backer. A bot can send close transactions, but a timely refund is not automatic or guaranteed.
Why chains
One pool on its own is one token's floor: its holders sell into it or not, each on their own. A chain gets holders of different tokens to act together. For one hour, a group of tokens is worth more sold together than one by one. So whoever holds one of them has a reason to want the others too. That is what chains are for.
Nobody picks the groups by hand. The draw is random, and fresh tokens go first, so a new or returning token gets its turn.