Skip to main content

One pool per pair, per type

Creating a pool takes only the two tokens and the pool type — nothing else. There are no fee tiers: for each pair and type there is exactly one canonical pool, so liquidity never fragments across parallel fee variants of the same market. Tick spacing and fee come from governance-set defaults per pool type, and can be calibrated per pool afterwards.

Pool types

Concentrated Liquidity (CL)

Uniswap V3-style pools: each position concentrates capital inside a chosen price range.
  • Higher capital efficiency — the same capital earns more fees while the price trades inside your range
  • Active management — positions out of range stop earning until re-ranged
  • Custom ranges — every position picks its own bounds

Constant Product (CP)

The classic full-range x·y=k curve. Under the hood a CP pool is the same contract as CL with every position pinned to the full range — you get the simplicity of always-in-range liquidity with the same interface, events, and plugin support.
  • Always in range — no re-positioning, ever
  • Simple LPing — deposit both assets, hold a share of the pool
  • Launchpad graduations — completed bonding curves graduate into CP pools

STABLE

A separate pool contract carrying an amplified StableSwap curve, designed for pairs that trade near parity (stablecoin pairs, wrapped/native pairs):
  • Amplified pricing — near the peg, slippage is a small fraction of what constant product would charge for the same trade
  • Tickless — every position spans the whole curve; a swap resolves in one step
  • Decimal-normalized — tokens with different decimals (e.g. USDC/DAI) are normalized internally so the amplified region sits exactly at par

Who can create pools

Pool creation is controlled per pool type — each type can be open to anyone or restricted to a governance-granted role, because the risks differ per type:
  • CL — open. Anyone can list any pair; a concentrated pool makes no assumption its creator could abuse.
  • CP — restricted. CP pools are opened by launchpad graduations through a role granted to the launchpad. The reason is front-running: a pool’s fee and plugin are fixed from its creator, and a graduation refuses a pool that already exists — so an open CP type would let anyone open a launch’s pool ahead of the launchpad and set its permanent market terms.
  • STABLE — restricted. The amplified curve assumes its pair trades near parity; listed against an unpegged pair it would quote both tokens at par and hand the difference to arbitrageurs at LPs’ expense.
Restrictions are roles, not single addresses: governance can admit as many creators per type as it grants, and open or close a type as the platform evolves.

Providing liquidity in practice

  • CL demands attention — a position outside its range holds a single asset and earns nothing until the price returns or you re-range. Tighter ranges earn more per unit of capital and go out of range sooner.
  • Impermanent loss is real on every curve — providing liquidity underperforms holding when the price moves significantly, and concentrated ranges amplify both fee income and this effect.
  • Passive routes existLiquidity Vaults manage CL ranges for you, and pools with active farming programmes pay rewards on top of trading fees.

How fees work

The fee lives in the pool, and can be dynamic. Each pool stores its current fee, readable at any time without touching the plugin. When a pool’s plugin has the dynamic-fee capability enabled, it can adjust that fee — the Dynamic Fee module raises it with measured volatility and lowers it when the market calms. A plugin attached for other purposes (farming, security) gets notified of pool events without gaining any say over what traders pay. Fees are set by governance, not by pool creators. Defaults are per pool type; per-pool calibration is a governance action. This prevents anyone from squatting the canonical pool for a pair with an absurd configuration.

Where fees go

Every trading fee is divided between the liquidity providers of the pool and the protocol. The protocol share is bounded by design to at most half of the fee; the rest — the larger side — stays with LPs. The protocol share is the revenue that will feed the Earn layer when it ships: stakers paid from real trading activity, in the assets the fees were collected in.