Use the app
Provide liquidity
Choose a price range, deposit both tokens or one, earn the pool's fee while the price is in range, and withdraw any share at any time.
How a position earns#
Your liquidity sits in a price range you choose. While the pool's price is inside it, your liquidity trades and earns its share of every swap's LP fee, in whichever token the swapper paid with. When the price leaves the range, the position stops trading and is held entirely in one token: the one that's worth less at that end.
A narrow range earns more per unit of capital while the price stays inside it, and stops earning sooner when the price moves. A wide range earns less per unit but for longer. Neither is free of risk: if the price moves and stays, you end up holding more of the token that fell.
Add liquidity#
Open a pool
Go to Pools and open the pool you want. Its page shows the liquidity by price, the price after recent swaps, and the hook's live state.
Pick a range
Choose ±1%, ±5% or ±20% around the current price, type a min and max price, or drag the range's edges on the liquidity chart. The edges snap to the pool's tick spacing.
Enter an amount
Type an amount of either token. The app works out the liquidity that amount buys and how much of the other token the range needs at the current price.
Deposit
Press Add liquidity and approve in your wallet. Opening the position and depositing happen in one transaction.
If your range sits entirely above or below the current price, it takes only one token: the app says which and disables the other field. That is a valid position; it starts earning once the price moves into it.
Hooks that see your liquidity#
If a pool's mask includes before liquidity (4) or after liquidity (8), its hook is called around your deposit and withdrawal. A hook can refuse them: that's how a range-order pool admits only its owner, and how a lockup hook would hold liquidity until a date. The pool page shows which contacts are wired before you deposit. Built-in no-op, dynamic-fee and TWAP pools created from the app don't restrict liquidity.
Your positions#
Positions lists every position the connected wallet owns, on every pool. Each card shows:
- The range against the current price, and whether it is In range, Out of range or Empty.
- What the liquidity is worth now, in both tokens.
- Fees earned and not yet collected.
Collect fees#
Collect fees sends the fees a position has earned to your wallet without touching its liquidity.
Remove liquidity#
Choose 25%, 50%, 75% or 100% and press Remove. The removal and a fee collection happen in one transaction, so you get the share of liquidity and all fees owed. The transaction accepts at most 1% less of each token than the estimate.
Removing 100% leaves the empty position account on chain. Socket has no instruction to close it, so the rent it was opened with, about 0.0027 SOL, stays in it.
Fees in detail#
The fee a swap pays is set per pool: the base fee, or for a dynamic-fee pool whatever the hook sets for that swap, never above the pool's max fee. The whole fee goes to the liquidity in range at the moment of the swap, in proportion to each position's liquidity. Socket takes no protocol cut.
Fee accounting is exact to the atomic unit and carries remainders forward per position, so frequent collection doesn't lose dust to rounding.