First-depositor / share-inflation guard
Veda (BoringVault)'s assessment for RD-F-075 — scored yellow on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
BoringVault's enter() mints shares where shareAmount is passed by MINTER_ROLE (Teller). Teller computes: shares = depositAmount.mulDivDown(ONE_SHARE, accountant.getRateInQuoteSafe(asset)). This means share price is driven by Accountant exchange rate, NOT by totalAssets/totalSupply ratio. Classic first-depositor donation attack (donate assets to vault → inflate share price → next depositor receives far fewer shares) is architecturally blocked because pricing is not derived from vault asset balance. However: (a) startingExchangeRate constructor parameter has no on-chain minimum — a vault deployed with a near-zero initial rate could allow abnormal initial share distribution; (b) no seed deposit is enforced at BoringVault level; (c) Share Lock Period (post-mint lock period) mitigates flash-loan manipulation. The protection is structural but relies on operator setting a reasonable startingExchangeRate. Yellow: first-depositor inflation in its classic form is blocked; residual risk from unco
Sources #
- DocsVeda Smart Contract Security — Share Lock Perioddocs.veda.tech/security-and-risk-controls/smart-contract-security: Share Lock Period — newly issued vault shares locked briefly to neutralize flash loan manipulationretrieved 2026-05-17
- AccountantWithRateProviders.sol — startingExchangeRate no minimumAccountantWithRateProviders.sol — startingExchangeRate uint96 parameter, no minimum enforced in constructor; deviation bounds exist for rate updatesretrieved 2026-05-17
- TellerWithMultiAssetSupport.sol — deposit share calculationTellerWithMultiAssetSupport.sol — deposit(): shares = depositAmount.mulDivDown(ONE_SHARE, accountant.getRateInQuoteSafe(depositAsset)); minimumMint slippage check; deposit cap checkretrieved 2026-05-17
Methodology #
Determine whether the vault has a first-depositor guard (seed deposit on deploy, virtual-share offset, or floor-check).
See the full factor methodology and distribution across all protocols →