UnitFlow LogoUnitFlow Docs

V3 — Concentrated Liquidity

NewSelect "V3" in the version picker to use this mode

V3 introduces concentrated liquidity, allowing LPs to allocate capital within a specific price range. This increases capital efficiency — LPs earn more fees per unit of capital when the price trades within their chosen range.

Contracts (Arc Testnet)

ContractAddress
Factory0xAb6A8AAb7d490007634ef59d424b5d89688a1971
Router0x23970b3a5AD7211eC4A858a29258F1e288eE2420
Position Manager0x394f12daac66786D04391556AF1363a36eEB7F4B
Quoter0x121aeB6DEf00F6F67665008CaC1C19805886ed1a
Migrator0x4122f9B4ee7C18CC6b6b71180B438477D17034AB
Tick Lens0x621d5704C2B3470D21BaC7Bb47B1b933116551fA

Fee Tiers

FeeBasis PointsBest For
0.01%100Stable pairs (e.g., USDC/EURC)
0.05%500Stable pairs
0.30%3000Most token pairs
1.00%10000Exotic / volatile pairs

Key Differences from v2.5

  • Price output is estimated via the V3 Quoter contract (exactInputSingle)
  • Fee tier must be selected before swapping
  • No multi-hop routing — each swap uses a single pool per fee tier
  • Native USDC is mapped to WUSDC internally; users see "USDC"
  • Liquidity positions are NFTs (not fungible LP tokens)

Components

  • V3SwapCard — swap interface with fee tier selector
  • V3AddLiquidity — add concentrated liquidity with price range
  • V3RemoveLiquidity — remove V3 positions
  • V3Positions — view active V3 positions
  • V3PoolsList — browse V3 pools

Data

V3 pool data is fetched from a GraphQL subgraph via the useV3GraphQL hooks:useV3Pools, useV3ProtocolStats, and useV3Positions.