Morpho Vault V2 Dead Deposit
A dead deposit is a security measure against ERC-4626 inflation attacks (read more).
On an empty vault, execute:
vault.mint(TARGET_SHARES, 0x000000000000000000000000000000000000dEaD);The dead deposit must be the very first transaction on an empty vault. If any user deposit occurs first, the inflation attack may already have been executed.
How Many Shares to Mint
The number of shares to mint depends on the vault's underlying asset decimals. Use the table below for common tokens:
| Token | Decimals | Shares to Mint | Assets You'll Spend | USD Cost |
|---|---|---|---|---|
| WETH | 18 | 1,000,000,000 | ~0 ETH | < $0.1 |
| wstETH | 18 | 1,000,000,000 | ~0 wstETH | < $0.1 |
| sUSDS | 18 | 1,000,000,000 | ~0 sUSDS | < $0.1 |
| sUSDe | 18 | 1,000,000,000 | ~0 sUSDe | < $0.1 |
| siUSD | 18 | 1,000,000,000 | ~0 siUSD | < $0.1 |
| cbBTC | 8 | 10,000,000,000,000,000 | 0.01 BTC | ~$630 (at current BTC price) |
| WBTC | 8 | 10,000,000,000,000,000 | 0.01 BTC | ~$630 (at current BTC price) |
| USDC | 6 | 1,000,000,000,000,000,000 | 1 USDC | ~$1 |
| PYUSD | 6 | 1,000,000,000,000,000,000 | 1 PYUSD | ~$1 |
| USDT | 6 | 1,000,000,000,000,000,000 | 1 USDT | ~$1 |
New or unlisted asset? Use the formula:
targetShares = max(1e9, 10^(6 + max(0, 18 - decimals)))How to Execute via Explorer
1. Verify the vault is empty
Navigate to the Morpho Vault V2 contract on explorer → Read Contract → check that totalSupply() returns 0.
2. Approve the vault to spend your tokens
Go to the underlying token's explorer page → Write Contract → call approve(vaultAddress, assetsAmount).
Use the approval amounts below:
| Decimals | Approval amount |
|---|---|
| 18 | 1000000000 |
| 8 | 1000000 |
| 6 | 1000000 |

3. Mint shares to 0xdead
Go to the vault contract on Etherscan → Write Contract → call mint(TARGET_SHARES, 0x000000000000000000000000000000000000dEaD).
Use the Shares to Mint value from the table above for your token.

4. Verify the dead deposit
On the vault contract → Read Contract → call convertToAssets(1000000000000000000). The result should be approximately 10^decimals (i.e. 1.0 token per share).
Additional Requirements
Beyond the vault-level dead deposit, the following must also be satisfied:
0xdeadmust have 1e9 supplyShares in each variable rate market with a non-zero cap on the vault.0xdeadmust have 1e9 shares in each Morpho Vault V1 with a non-zero cap on the vault, as well as in each market in their withdraw queue.
Why These Numbers
The required shares satisfy two constraints simultaneously:
- Inflation attack prevention: at least 1e6 assets must be in the vault, limiting any single manipulation to a relative change of at most 1/1,000,000. This requires
shares >= 1e6 × virtualShares. - Share price rounding protection: prevents the share price from crashing to near-zero when an adapter rounds tiny balances to 0. This requires
shares / (shares + virtualShares) >= 0.999.
The inflation attack constraint dominates (by a factor of 1,000), so the formula max(1e9, 1e6 × virtualShares) satisfies both. The 1e9 floor applies the existing per-market/per-vault minimum for 18-decimal assets where virtualShares = 1.
virtualShares = 10^max(0, 18 - decimals) is a constant defined in the VaultV2 constructor.