Docs · 04
Liquidity lock
The pool position sits in a contract that can do one thing: collect trading fees. It has no withdraw function and cannot be upgraded.
Every coin's liquidity is locked from the moment it exists. The whole supply goes into the pool in the launch transaction, as one position held by a contract that can do one thing: collect trading fees. It has no withdraw function, and it can't be upgraded to get one.
The locker
The pool position is created by the locker and belongs to it directly. It is not a transferable receipt that someone could hand on or sell.
- Owns
- Every coin's pool position
- Can do
- Collect the position's trading fees
- Who can trigger a collection
- Anyone
- Withdraw function
- None
- Owner or admin
- None
- Upgradeable
- No, it is not a proxy
The collected fees are split between the creator and the protocol, as described on Fees. Nothing else can leave the locker.
If someone opens the pool first
On Uniswap v4 anyone can open a pool for any pair. A coin's address depends on a random value in the creator's launch transaction, so nobody can know it in advance; and if a pool for that address already existed, the launch would simply fail and nothing would be created. The coin's liquidity can only ever go into a pool the launch opened itself, at the asset's start price.
Other pools for the same coin can exist, with another fee or hook. They are not the coin's launch pool and hold none of its locked liquidity.
Rounding dust
When the position is created, rounding leaves a tiny remainder of the coin that can't be placed into liquidity: a few thousand of its smallest units for an ETH pair, far below a single coin in any case. It stays in the locker forever. Nobody can withdraw it either.