Concentrated liquidity
How Uniswap V3 ranges earn fees, why they stop earning when the price leaves, and how Tuo sizes and manages them.
Tuo's fee income comes from concentrated liquidity on Uniswap V3. This page explains what that is and how the two products use it.
What a range is
On Uniswap V3 a liquidity provider does not spread capital across every possible price. They pick a price range, say 6% either side of the current price, and their capital only serves trades that happen inside it. Inside the range, the position earns a share of every trade's fee in proportion to its share of the liquidity there. Concentrating on a narrow band means a large share of the fees for a given amount of capital.
The cost is that a range holds the pool's two tokens in a proportion that shifts with the price. As the price rises toward the top of the range, the position converts to more USDC. As it falls toward the bottom, it converts to more of the volatile token. At the edge, it is entirely one token, and it stops earning.
Why a range stops earning
Fees accrue only while the current price is inside the range. When the price leaves:
- The range earns nothing until the price comes back or the engine closes and re-centres it.
- The position is left holding more of whichever asset fell.
- The hedge keeps working, because the short is sized to the exposure the range carried.
The engine allows a range to sit out of range for a set number of days, the patience window, before it forces an exit. That patience is deliberate: closing and reopening a range costs swap spread and gas, and a price that comes back within a few days would have earned again for free.
The ranges Tuo runs
| Sleeve | Pool | Width around the entry price | Used by |
|---|---|---|---|
| Alpha, ETH | WETH/USDC 0.05% | +/-6% | Basis Plus Core |
| Alpha, BTC | WBTC/USDC 0.05% | +/-6% | Basis Plus Core |
| DynHedge, BTC | WBTC/USDC 0.05% | +/-20% | Basis Plus Core and Delta Hedge Standalone |
The narrow Alpha ranges earn more per dollar and leave their range sooner. They open only when the engine's entry signal fires and close when it flips. The wide DynHedge range is always on: it earns less per dollar, stays in range through larger moves, and carries a hedge that is resized as the exposure shifts. See Products for how the sleeves combine.
Both pools are Uniswap's own 0.05% fee-tier pools on Arbitrum One, and every allowlisted pool pairs its token with USDC. There is no WBTC/WETH pool and no other pair.
How the vault protects a range
The keeper mints and burns ranges, but the vault decides whether each call is acceptable:
| Check | Value | Why |
|---|---|---|
| Pool allowlist | Fixed at deployment, no setter | A range can only ever be opened in a pool Tuo chose before launch |
| Minimum range width | 200 ticks, about 2% | Blocks dust-thin ranges that would be out of range within minutes |
| Maximum open ranges | 3 for Basis Plus Core, 1 for Delta Hedge Standalone | Keeps the emergency exit, which closes every range in one transaction, within gas limits |
| Spot versus average price | Spot must be within 200 ticks, about 2%, of the pool's 30-minute average | A range cannot be minted or burned into a manipulated or fast-moving price |
| Burn floor | The two legs together must return at least 99.5% of their value at the 30-minute average price | A burn cannot hand value to a sandwich |
Ranges are snapped to the pool's tick spacing by the backend before the call; the engine returns raw ticks.
Fees, valuation and what the dashboard shows
Uniswap V3 does not credit fees to a position until it is touched. A range minted once and never adjusted reports zero fees owed on-chain, however much it has earned. Tuo's off-chain valuation therefore simulates a fee collection every five minutes to show the true accrued fees. The on-chain settlement value, which the contract uses at withdrawal, counts only what the contract itself sees, so it can understate a range's fees until the keeper's burn realises them. That understatement is conservative and favours the position owner. See Valuation.
Uniswap V3 has the usual liquidity-provider risk: a range that leaves its band holds the asset that fell. Tuo's hedge is designed to offset most of that, not all of it. See Market and strategy risk.
For integrators
Ranges are Uniswap V3 NonfungiblePositionManager tokens owned by the vault. The vault keeps the list of LP token ids per position and a reverse index from LP token to position. Valuation on-chain uses the pool's 30-minute arithmetic-mean tick, never the spot price. The relevant events are on Events and integration.