{"id":"ERC-7575","name":"Multi-Asset ERC-4626 Vaults","status":"Draft","chain":"both","category":{"id":"defi","name":"DeFi Patterns","description":"Vaults, bonds, and financial primitives"},"journeyStages":[{"id":"management","name":"Asset Management","description":"Managing assets over time"}],"uxImpact":"Users interact with vaults supporting multiple entry assets for the same share token — like LP tokens or multi-collateral vaults. Design implications: show asset selector dropdown for deposit, display all supported entry points with their respective rates, use share() method to show the common output token, implement vault() lookup on share token for discovery. Design decisions: whether to recommend optimal entry asset based on rates/liquidity, how to represent the relationship between multiple vault contracts and single share token, handling different deposit limits per asset.","hasDetailedContent":true,"content":{"id":"ERC-7575","summary":"ERC-7575 enables ERC-4626 vaults to accept multiple different assets for deposit while issuing a single share token. Users can deposit ETH, USDC, DAI, or other supported assets into the same vault and receive the same shares. This simplifies UX by accepting \"whatever the user has\" instead of forcing a specific input asset.","applicability":{"whenToUse":["Your users must swap to the exact asset a vault accepts.","Your product addresses: different vaults for same strategy but different assets.","The flow should deliver: deposit USDC directly, vault handles conversion internally.","You are designing a multi-asset deposit selector experience with visible states and recovery paths."],"whenToAvoid":["List all accepted assets prominently on vault page.","Show rate comparison and highlight best option.","Show asset selector as primary deposit interface.","No token balances, swaps, lending, or yield flows appear in the product."]},"designerTakeaways":["You can design UI that delivers deposit USDC directly.","You can design UI that delivers one vault accepts all related assets.","You can design UI that delivers \"Deposit any stablecoin you have\", clear and flexible."],"problemsSolved":[{"problem":"Users must swap to the exact asset a vault accepts","oldWay":"Have USDC, vault wants DAI → swap first → then deposit (2 steps)","newWay":"Deposit USDC directly, vault handles conversion internally","impact":"critical"},{"problem":"Different vaults for same strategy but different assets","oldWay":"ETH vault, WETH vault, stETH vault - fragmented liquidity","newWay":"One vault accepts all related assets","impact":"high"},{"problem":"Users confused about which asset to use","oldWay":"\"Should I deposit DAI or USDC?\" - arbitrary choice anxiety","newWay":"\"Deposit any stablecoin you have\" - clear and flexible","impact":"high"},{"problem":"Extra gas for pre-swap before deposit","oldWay":"Swap on DEX → approve → deposit (3 transactions)","newWay":"Deposit directly (1-2 transactions)","impact":"medium"}],"uxPatterns":[{"name":"Multi-Asset Deposit Selector","description":"Choose any supported asset to deposit","mockup":"concept/agent-task","userFlow":["User sees list of accepted assets","Balances shown for each asset","Select asset they have most of","Enter amount to deposit","See share conversion rate","Deposit directly"]},{"name":"Best Asset Suggestion","description":"Recommend optimal deposit asset based on user balances","mockup":"concept/agent-task","userFlow":["Analyze user's wallet balances","Compare rates for each accepted asset","Suggest best option based on balance + rate","One-click deposit with suggested asset","Allow override if user prefers different asset"]},{"name":"Multi-Asset Withdrawal","description":"Choose which asset to receive on withdrawal","mockup":"concept/agent-task","userFlow":["User sees their share balance","Choose output asset","Compare rates between assets","Select amount to withdraw","Receive chosen asset directly"]},{"name":"Accepted Assets Display","description":"Show all assets a vault accepts","mockup":"concept/agent-task","userFlow":["User browses vault details","See all accepted assets at a glance","Understand vault composition","Decide to deposit based on flexibility"]}],"uiComponents":[{"name":"MultiAssetSelector","description":"Dropdown/list for selecting from multiple deposit assets","states":["collapsed","expanded","selected","disabled"],"props":["assets[]","balances{}","rates{}","onSelect"]},{"name":"AssetRateComparison","description":"Show conversion rates for each accepted asset","states":["loading","loaded","stale"],"props":["assets[]","rates{}","bestRate"]},{"name":"AcceptedAssetsBadge","description":"Compact display of all accepted assets","states":["compact","expanded"],"props":["assets[]","maxDisplay"]},{"name":"SmartAssetSuggestion","description":"AI/logic based suggestion for best deposit asset","states":["analyzing","suggested","overridden"],"props":["userBalances{}","vaultRates{}","onAccept","onOverride"]}],"antiPatterns":[{"pattern":"Not showing all accepted assets upfront","why":"Users may not realize they can use their existing balance","instead":"List all accepted assets prominently on vault page","severity":"critical"},{"pattern":"Hiding conversion rate differences","why":"Users may get worse rate without knowing","instead":"Show rate comparison and highlight best option","severity":"high"},{"pattern":"Forcing single asset deposit first","why":"User has to discover multi-asset later, friction","instead":"Show asset selector as primary deposit interface","severity":"high"},{"pattern":"No indication of vault composition","why":"Users can't understand diversification risk","instead":"Show what % of vault is in each asset","severity":"medium"}],"onMonad":[{"aspect":"Rate Updates","ethereum":"Rates may change between view and deposit","monad":"Fast finality means rate shown = rate received","designImplication":"Can show rates as \"guaranteed for 30 seconds\""},{"aspect":"Asset Swapping","ethereum":"Internal swaps add 15+ seconds to deposit","monad":"Internal conversion nearly instant","designImplication":"Multi-asset deposit feels as fast as single-asset"},{"aspect":"Reserve Impact","ethereum":"N/A for deposit assets","monad":"Native MON deposits must account for reserve","designImplication":"If MON is accepted, show spendable vs reserved balance"},{"aspect":"Rate Arbitrage","ethereum":"Users may try to game rate differences","monad":"Fast blocks make arbitrage harder","designImplication":"Can show more stable, reliable rates"}],"keyTakeaways":["Multi-asset vaults accept \"whatever you have\" - major UX win","Always show all accepted assets and user's balance in each","Compare rates between assets, highlight best option","Allow choosing withdrawal asset, not just deposit asset","On Monad: fast finality means rate shown = rate you get"],"technicalNotes":"ERC-7575 extends ERC-4626 to allow multiple entry assets. The vault tracks a \"share\" asset (the vault token) separate from the underlying accounting unit. deposit() and mint() accept different input assets with internal conversion. The standard defines asset listing and preview functions for each accepted asset."},"sources":[{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/eip-7575","type":"official-spec"},{"label":"Discussion","url":"https://ethereum-magicians.org/search?q=ERC-7575","type":"discussion"}],"urls":{"canonical":"https://www.eipsfordesigners.com/standards/ERC-7575","markdown":"https://www.eipsfordesigners.com/standards/ERC-7575/content.md","agent":"https://www.eipsfordesigners.com/standards/ERC-7575/agent.md","api":"https://www.eipsfordesigners.com/api/standards/ERC-7575","official":"https://eips.ethereum.org/EIPS/eip-7575","discussion":"https://ethereum-magicians.org/search?q=ERC-7575"},"freshness":{"lastReviewed":"2026-04-05","lastUpdated":"2026-04-05"}}