ERC-7575: Multi-Asset ERC-4626 Vaults
ERC-4626 assumes one underlying asset per vault. ERC-7575 generalises: a single share token can be backed by multiple assets, each with its own convert/deposit/withdraw overloads. Useful for stable-coin baskets, multi-asset yield aggregators, RWA fund-of-fund structures.
Required Interface (Sketch)
solidity
function asset(address share) external view returns (address);
function shareToken() external view returns (address);
function convertToShares(address asset, uint256 assets) external view returns (uint256);
function deposit(address asset, uint256 assets, address receiver)
external returns (uint256 shares);Neo Equivalent
The Neo C# port keeps the share NEP-17 contract and a separate vault contract that accepts multiple asset types via OnNEP17Payment. Each asset has its own exchange-rate oracle (or constant ratio for basket vaults).
Live on Neo TestNet
Both implementations are deployed on Neo N3 TestNet (network magic 894710606).
| Implementation | Contract Hash | Deploy Tx |
|---|---|---|
Solidity (neo-solc) | 0x985a293c07f1b024f37a4ffc1d7fdf14edfe46b1 | (reused — see 0x985a293c07f1b024f37a4ffc1d7fdf14edfe46b1) |
Neo C# (nccs) | 0xd85564c8072776e0c5252797f5ba9dfb7e401ffc | (reused — see 0xd85564c8072776e0c5252797f5ba9dfb7e401ffc) |
Cross-implementation invocations match on assetCount. Source pairs under docs/standards-mirror/deployments/erc-7575/.
