Concentrated Liquidity
Overview
Providing liquidity is essential for decentralized exchanges like GoatSwap to function. It allows users to trade assets on the platform while ensuring there are sufficient funds available for transactions. Liquidity providers (LPs) earn swap fees from the pairs they fund, and can earn additional rewards when staking LP positions in farms.
How concentrated liquidity works
The idea
The key feature of GoatSwap V3 is concentrated liquidity, which lets LPs allocate liquidity within a specific price range. In earlier versions, liquidity was spread uniformly across the entire curve from 0 to ∞.
That uniform spread enabled trading across the whole interval without “gaps,” but in many pools a large share of that capital sat unused. For example, in stablecoin pairs the price usually hugs a narrow band; capital far outside that band rarely gets touched.
With V3, LPs can place capital in smaller price intervals than (0, ∞). For a stablecoin/stablecoin pair, an LP might provide liquidity only from 0.99–1.01. This concentrates depth near the mid-price, improving pricing for traders and increasing fee APRs for LPs in-range.
We call liquidity concentrated within a finite interval a position. An LP can hold multiple positions in the same pool to shape their overall curve.
LPs can also combine ranges to mimic other AMMs or even an order book (range orders). Traders interact with the aggregate of all positions; gas per swapper doesn’t scale with the number of LPs. Fees earned in a range are split pro-rata by contributed liquidity.
By concentrating, LPs can match (or exceed) V2 depth with less capital, i.e., higher capital efficiency.
Active liquidity
As price moves, it can leave a position’s bounds. When that happens, the position becomes inactive and stops earning fees until price re-enters the range. The position’s token balance tends toward one asset at the out-of-range edge.
LPs can create multiple positions with different ranges to keep more capital active across likely price paths.
Non-fungible liquidity
Because each position can use a unique curve (its own range), positions aren’t fungible ERC-20s in the core. They’re represented by NFTs. Shared/managed positions can still be made fungible via peripheral contracts. Fees now accrue to the position and are collected by the LP (not auto-reinvested).
In practice this enables richer strategies: multiple ranges, active re-centering, fee compounding, lending overlays, and more.
The role of ticks
To implement ranges, price space is discretized into ticks.
- A tick is a discrete step; effectively ~0.01% per step.
- A position chooses a lower and upper tick as its bounds.
- During a swap, the pool uses all liquidity in the current tick interval. When price crosses a tick, liquidity at that boundary is (de)activated.
Tick spacing depends on the fee tier: lower fees allow tighter spacing; higher fees use wider spacing. Crossing an active tick adds a small cost only to the transaction that crosses it.
For stablecoin pairs—where capital efficiency matters—narrower spacing allows finer-grained provisioning, reducing price impact.
Impermanent Loss
Impermanent loss (IL) is the difference between holding tokens vs. providing them as liquidity when relative prices move. Large relative price swings can produce IL; fees (and external rewards) may offset it, but nothing is guaranteed.
TL;DR: If you withdraw while price is far from your entry ratio, you may realize a loss vs. HODLing. If price later re-enters, the loss can shrink—hence “impermanent.”