Fees
Every fee, and who receives it
Each fee below is a rate in basis points (1 bp = 0.01%), applied with integer arithmetic and rounded down. Each one has a single destination, set in the program.
| Fee | Rate | Goes to |
|---|---|---|
| Launch feeeach create_launch, in SOL | 0.01 SOLceiling 0.1 SOL | HELIX’s fee collector, in the same instruction |
| Protocol fee, curveevery buy and sell on the curve, in SOL | 0.5%ceiling 1.5% | HELIX: held in the pool until anyone calls collect_protocol_fees, then the fee collector |
| Protocol fee, AMMevery buy and sell on an AMM pool, in SOL | 0.05%ceiling 0.5% | HELIX, the same way |
| LP feeevery AMM trade: from the SOL in on a buy, the tokens in on a sell | 0.25%ceiling 1% | Liquidity providers, pro rata to LP: it stays in the reserves. On a graduated launch most LP is locked, so most of it stays in the pool for good. |
| Creator feeevery buy and sell, curve and AMM, in SOL | set at launchat most 2% | The creator, through claim_creator_fees |
| Holder feebuys and/or sells, in SOL, once 1,000,000 tokens (supply ÷ 1000) are held | set at launch, per sideat most 3% | Holders, pro rata, through claim_rewards |
| Burnbuys and/or sells, in tokens | set at launch, per sideat most 2% | Nobody: the tokens are destroyed |
| Sniper feebuys in the first seconds of a launch, in SOL; the creator’s first buy is exempt once | 30% → 0 over 20 sceiling 50%, 60 s | The pool’s liquidity at graduation, locked for ever |
Example: 1 SOL into a fresh launch with the Plain preset (creator fee 1%), after the sniper window, at the default 0.5% protocol fee: 0.005 SOL to the protocol, 0.01 SOL to the creator, 0.985 SOL into the curve, about 34.11M tokens to the buyer.
Sells pay no sniper fee. The full order of operations, including when hooks run, is on DEX.
The admin sets the protocol-level fees, but only up to ceilings that are constants in the program (ceilings in programs/helix/src/state.rs, CEILINGS in the SDK). update_config refuses anything above them with ConfigOutOfBounds.
| Setting | Default | Ceiling |
|---|---|---|
| Protocol fee on the curve | 0.5% | 1.5% |
| Protocol fee on the AMM | 0.05% | 0.5% |
| LP fee on the AMM | 0.25% | 1% |
| Sniper fee at the start | 30% | 50% |
| Sniper window | 20 s | 60 s |
| Launch fee | 0.01 SOL | 0.1 SOL |
A fee change only applies to pools and launches created afterwards. Each pool copies its protocol and LP fees, and the AMM fees it will switch to at graduation, when it is created, and keeps them for life. Each launch copies the sniper fee the same way, and its own rules are fixed at creation. No instruction changes the fees of an existing pool.
collect_protocol_fees(tag 34) can be called by anyone, and can only send a pool's protocol fees to the fee collector named in the config.- The launch fee is paid at launch, at the config's rate at that moment.
Token pages show one fee per side: everything a trade pays, compounded. It is sideFeeBps in the SDK.
The SOL-side fees come out of the trade first, the LP fee out of what is left, the burn out of the tokens. The holder fee counts even before enough tokens are held to pay it. The sniper fee is left out, since it lasts seconds. For a pool that isn't a launch, the figure is protocol + LP (0.3% by default).
| Preset | On the curve (buy / sell) | After graduation (buy / sell) |
|---|---|---|
| Plain | 1.5% | 1.3% |
| Diamond hands | 2% | 1.8% |
| Furnace | 1.99% | 1.79% |
| Paid to hold | 1% / 3% | 0.8% / 2.79% |
Read live from the config account on the cluster this site is connected to.
| Setting | Now | Default |
|---|---|---|
| Protocol fee on the curve | 0.5% | 0.5% |
| Protocol fee on the AMM | 0.05% | 0.05% |
| LP fee on the AMM | 0.25% | 0.25% |
| Sniper fee at the start | 30% | 30% |
| Sniper window | 20 s | 20 s |
| Launch fee | 0.01 SOL | 0.01 SOL |