提供流动性 (V3)
V3 允许 LP 将流动性集中在特定价格范围内,以获得更高的资本效率。每个头寸都是一个具有唯一参数的 NFT。
创建头寸
1. 选择池参数
- 代币对:两种代币
- 手续费等级:0.01%、0.05%、0.3% 或 1%(参阅 手续费等级)
- 价格范围:
[tickLower, tickUpper](参阅 Ticks 与范围)
2. 获取当前池状态
3. 计算 Tick 范围
将你期望的价格范围对齐到池的 tick 间距:
4. 授权代币
5. 铸造头寸
token0 的地址必须小于 token1。调用前请先排序。
使用原生 KAS
如果其中一个代币是 KAS,将其作为 value 发送,而不是授权 WKAS:
增加流动性
向现有头寸(相同 tick 范围)追加更多代币:
领取手续费
领取累积的交易手续费:
移除流动性
1. 减少流动性
2. 提取代币
减少流动性后,代币由 Position Manager 持有。调用 collect() 来提取:
3. 销毁 NFT(可选)
移除所有流动性并领取所有代币/手续费后:
单边头寸
你可以创建完全在当前价格之上或之下的头寸:
- 每个头寸都是一个 NFT — 跟踪
tokenId 以进行后续操作
- 手续费必须主动领取(不会自动复利)
- 超出范围的头寸不会赚取手续费,直到价格重新进入范围
- 范围越窄 = 资本效率越高,但需要更积极的管理
- 使用 Position Manager 上的
multicall() 可以在一笔交易中批量执行减少流动性 + 领取