手续费藏在池子里还是等你领:LP 收益的两代记账方式 图 1
手续费藏在池子里还是等你领:LP 收益的两代记账方式 · 图 1

很多做市者对”我的手续费在哪”存在一个默认想象:它像利息一样,每天打进钱包。真实情况更琐碎也更分散:手续费的记账位置由协议版本决定,最常见的是两代设计的分叉,而你的界面未必告诉你它用的是哪一种。

第一代实现把手续费直接折进池子。每笔交易的手续费以两种币的形式留在池子余额里,池子总余额变大,LP 凭证不动。你退出时按当时的池子组成结算,手续费已经混在本金里回账。好处是零操作成本;代价是”收益”和”本金的市值漂移”在同一条资产流里无法分开看,而折进池子的手续费会持续改变两种币的比例,等于替你做了高频再平衡——它影响你下一次进出场时的无常损失基线。对账时,第一代设计的特征是:凭证余额恒定,池子余额上涨,你的赎回数量大于按纯汇率折算的预期。

第二代实现把手续费停在独立记账里。交易费记入单独的累计结构,按每位 LP 的份额比例分配,必须显式领取才回到钱包。好处是收益与本金分离,税务统计和策略评估都能单独取数;代价是领取本身花 gas,忘领就是白白让收益躺在别人的可调用代码里。对账特征是:凭证余额恒定,赎回数量恰好等于按份额结算的本金,收益在领取交易里单独出现。

两代混用是漏账重灾区。聚合界面同时路由多个版本池子时,“我的流动性”显示的是总份额,手续费可能一部分在池子里悄悄复利、一部分在待领取余额里等你。实操上可以用三步反推:第一步,在浏览器里查 LP 凭证转账历史,确定你在哪些池子持有过仓位、时段是什么;第二步,对每个池子调一次只读的待领取查询,零 gas 就知道独立账本里有没有你的钱;第三步,比较同一时段的凭证余额与赎回所得,凭证余额不变而赎回超出汇率折算的部分,就是折进池子那一部分的对应额。

最后提醒一个双重计算的陷阱:仪表盘爱把两部分的数字直接相加展示”累计手续费”,如果它同时把复利进池子的增值算进本金收益,你的报表就会虚胖。健康的记账习惯是各认各账:折池子的那部分按汇率差统计,独立账本的那部分按领取记录统计,两边永不混用同一个来源。记账分得清,收益率才是自己的。

补充一个常见追问:撤出流动性时,待领取手续费会不会丢?在常见实现里,移除流动性的调用通常会自动结算领取,但这条隐含约定并非所有版本如此——老版本池子与部分封装金库就是反例。稳妥的做法是撤仓后立刻查一次待领取余额,确认归零,再关闭页面;如果界面显示”无手续费可领”而链上查询仍有余额,那恰恰说明你发现了两代机制的缝隙,此时手动调用领取比相信前端更可靠。

还有一个容易忽略的差异对账成本的影响:第一代折池设计里,手续费的复利效应是自动发生的,但它的复利路径由池子的定价公式决定,你在不知情时被动完成了再平衡,而第二代手动领取的仓位里,复不复利完全取决于你领完之后做什么——存回池子、换个策略、还是拿去买别的。也就是说,两代记账不只是费用住在哪的问题,还是再平衡决策权归谁的问题。评估自己的时候先想清楚这一点:一个不想管理仓位的 LP 用第一代实现更省心,一个想把再平衡节奏握在自己手里的人,第二代才是工具而不是麻烦,选错代际的人常常把两种设计的差别误读成收益差别。

手续费记账方式因协议版本而异,本文描述的均为常见实现形态;请以协议文档与链上查询结果为准。错误记账会导致收益漏领或重复统计。本文仅为机制科普,不构成投资建议。

手续费藏在池子里还是等你领:LP 收益的两代记账方式 图 2
手续费藏在池子里还是等你领:LP 收益的两代记账方式 · 图 2