头寸
在 V3 中,每个流动性头寸由一个**非同质化代币(ERC-721 NFT)**表示。与 V2 的同质化 LP 代币不同,每个 V3 头寸都是唯一的,因为它编码了特定的价格范围和流动性数量。头寸属性
每个头寸 NFT 存储:| 属性 | 描述 |
|---|---|
token0 | 地址较小的代币地址 |
token1 | 地址较大的代币地址 |
fee | 池费率等级(100、500、3000 或 10000) |
tickLower | 价格范围的下界 |
tickUpper | 价格范围的上界 |
liquidity | 提供的流动性数量 |
头寸生命周期
1. 铸造(创建)
通过调用 Position Manager 创建新头寸,需提供:- 代币对和费率等级(标识池)
- Tick 范围(
tickLower、tickUpper) - 期望的代币数量
tokenId。
2. 增加流动性
在不改变范围的情况下向现有头寸添加更多流动性。追加的代币必须匹配你范围内的当前价格比例。3. 减少流动性
从头寸中移除部分或全部流动性。这会将流动性转换回代币,由 Position Manager 持有直到被领取。4. 领取手续费
领取累积的交易手续费。手续费以池的实际代币累积,必须显式领取 — 它们不像 V2 那样自动复利。5. 销毁
在移除所有流动性并领取所有手续费后,NFT 可以被销毁。这是可选的 — 一个空的头寸 NFT 没有经济价值。头寸状态
头寸根据当前池价格可处于三种状态之一:| 状态 | 条件 | 组成 | 是否赚取手续费? |
|---|---|---|---|
| 在范围内 | tickLower < currentTick < tickUpper | token0 和 token1 的混合 | 是 |
| 高于范围 | currentTick ≥ tickUpper | 100% token0 | 否 |
| 低于范围 | currentTick ≤ tickLower | 100% token1 | 否 |
手续费计算
头寸赚取的手续费与以下因素成正比:- 流动性份额 — 头寸的流动性相对于每个 Tick 的总活跃流动性
- 在范围内的时间 — 手续费仅在头寸处于范围内时累积
- 交易量 — 通过头寸范围的交易越多,手续费越多
与 V2 的主要区别
| V2 LP 代币 | V3 头寸 NFT | |
|---|---|---|
| 代币标准 | ERC-20 | ERC-721 |
| 同质化 | 是 | 否 |
| 价格范围 | 全范围(隐式) | 自定义范围(显式) |
| 手续费领取 | 自动复利 | 手动领取 |
| 可组合性 | 容易(同质化、可转让) | 可能但更复杂 |