Liquidity pools and order routing
Crypto Execution WeeklyLiquidity Pool Fees Pay for Inventory, Not Passive Capital
Liquidity-pool fees compensate depositors for inventory risk, but only sustained trading volume can offset rebalancing losses and protocol cuts.
A fee-free pool fails its contributors: liquidity pools pay fees because depositors supply the inventory every swap consumes and bear the repricing risk that follows. The component responsible is the automated market maker’s pool contract. Its swap function quotes against stored reserves, applies the configured fee and updates balances atomically. A constant-product test shows exactly what one order asks of that machinery.
Why does an AMM charge traders?
An AMM charges traders because liquidity providers act as the standing counterparty when no matching order is required. Start a pool with 100 ETH and 200,000 USDC, implying a 2,000-USDC spot price, then sell 10 ETH into it with a 0.30% input fee.
- The router sends 10 ETH and the minimum acceptable USDC output to the pool.
- The contract treats 9.97 ETH as price-moving input; 0.03 ETH is the fee.
- Using output = y × effective input ÷ (x + effective input), it releases 18,132.22 USDC.
- The trader receives the output or the whole transaction reverts if the stated minimum cannot be met.
With the same reserves but no fee, the quoted output is 18,181.82 USDC. The fee therefore reduces this fill by 49.60 USDC, while the pool retains 0.03 ETH. Yet the trader’s average execution is 1,813.22 USDC per ETH—9.34% below the starting spot—so most of the haircut comes from moving along a shallow curve, not from the fee.
How does a swap fee reach a liquidity provider?
In a constant-product pool, the fee reaches providers by increasing the reserves backing their pool shares. No clerk allocates each payment. When liquidity is withdrawn, each share redeems its fraction of the enlarged balances; designs with concentrated liquidity may instead account for fees separately and only for positions active at the traded price.
The useful check is provider revenue = routed volume × applied fee × active share, before any protocol cut. If a pool processes $100,000 at 0.30%, it generates $300 in gross trading fees; a provider continuously supplying 1% of eligible liquidity earns $3. Volatility may create arbitrage trades, but it does not guarantee routed volume. That is the key distinction in this analysis of SyncSwap Aqua pools: adaptive pricing can improve a quote, while executed volume is what produces the fee.
Do liquidity-pool fees make contributors profitable?
No: fees make liquidity provision compensable, not automatically profitable. After this ETH sale, the provider owns more ETH and less USDC. Arbitrage can restore the pool price, but the resulting inventory path may leave the position worth less than simply holding both assets; protocol cuts, gas and range management can widen that deficit.
The execution verdict is still favorable, with a condition. At the same 2,000-USDC starting price and 0.30% fee, putting the 10-ETH order through a pool with ten times the reserves returns 19,743.16 USDC, or 1,974.32 per ETH. Depth improves the fill by 1,610.94 USDC. Fees can attract that risk capital and therefore improve sustainable execution, but they cannot rescue a route that lacks volume or depth. The provider bears inventory risk; the trader bears the visible fee and price impact.
In the live product, inspect the pool’s fee setting, protocol share, reserves or active liquidity, recent volume and a completed swap trace. Reproduce quotes at several order sizes, then compare fee growth with the position’s mark-to-market change. If fees do not cover that change, contributors are subsidizing execution rather than being paid for it.
Filed under
- Liquidity pools and order routing
- Transaction ordering and execution costs