If you have spent time making markets in equity options, futures, or spot, you already understand the core of Uniswap liquidity provision. The P&L drivers are the same. The risks are the same. The tools are different and the execution is automated, but the underlying game — earn the spread, manage inventory, survive adverse flow — is identical.
This post translates LP mechanics into terms a market maker already understands, and explains how the tools mackinac provides map to the traditional MM workflow.
The core trade, restated
A traditional market maker quotes a two-sided market around a reference price. You don’t know where the next trade comes from. You earn the spread from uninformed flow (the retail trader buying at your ask, the index fund that needs to rebalance). You lose to informed flow (the counterparty who knows something you don’t, who hits your bid right before the price drops).
Your edge is the spread, multiplied by the volume of uninformed flow. Your risk is adverse selection from informed flow. Managing the ratio between the two is the entire job.
A Uniswap LP is doing exactly the same thing. You deposit capital into a price range. Swappers trade against your position at the pool’s quoted price. You earn the fee on every swap. The fee is your spread. The swappers are your counterparties, some uninformed and some not.
The mechanism that makes it automatic — the AMM formula — continuously adjusts your effective inventory as trades occur. You don’t place and cancel individual orders. But the economic result, trade by trade, is the same as quoting both sides.
Translating the terms
| Traditional MM | Uniswap LP equivalent |
|---|---|
| Quote width (bid/ask spread) | Pool fee tier (0.01%, 0.05%, 0.30%) |
| Resting size at a price level | Liquidity share at the current tick |
| Quote range around mid | LP price range (tick lower / tick upper) |
| Capital efficiency (leverage) | Range concentration multiplier |
| Spread capture | Fee income per swap |
| Inventory drift from fills | Rebalancing into price moves |
| Pulling quotes in fast markets | Removing liquidity (burning the position) |
| Hedging delta with a futures leg | Shorting the perp against the LP position |
| Skewing quotes to reduce inventory | Asymmetric range placement |
How your position rebalances
When you quote a two-sided market and price moves up, you sell more than you buy. You end up short into a rally — your inventory has drifted. A disciplined MM hedges this in real time or adjusts quotes to stop accumulating exposure.
A Uniswap LP experiences the same inventory drift, automatically. As price moves up through your range, the pool formula sells your base token (ETH) and accumulates the quote token (USDC). By the time price reaches the top of your range, your position is 100% USDC — you’ve been fully lifted on the ask side.
This is not a bug. It’s the mechanism of providing liquidity. You quoted both sides and the market took you out of your base token position as price rose. The rebalancing is mechanical, continuous, and can’t be skipped.
Impermanent loss is adverse selection
This is where LP education typically goes wrong. Impermanent loss (IL) is usually described as a separate phenomenon — a “cost” of providing liquidity, disconnected from the flow you’re intermediating.
It isn’t. IL is adverse selection, restated in inventory accounting terms.
Consider a simple example. You LP WETH/USDC at a range centered around $3,500. Price rises to $4,000 and stays there.
- As price rose, the pool sold your ETH for USDC (you were lifted on the ask side)
- At $4,000, you hold less ETH than you started with, at a cost basis averaged over the move
- Compared to simply holding the original ETH/USDC split, you’re worse off — you sold ETH on the way up
This is exactly what happens to a market maker who keeps quoting into a one-directional move. You kept hitting the ask side of the trade, inventory drifted, and you end up net short a rally. The counterparty who was lifting your ask every step of the way knew where price was going. You didn’t.
The key symmetry: IL is zero on a round trip. If price goes from $3,500 to $4,000 and back to $3,500, your inventory has been fully restored (you sold ETH on the way up and bought it back on the way down), and you’ve earned fees on every swap in both directions. You’re ahead of a static holder by exactly the fee income.
IL only crystallizes when price moves and stays. This is the definition of adverse selection — the counterparty had information you didn’t, moved price, and extracted value from your resting liquidity. The fees you earned on uninformed flow are your compensation for the risk of this outcome.
Range width = spread width
In traditional market making, the choice of quote width is central. Tighter spreads attract more volume and more adverse selection. Wider spreads earn more per trade but see less flow.
In Uniswap, the fee tier is fixed per pool — but you control your range width, which determines capital efficiency.
A narrow range (say, $3,400 to $3,600 on WETH/USDC) concentrates all your capital at the current price. You provide deep liquidity relative to your deposit and earn a larger share of fees on every swap that occurs within the range. But if price moves outside that range, your position goes entirely to one token and earns zero fees until price returns.
A wide range (say, $2,000 to $6,000) is always active, earns fees continuously, but your capital is spread thin — each unit of liquidity you provide is a small fraction of the total pool, so your fee share per trade is low.
This is the same tradeoff as quote width. Tight = more capital efficient, more earnings per unit when active, higher exposure to adverse selection. Wide = always earning, lower return on capital, more resilient to moves.
The range optimizer in mackinac shows this tradeoff explicitly: deposit $50,000 into a tight range and it might show 15× capital efficiency versus a full-range position, with an estimated fee APR of 40%. Widen the range to 3× current price and the efficiency drops to 2×, fee APR drops to 8%, but the position stays active through much larger moves.
Fee tier choice = venue selection
Choosing which fee-tier pool to LP in is analogous to choosing which venue to make markets on.
The 0.01% pool attracts the highest volume because it has the tightest execution cost for swappers. It’s the primary venue for price discovery on WETH/USDC on Arbitrum. The 0.30% pool sees low volume but the fee per trade is 30× higher — it’s the right venue if you believe volume will come through despite the cost (e.g., a unique pair with no alternatives).
The pool comparison table in mackinac shows 24h volume, ±1% depth, and fee APR across all fee tiers and venues simultaneously. The same analysis a multi-venue MM uses to decide where to post — which venue has the best volume/spread ratio — maps directly to reading this table.
The missing tool: delta hedging
Traditional MMs hedge directional exposure continuously. An equity options desk carries a delta-hedged book. A futures market maker hedges inventory with offsetting positions. The LP rebalancing mechanism doesn’t do this — it accumulates exposure in the direction of the move.
The standard approach for hedging an LP position is to carry a short perp position on Hyperliquid against the long base token exposure embedded in the LP. As price rises and the LP position becomes more USDC, the perp short profits. As price falls and the LP accumulates more ETH, the perp short loses but the LP has a lower effective cost basis.
The Perp Basis Monitor shows the live spread between the HL ETH perpetual mid and the Uniswap WETH/USDC spot price in real time. For a delta-hedged LP, this basis is the carry cost of the hedge — the funding rate you pay (or receive) on the perp position. A positive basis means the perp is trading at a premium to spot; you pay funding to maintain the short hedge.
The basis and funding rate together determine the net P&L of the hedged LP strategy: fees earned minus IL minus funding cost. When basis is negative (perp trades below spot), you receive funding on the short hedge — the carry is additive.
What the tools give you
The mackinac interface is organized around the same workflows a traditional MM uses, applied to AMM data.
Depth at current price — the tick depth histogram shows where LP capital is concentrated around the current tick. A thin histogram at the current tick means high price impact per swap; a thick histogram means deep liquidity and lower impact. This is the AMM equivalent of reading the top of the book.
Quote monitoring — the fee tier analysis table shows the effective bid/ask for each pool with the age of the last swap. A pool whose price is 20 basis points off the reference pool and hasn’t traded in 10 minutes is a stale quote — the same information a MM uses to decide whether a resting order is still live.
Competitor flow — the mint/burn feed shows when other LPs are adding or removing positions in real time. A cluster of burns is LPs pulling their quotes, often in anticipation of a volatile period. Re-mints at a new range is LPs repositioning. For a traditional MM, this is equivalent to watching the book depth change — knowing when other quote providers are leaving or entering changes your own positioning decision.
Cross-venue spread — the consolidated depth view shows the best bid and offer across all four AMM venues simultaneously. When the best bid on one venue exceeds the best ask on another, the gap appears highlighted. For a market maker monitoring relative value across venues, this is the real-time spread between markets — the same view a multi-venue equity MM tracks across lit exchanges.
The core difference
The honest caveat: the automation cuts both ways.
In traditional market making, you can pull quotes instantly, skew aggressively in one direction, or shut down a side entirely when you have a strong directional view. The AMM provides no equivalent. While your LP position is active, you quote both sides, continuously, at whatever price the formula produces.
You can remove the position (burn it). You can choose a range that’s entirely above or below the current price (a range order — effectively a limit order that earns fees if price reaches it). But you can’t quote just one side of an active range.
This means LP market making is inherently long gamma in quiet markets (fees accumulate when price oscillates within range) and short gamma in trending markets (adverse selection crystallizes as price trends through the range). Traditional MMs can adjust their gamma exposure dynamically. LP positions cannot, without removing and re-deploying capital.
Understanding that distinction — and knowing when market conditions favor the LP mechanism versus when they don’t — is the real edge in applying a market making background to LP strategy.