Yearn V3 收益为何未全计入:核对Accountant费用与利润锁定
链小知 · 进阶 · 核验 · 依官方文档整理
从已有报告和配置区别年化管理费、绩效费、protocol fee 与锁定份额,避免将报告利润、share增长或收益率当即时到账。
开始前准备
- 准备已有 V3 金库/策略实际版本、asset和share精度、Accountant/Factory配置、报告事件、last_report/current_debt 与利润解锁记录的区块/时间。
- 只阅读已有配置与官方固定实现;不调用report、管理配置、提款或RPC。没有配置时不套用固定费率。
1. 先定位收费发生在哪一层
把多策略 Vault、内部 Tokenized Strategy、Accountant 与 Factory 地址分别写入盘点表。V3 core 不设置 Accountant 时该层 fees/refunds 为0;这不代表底层策略、协议、界面和Gas全部免费。
Accountant 是可选可定制合约,不能把通用 Accountant 公式套给任意自定义地址。Tokenized Strategy 有自身 performanceFee/recipient;已读固定实现按自身利润计算,区别于上层 Accountant 的管理费配置。
检查结果:收费层与实际合约类型明确,未把一层零费推为整条路径零费。
2. 保留默认和金库自定义配置
对于与固定358d074…通用 Accountant 匹配的记录,抄 customConfig(vault) 的 custom 标志;未启用时才使用 defaultConfig。保留 managementFee、performanceFee、maxFee、refundRatio 等原数值,bps 除10000才是比例。
不要把 managementFee/performanceFee 常见宣传数字当本仓位配置,也不要因旧默认存在就忽略自定义覆盖。原配置来源或版本不明时费额仍未知。
检查结果:每项费率有实际记录和单位,自定义覆盖状态已保存。
3. 按报告间隔核管理与绩效费用
固定 Accountant 管理费基数是 strategyParams.current_debt × (报告时间-last_report) × managementFee /10000/31556952,属于按年折算和报告间隔结算,不是直接按钱包全部余额每日扣款。
绩效费仅在gain>0时按 gain×performanceFee/10000 加入;maxFee>0 时又将总费用限制在 gain×maxFee/10000 内。公式中的原整数遵守asset精度和截断;亏损报告、健康检查及refund需另核,不机械把两项上限前数字当最终费用。
检查结果:报告时间、债务基数、gain与配置对应,公式中间值和最终返回分开。
4. 避免重复计算Protocol Fee
当前 Protocol Fees 说明该费用取 Accountant 总fees的份额,不再直接从全部利润按同样比例收一次。文档100利润、20%绩效、10%protocol的例子是总费20中分2给协议、18给费用接收方,不是20+10。
文档列 default及per-vault override的Factory接口,而固定Vault3.1.1调用 protocol_fee_config();按原Factory ABI判断使用方式,不虚构所有版本都有相同重载。事件 protocol_fees 与 total_fees 属asset口径,实际分配还会转换成share,保留舍入差异。
检查结果:Protocol Fee的基数和包含关系明确,Factory版本未知不补配置。
5. 分开报告资产与锁定份额
在固定Vault报告中分别列 gain/loss/current_debt/total_fees/total_refunds;fee share铸给Accountant和协议收款人,剩余利润可通过铸给金库自身的share逐步解锁,不能把这些share说成用户钱包新资产。
核已有 profitMaxUnlockTime、fullProfitUnlockDate、profitUnlockingRate、lastProfitUpdate。时间为秒/Unix时点;固定Vault rate 使用1e12扩展比例,未完全解锁时 unlockedShares=rate×经过秒数/1e12,结果是share原单位,不是USDC每秒或APR。
检查结果:事件资产、fee shares与锁定/解锁share使用各自单位和时点。
6. 解释PPS变化而非承诺收益
锁定利润期间 effective totalSupply 扣除逐步已解锁的share,转换率随时点变化;后续报告可能重设加权解锁期限,不能把一次fullProfitUnlockDate永远当最终日期。
固定Tokenized Strategy3.1.0还含持续accrual相关路径,不把多策略Vault的lastProfitUpdate公式和只在report收费判断套给所有策略。亏损可先冲利润缓冲,再影响PPS;锁定机制不是保本,也不表示底层资金闲置或用户提款全额成功。
检查结果:PPS/解锁解释限定具体版本,未外推全产品固定收益或全额可提。
7. 形成费用与接收证据清单
保存报告时点、配置版本、gross gain/loss、fees/refunds、锁定份额与转换估算;与原界面显示比较时用同一读取时间和币种。只看到年化显示或新报告不标用户收益已到账。
只有既有退出事件及接收记录能支持兑现阶段;费用管理者的收款也不能替代个人收款。配置、报告或接收缺证时列为待核,保留策略、合约和市场风险。
检查结果:已将报告收益、费分配、估值和兑现拆开,并注明缺少的记录。
怎样确认完成
- 已还原已知配置下的计费基数与版本。
- 利润锁定/解锁和兑现分开,不承诺APY、保本或当前提款流动性。
常见错误与边界
- Protocol Fee 是总fees中的份额,不能重复加成全部profit费用。
- profitUnlockingRate 的扩展单位、share精度和asset精度不同。