ERC-4626 virtual-share offset (OZ ≥4.9)
Multipli's assessment for RD-F-074 — scored yellow on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
MultipliVault.sol inherits from ERC4626Upgradeable (OpenZeppelin). OZ ERC4626Upgradeable ≥ v4.9 includes virtual-share offset via _decimalsOffset(). The default implementation returns 0, meaning only 1 virtual share/asset is added (10^0=1) — the weakest form of virtual-offset protection. OZ notes offset=0 is 'non-profitable' for a single attacker deposit at scale but weaker than offset>0 against multi-user scenarios. The actual MultipliVault.sol source code is not accessible (GitHub raw file returns 404; no Etherscan-verified addresses published) — it is unknown whether Multipli overrides _decimalsOffset() to a larger value. The oz_contracts_version is null in the data cache. Shieldify June 2025 ERC-4626 audit scope covers this contract but the PDF is inaccessible. Yellow: OZ base class provides nominal protection; override status unknown; source unverifiable from public data.
Sources #
- AuditShieldify Audits Portfolio — Multipli Vault Security ReviewShieldify audit #95 — Multipli Vault Security Review (June 2025, 'DeFi, ERC-4626 Vault' scope): covers this contract; PDF inaccessibleretrieved 2026-05-17
- Multipli-libs/Barebones-MultipliVault — GitHubBarebones-MultipliVault: ERC4626Upgradeable inheritance confirmed; raw MultipliVault.sol source returns 404retrieved 2026-05-17
- OZ ERC4626Upgradeable.sol — GitHubOZ ERC4626Upgradeable source — _decimalsOffset() default returns 0; virtual-share formula: totalSupply() + 10**_decimalsOffset()retrieved 2026-05-17
Methodology #
Determine whether ERC-4626 vaults use OpenZeppelin ≥4.9 virtual-share offset pattern to prevent first-depositor share-inflation.
See the full factor methodology and distribution across all protocols →