金库里显示100份额,为什么不等于100个代币?

在金库页面看到“100 份额”,指的是你持有该金库的 100 个 share,而不是 100 个底层代币(asset)。ERC-4626 把金库份额本身实现为一种 ERC-20 代币,balanceOf 返回的是份额数量;份额代表对金库所持底层资产的一定比例索取权。份额与资产之间…

金库份额与底层资产。假设总资产 1200、总份额 1000,精度对齐,无虚拟份额、费用和限额。
假设总资产 1200、总份额 1000,精度对齐,无虚拟份额、费用和限额。

查看完整图片 ↗

份额是金库股份,资产才是底层代币

在金库页面看到“100 份额”,指的是你持有该金库的 100 个 share,而不是 100 个底层代币(asset)。ERC-4626 把金库份额本身实现为一种 ERC-20 代币,balanceOf 返回的是份额数量;份额代表对金库所持底层资产的一定比例索取权。份额与资产之间的兑换比例由金库的总资产与总份额共同决定,会随收益、亏损、费用和资金进出而变化。份额是账本单位,资产是底层资金,两者不能直接画等号。

一组假设数字

假设某个 ERC-4626 金库当前状态如下(纯教学假设,不代表任何真实金库):

项目 数值
金库总资产 totalAssets 1200 资产
金库总份额 totalSupply 1000 份额
每份对应资产 1200 ÷ 1000 = 1.2 资产/份
你持有份额 100 份
理论对应资产 100 × 1.2 = 120 资产

所以“100 份额”在这组假设下对应约 120 个底层资产,而不是 100 个。如果金库发生过亏损,每份价值也可能低于 1,100 份额对应的资产就会少于 100。需要注意的是,这个除法只是一个简化模型,前提是资产与份额的精度已经对齐,且不存在虚拟份额、偏移等额外机制。资产和份额各自有独立的小数位,若精度不一致,不能直接用原始单位相除,应先按各自 decimals 换算到同一精度。实际换算要看金库实现的 convertToAssets、convertToShares 以及对应的 preview 函数。

比例为什么会变

份额数量在你存入后一般不会自动增加,变化的是每份值多少资产。常见原因有三类:

  1. 收益增加总资产:策略盈利后 totalAssets 上升,总份额不变,每份对应资产变多。
  2. 亏损减少总资产:策略亏损后 totalAssets 下降,每份对应资产变少。
  3. 费用与资金进出:金库可能收取存款费、提现费、管理费等;新用户存入或老用户赎回也会改变总量。

ERC-4626 标准中,convertToAssets 把份额换算成资产,convertToShares 把资产换算成份额。这两个函数给出的是理想情况下的估算值,不包含费用,也不反映链上实际成交条件,标准将其定位为便于展示和集成的平均估算,而不是精确的提现数额。不过,这并不意味着它们只能用于显示;标准也允许实现把它们做成更稳健的换算方式,例如采用时间加权价格,因此它们可以作为价格参考,但不能当作可提现承诺。

看到“份额”先做三步

第一步,确认单位。 看这个数字来自 balanceOf(份额)还是资产余额。ERC-4626 金库的 ERC-20 余额是份额,不是底层代币。

第二步,算比例。 在简化模型下,用 totalAssets ÷ totalSupply 得到每份理论资产值;更稳妥的做法是直接调用 convertToAssets,并留意资产与份额的小数位差异。若总份额为 0,比例没有意义,需看金库具体实现。

第三步,区分理论值与可提值。 理论值用 convertToAssets 估算;实际能提多少,要看 previewRedeem、maxRedeem 以及提现限额、费用、滑点等条件。convertToAssets 不是提现保证,previewRedeem 更接近当前条件下的赎回结果,但仍受链上状态影响。

你看到的数字 更可能是什么 怎么核对
100(金库份额余额) share 数量 查金库 balanceOf
120(按比例换算) 理论资产值 用 totalAssets/totalSupply 计算,或用 convertToAssets
118(赎回预览) 扣费或条件后的估算 查 previewRedeem
0 或很小(可提上限) 受限额约束 查 maxRedeem

常见误解

误解一:100 份额等于 100 代币。 份额与资产按 1:1 兑换,可能在任何时刻刚好成立,但并非只在金库初始且从未变化时才成立;有收益或亏损后,这个比例通常就不再是 1:1。

误解二:换算结果就是到账金额。 convertToAssets 是估算,实际存取应参考对应的 preview 函数;提现还受 maxWithdraw、maxRedeem 等限额影响。

误解三:份额价格固定。 ERC-4626 的份额汇率可变,同一金库在不同时间、不同区块状态下换算结果可能不同。

因此,看到“金库显示 100 份额”,应当理解为:你持有 100 个金库份额单位;按当前总资产与总份额的比例,它理论对应某个数量的底层资产。以上文假设为例是 120,但这不是提现承诺,实际数额要以赎回预览和限额为准。

参考资料