Liquidity Position NFT: The Uniswap v3 LP NFT Explained
A liquidity position NFT is the ERC-721 token Uniswap v3 mints to represent your exact spot in a pool, and whoever holds it controls the position and collects its fees.
Updated July 20, 2026
What is a liquidity position NFT?
A liquidity position NFT is an ERC-721 token that Uniswap v3 mints to represent a single, specific liquidity position in a specific pool. It is the on-chain receipt that says "this position exists, here is exactly what it holds, and here is who owns it."
This is the big break from Uniswap v2. In v2, when you added liquidity you got back fungible ERC-20 LP tokens. Every provider in a pool held the same interchangeable token, and your share was just a fraction of the total. You could split those LP tokens, send half to a friend, or sell them on a market.
Uniswap v3 changed the model because positions are no longer identical. In v3 you choose a price range, so no two positions are necessarily alike. A position covering a narrow band near the current price is a completely different thing from one spread across the whole curve. A fungible token cannot describe that. An NFT can.
So v3 wraps each position in a non-fungible token minted by the NonfungiblePositionManager contract. Each one gets a unique token ID. That token ID is the handle for everything the position can do: add liquidity, remove liquidity, and collect fees. The LP NFT is the position.
What the Uniswap v3 LP NFT actually encodes
When people ask what does the LP NFT represent, the honest answer is a compact bundle of everything needed to reconstruct your exact spot in a pool. The Uniswap v3 LP NFT is not a JPEG with vibes. It points at real accounting inside the position manager and the pool.
- Pool identity: which two tokens the position is for and which fee tier, for example a token paired with WETH at the 1% tier. This pins the position to one specific pool.
- Tick range: the lower tick and upper tick that define the price band your liquidity is active in. Outside that band your liquidity earns nothing and sits entirely in one of the two assets.
- Liquidity amount: the size of the position, expressed in Uniswap's internal liquidity units for that tick range. This determines how much of each token you have deposited and how much fee you accrue.
- Uncollected fees: the trading fees the position has earned but not yet pulled out. These stay tracked against the position until the holder collects them.
Put together, those fields let anyone read the chain and know precisely what the position is worth, where it is active, and what it is owed. The metadata image Uniswap renders on top, the little gradient card, is just a human-friendly wrapper around this data.
What it means to be the liquidity position NFT holder
The liquidity position NFT holder is the address that owns the ERC-721 token, and ownership is the whole game. Whoever holds the NFT has authority over the position it represents.
The holder can increase liquidity to add more tokens to the same range, decrease liquidity to pull tokens back out, and collect the fees the position has earned. No one else can do those things. There is no separate admin and no shared control. It is a plain ERC-721 ownership check.
Because it is a standard NFT, it can be transferred like any other. Send the token to a new address and that address becomes the new holder, with full control. This is exactly why LP NFTs matter for launches: control over a pool's liquidity is now a single transferable object you can move, escrow, or lock.
One nuance is worth understanding. By default the holder is the one who collects fees, but a position can direct collected fees to any recipient the holder specifies when calling collect. That separation is what makes locking practical, which we get to below.
How the holder collects trading fees
Every swap that trades through your active price range pays the pool's fee, say 0.3% or 1% on Base, and a portion accrues to your position in proportion to how much of the active liquidity you provide. Those fees do not auto-compound into your position. They sit as uncollected fees attached to the LP NFT until someone triggers a collect.
To collect, the holder calls the position manager's collect function referencing the token ID. The contract checks that the caller is the owner or an approved operator, tallies the fees owed in both tokens, and sends them to the recipient address. After a collect, the uncollected balance resets and starts accruing again with the next trades.
This is a pull model, not a push model. Fees are yours the moment they accrue, but they only move to your wallet when you go get them. There is no deadline and no expiry on uncollected fees, so a holder can let them build and sweep periodically.
- Fees are denominated in the pool's two tokens, so a token-plus-WETH pool pays fees in both that token and WETH.
- Collecting fees does not touch your principal liquidity. You can harvest fees repeatedly while the underlying position stays fully deployed.
- Only the holder or an approved operator can collect, which is why who holds the NFT is the question that matters.
How locking a liquidity position NFT works
Here is where LP NFTs get powerful for token launches. Because the position is a transferable ERC-721, you can lock liquidity by sending the NFT into a locker contract that is programmed not to release it until a future date.
A locker is a smart contract that custodies the NFT. Once the LP NFT is inside, the locker will not transfer it back, will not let anyone withdraw the liquidity, and will not let anyone burn the position until the lock timer expires. The liquidity is provably stuck. Anyone can read the chain, see the locker holds the NFT, and confirm the unlock date. That is a far stronger promise than "trust me, I won't rug."
The key detail is the fee routing from earlier. A well-built locker holds the NFT for custody and control, but still lets the original launcher stay the fee receiver. The position keeps earning trading fees the whole time it is locked, and the designated address can still collect them. Locking the principal does not mean giving up the yield.
This is exactly Bubblepad's model. When you launch on Bubblepad, the newly created Uniswap v3 position NFT is placed in a locker for 10 years, so the liquidity cannot be pulled. The original launcher stays the pool's fee receiver and keeps collecting trading fees for that whole decade. Locked liquidity, live earnings.
So the LP NFT is the object that makes a credible fair launch possible. The position is one token, that token can be locked, the lock is public and time-based, and the fee stream survives the lock. If you want to see it in practice, you can launch a token on Bubblepad and watch the position NFT get minted, seeded, and locked in the same transaction.
LP NFT vs v2 LP tokens: why the difference matters
It helps to be precise about why v3 uses NFTs and v2 used fungible tokens, because it changes how liquidity behaves.
In v2, liquidity was spread evenly across all prices from zero to infinity, so every provider's stake was identical and could be a fungible ERC-20. Locking v2 liquidity meant locking those LP tokens. Simple, but capital-inefficient, since most of the liquidity sat at prices that would never trade.
In v3, you concentrate liquidity in a chosen range, which makes positions unique and forces the NFT model. The upside is that the same amount of capital can provide far deeper liquidity right where trading actually happens. The tradeoff is more moving parts: ticks, ranges, and per-position accounting.
For a launcher this matters because single-sided seeding, the pump-style start where the pool begins with only the token and no ETH, is a range decision. You are placing 100% of supply into a specific band above the starting price so buyers walk the price up the curve as ETH comes in. That precise placement is only expressible as a v3 position, which is only representable as an LP NFT, which is what then gets locked. The whole design leans on the NFT being the unit of liquidity.
Frequently asked questions
What does the LP NFT represent?
A Uniswap v3 LP NFT represents one specific liquidity position: which pool and fee tier it is in, the exact tick (price) range it covers, how much liquidity it holds, and the trading fees it has earned but not yet collected. It is the on-chain receipt and the control handle for that position.
Why is a Uniswap v3 LP NFT an ERC-721 instead of a fungible LP token?
Because v3 positions are not identical. Each provider picks a custom price range, so no two positions are necessarily the same, which a fungible ERC-20 cannot describe. An ERC-721 gives each position a unique token ID that encodes its exact range, size, and fees.
Can a locked liquidity position NFT still earn fees?
Yes. A well-designed locker custodies the NFT so the liquidity cannot be withdrawn, but the position keeps earning trading fees the entire time. The designated fee receiver can still collect them. On Bubblepad the position is locked for 10 years while the original launcher stays the fee receiver.
Who controls a Uniswap v3 liquidity position?
The liquidity position NFT holder controls it. Whoever owns the ERC-721 token can add liquidity, remove liquidity, and collect fees for that position. Transfer the NFT and control moves with it, which is why locking it in a contract is a credible way to prove liquidity cannot be pulled.