Locking Uniswap V2, V3, and V4 Liquidity: What's Actually Different
Uniswap V2 LP tokens, V3 positions, and V4 positions all lock through Titan Locker but aren't the same asset - here's exactly what differs (fungible token vs. NFT, fee collection, price ranges) and why it matters for which one you're locking.
Published · Last reviewed · Titan Locker
Uniswap V2 liquidity is a fungible ERC-20 LP token, while V3 and V4 liquidity is a non-fungible position (an NFT) - locking each one is mechanically different even though Titan Locker handles all three. A V2 lock holds an ERC-20 balance; a V3/V4 lock holds one specific position NFT and lets the owner keep collecting its trading fees while it's locked. All three are live on Robinhood Chain (chain ID 4663).
The core difference: fungible token vs. NFT
Uniswap V2 liquidity is full-range - every provider in a pool holds an interchangeable share of the same reserves, represented by one ERC-20 LP token per pool. Two people's V2 LP tokens for the same pool are identical and can be locked, transferred, or combined like any other token.
Uniswap V3 and V4 liquidity is concentrated - each position specifies its own price range (a tick lower and upper bound) and fee tier. Two positions in the exact same pool with different ranges represent genuinely different bets and aren't interchangeable, so they can't be fungible ERC-20 tokens. Instead, each position is minted as its own ERC-721 NFT with its own token ID.
| Uniswap V2 | Uniswap V3 | Uniswap V4 | |
|---|---|---|---|
| Asset type | Fungible ERC-20 LP token | Non-fungible position (ERC-721) | Non-fungible position (ERC-721) |
| Price range | Full range only | Custom tick range per position | Custom tick range per position |
| Identified by | The LP token's contract address | Position manager + token ID | Position manager + token ID |
| Locked as | A token balance in the lock contract | The NFT held by the lock contract | The NFT held by the lock contract |
| Fee collection while locked | Fees compound into the LP token automatically | Owner calls collectFees() on the lock, any time | Owner calls collectFees() on the lock, any time |
| Native ETH representation | Wrapped (WETH) | Wrapped (WETH) | Can be native ETH directly (address(0)) |
| Titan Locker create flow | "Token / LP lock" tab | "LP Position (V3/V4)" tab | "LP Position (V3/V4)" tab |
Why V3 and V4 use NFTs instead of a fungible LP token
A fungible token can only represent something every holder owns an identical, interchangeable share of. Once liquidity has a price range attached, that's no longer true - your position between $0.90 and $1.10 is a different financial instrument than someone else's position between $0.50 and $2.00 in the same pool, even though both are 'liquidity in the ETH/TOKEN pool.' An NFT can hold that position-specific data (range, fee tier, accrued fees); a fungible token can't.
Locking a Uniswap V2 LP token
This works exactly like locking any ERC-20: paste the LP token's own contract address into the "Token / LP lock" tab. Titan Locker reads the pair's real token0/token1 symbols directly from the pair contract, so it displays as a real pair label (like WETH / TLPD) rather than the pair contract's own generic symbol.
Locking a Uniswap V3 or V4 position
Open the "LP Position (V3/V4)" tab, pick the protocol version, and enter the position's token ID - or, for V3, pick it from a list of your wallet's actual positions (V3's position manager supports on-chain enumeration). V4 positions can't be listed this way since V4's position manager doesn't support that on-chain lookup, so V4 still needs a token ID entered directly. Either way, the flow shows you the real underlying pair and fee tier before you confirm, and the locked position keeps earning fees you can collect at any time while the principal stays locked.
Common mistakes
- Trying to lock a V3/V4 position through the plain "Token / LP lock" tab - it needs an ERC-20 address, and a position NFT isn't one. Use the LP Position tab instead.
- Assuming a V3/V4 lock's "locked amount" is a token balance - it isn't; the locked asset is the position NFT itself, identified by its token ID, not a quantity.
- Forgetting that V3/V4 fees don't collect themselves - unlike V2 (where fees compound into the LP token automatically), a locked V3/V4 position needs the owner to call collectFees() to actually receive them.
- Not double-checking the pair and fee tier shown at confirmation - with many positions across many pools and ranges, it's easy to select the wrong token ID by mistake.
Security recommendations
- Verify the pair label and fee tier shown before confirming a lock, not just the token ID number.
- For V3/V4, confirm your wallet actually owns the position (Titan Locker checks this before allowing a lock, but verify the token ID is the one you intended).
- Only lock positions on the position managers Titan Locker has allowlisted - the create flow already restricts you to these, so a position from an unlisted or forked position manager simply won't be lockable, by design.
- Treat a locked position's certificate page as the source of truth for verification - it reads the pair, fee tier, and owner directly from the chain.
Related resources
Frequently asked questions
Can I lock a Uniswap V2 LP token and a V3/V4 position the same way?
No. A V2 LP token is a plain ERC-20 and locks through the "Token / LP lock" tab like any token. A V3/V4 position is an NFT and locks through the separate "LP Position (V3/V4)" tab, by token ID.
Why can't I list my Uniswap V4 positions the way I can for V3?
Uniswap V3's position manager supports on-chain enumeration (it implements ERC721Enumerable), so a wallet's positions can be listed directly from the chain. Uniswap V4's position manager does not implement that interface, so there's no on-chain way to list a wallet's V4 positions - you need the token ID, findable in the Uniswap app or on the block explorer.
Do I keep earning fees on a locked V3 or V4 position?
Yes. The owner can call collectFees() on the lock at any time while the position stays locked - locking the position doesn't require giving up its trading fee income.
Is a V3/V4 position lock's 'amount locked' a token quantity?
No. The locked asset is the position NFT itself - there's no fungible quantity to display. The certificate page shows the position's token ID and its underlying pair instead of a token amount.