
份额是金库股份,资产才是底层代币
在金库页面看到“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 函数。
比例为什么会变
份额数量在你存入后一般不会自动增加,变化的是每份值多少资产。常见原因有三类:
- 收益增加总资产:策略盈利后 totalAssets 上升,总份额不变,每份对应资产变多。
- 亏损减少总资产:策略亏损后 totalAssets 下降,每份对应资产变少。
- 费用与资金进出:金库可能收取存款费、提现费、管理费等;新用户存入或老用户赎回也会改变总量。
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,但这不是提现承诺,实际数额要以赎回预览和限额为准。