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)
| Contract | Address |
|---|---|
| Factory | 0xAb6A8AAb7d490007634ef59d424b5d89688a1971 |
| Router | 0x23970b3a5AD7211eC4A858a29258F1e288eE2420 |
| Position Manager | 0x394f12daac66786D04391556AF1363a36eEB7F4B |
| Quoter | 0x121aeB6DEf00F6F67665008CaC1C19805886ed1a |
| Migrator | 0x4122f9B4ee7C18CC6b6b71180B438477D17034AB |
| Tick Lens | 0x621d5704C2B3470D21BaC7Bb47B1b933116551fA |
Fee Tiers
| Fee | Basis Points | Best For |
|---|---|---|
| 0.01% | 100 | Stable pairs (e.g., USDC/EURC) |
| 0.05% | 500 | Stable pairs |
| 0.30% | 3000 | Most token pairs |
| 1.00% | 10000 | Exotic / 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 selectorV3AddLiquidity— add concentrated liquidity with price rangeV3RemoveLiquidity— remove V3 positionsV3Positions— view active V3 positionsV3PoolsList— browse V3 pools
Data
V3 pool data is fetched from a GraphQL subgraph via the useV3GraphQL hooks:useV3Pools, useV3ProtocolStats, and useV3Positions.