Skip to content
Solana

Docs · Pools

Core blocks

The Hook Blocks in the reel program, what a creator sets on each, and the ranges the program accepts.

How a block sits on a pool

Each per-pool block is a bit in PoolParams.blocks with its settings beside it. PoolInit validates the whole set against the bounds below and the caps further down, then freezes it. Bits 14 to 21 are advisory blocks: a pool carries at most one. Bit 22, the minimum fee, is set by the program, not by the creator.

Block fees take the protocol share first: the share s is chosen at launch between 20% and 50%, and the rest goes to the block's destination. The base LP fee and the advisory surcharges are LP-only and pay no share.

Pool terms

KeySettingMinDefaultMaxRule
base_fee_pipsBase LP fee0.01%0.3%10%Counted once in the 600,000-pip LP-fee room (PROGRAM.md §5a).
protocol_share_bpsProtocol share20%20%50%—

Every per-pool block

BitBlockWhat it doesStatus
0Anti-SnipeCaps and taxes early buys while the launch guard lasts. Sells never pay it.In the program
1Dynamic feesThe fee rises with how far a swap pushes the price. Pushing it back is free.In the program
2Auto BurnBurns a set share of every buy's tokens in the same swap.In the program
3LP RewardsAn extra fee on buys, kept by the LPs whose liquidity filled them.In the program
4Creator royaltyA share of LP Rewards on every buy, paid to a recipient fixed at launch.In the program
5Swap CutA fixed cut of every buy and sell for the pool's liquidity owner.In the program
6Exit ClockSells pay a fee that falls the longer the tokens were held.In the program
7Holder PotSandwich Guard's charges fill a pot paid to holders by tokens × time held.In the program
8Storm FeeThe fee rises when price turns choppy and eases as it calms, within fixed bounds.In the program
9Wallet CapWhile the guard lasts, no wallet buys more than a set share of the supply.In the program
10Buy/Sell BlockPauses buys and locks sells for a set time after launch. Charges nothing.In the program
11Sandwich GuardA swap that moves price back toward where its window opened pays that move.In the program
12King of the PoolEach round's biggest single buy takes a prize from a pot recapture fills.In the program
13Arb recaptureThe pool keeps most of the price-gap profit instead of outside bots.Partial
14Market GuardSwaps that stray from a live Pyth price pay the pool's LPs a surcharge.In the program
15Market-hours feeA fee that follows the US stock market's sessions.In the program
16Managed feeA surcharge reel's keeper moves as price moves, inside a cap you fix at launch.In the program
17Agent gateOnly registered agents can buy, sell or add liquidity. Removing is never gated.In the program
18Zap Relay sourceRoutes a cut of every buy to a zap vault that buys another pool.Partial
19Zap Relay targetA pool only its feeder zap vaults may buy; anyone may sell.Partial
20Swap Reward MintPays traders a reward token for each swap, funded by a slice of the trade.In the program
21Usage feeEvery swap pays a market block's builder, its backers, reel and a reserve.In the program
22Minimum feeA small fee to reel on a new token's pool that pays reel nothing else.In the program

Settings of the most used blocks

Generated from the catalog. Every other block's settings are on its catalog page.

Anti-Snipe

KeySettingMinDefaultMaxRule
guard_secsGuard length12 s10 min1,200,000 s (13d 21h)A pool-level setting (§5a) that Wallet Cap and Buy/Sell Block share.
snipe_capBuy cap per slot0 (off)Named at launch——
snipe_tax_pipsSnipe tax0%10%60%At most 600,000 − the base fee.
snipe_floor_pipsTax floor0%0%See ruleBelow the Snipe tax.
snipe_decay_secsTax decay0 s5 minSee ruleAt most 3,600 s, or the guard length if longer.
snipe_curveDecay curveLinearLinearStep—

Dynamic fees

KeySettingMinDefaultMaxRule
dyn_max_pipsFee ceilingSee rule2.3%60%From the base fee + 1 up to 600,000; it includes the base fee.
dyn_sensSensitivity1510—
dyn_window_secsStep every12 s30 s5 min—
dyn_reset_secsReset after30 s2 min30 minAt least twice the step.
dyn_carry_bpsGap kept per step0%75%95%—
dyn_move_bpsCounted move0.5%2%20%—
dyn_divisorLiquidity divisor210010,000—

Auto Burn

KeySettingMinDefaultMaxRule
burn_bpsBurn share0.01%1%10%LP Rewards + Auto Burn ≤ 1,000 bps.

LP Rewards

KeySettingMinDefaultMaxRule
lp_bpsLP fee on buys0.01%2%10%LP Rewards + Auto Burn ≤ 1,000 bps.

Creator royalty

KeySettingMinDefaultMaxRule
royalty_bpsRoyalty0.01%10%10%—

Caps PoolInit checks

Each cap is checked with every block at its maximum, and the swap clamps again at run time.

  • LP fees: base fee, Snipe tax, dynamic ceiling, Storm Fee to LPs, LP Rewards and the advisory LP surcharge together ≤ 600,000 pips (60%).
  • Quote takes: Auto Burn, the larger Swap Cut side, usage fee, reward slice, zap cut and minimum fee together ≤ 350,000 pips (35%).
  • LP Rewards plus Auto Burn ≤ 1,000 bps (10%).
  • Sell-side charges: Swap Cut sell, Exit Clock top, Storm ceiling and Sandwich maximum together ≤ 200,000 pips (20%).
  • Royalty ≤ 10% of LP Rewards after the protocol share.
  • At most one advisory block.

A set that breaks a cap fails with FeeRoomExceeded; a bad combination fails with BlockConflict; a setting out of bounds fails with InvalidParams.

Rules between blocks