Skip to content
helixLaunch

Docs

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.

FeeRateGoes to
Launch feeeach create_launch, in SOL0.01 SOLceiling 0.1 SOLHELIX’s fee collector, in the same instruction
Protocol fee, curveevery buy and sell on the curve, in SOL0.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 SOL0.05%ceiling 0.5%HELIX, the same way
LP feeevery AMM trade: from the SOL in on a buy, the tokens in on a sell0.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 SOLset 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 heldset at launch, per sideat most 3%Holders, pro rata, through claim_rewards
Burnbuys and/or sells, in tokensset 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 once30% → 0 over 20 sceiling 50%, 60 sThe pool’s liquidity at graduation, locked for ever
On a launch, creator fee + holder fee + burn is at most 5% on each side. A custom hook may take its own cut in tokens; that is the hook's, not HELIX's, and quotes don't include it.
fee = floor(SOL in × rate / 10,000) for protocol, sniper, creator, holder net = SOL in − those four fees tokens = curve(net), or AMM(net less the LP fee) burned = floor(tokens × burn / 10,000) received = tokens − burned, less a custom hook's cut if any

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.

arrived = tokens sent − a custom hook's cut, if any burned = floor(arrived × burn / 10,000) gross = curve(arrived − burned), or AMM(arrived − burned, less the LP fee) fee = floor(gross × rate / 10,000) for protocol, creator, holder received = gross − those three fees

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.

SettingDefaultCeiling
Protocol fee on the curve0.5%1.5%
Protocol fee on the AMM0.05%0.5%
LP fee on the AMM0.25%1%
Sniper fee at the start30%50%
Sniper window20 s60 s
Launch fee0.01 SOL0.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.

side fee = 1 − (1 − (protocol + creator + holder)) × (1 − LP) × (1 − burn)

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).

PresetOn the curve (buy / sell)After graduation (buy / sell)
Plain1.5%1.3%
Diamond hands2%1.8%
Furnace1.99%1.79%
Paid to hold1% / 3%0.8% / 2.79%
With the default fees: protocol 0.5% on the curve; 0.05% protocol and 0.25% LP on the AMM.

Read live from the config account on the cluster this site is connected to.

SettingNowDefault
Protocol fee on the curve0.5%0.5%
Protocol fee on the AMM0.05%0.05%
LP fee on the AMM0.25%0.25%
Sniper fee at the start30%30%
Sniper window20 s20 s
Launch fee0.01 SOL0.01 SOL
These apply to pools and launches created from now on.