ERC-4626 Tokenized Vault Standard
Letzte Aktualisierung der Seite: 21. Oktober 2025
Einführung
ERC-4626 ist ein Standard zur Optimierung und Vereinheitlichung der technischen Parameter von renditebringenden Vaults. Er bietet eine Standard-API für tokenisierte renditebringende Vaults, die Anteile an einem einzigen zugrunde liegenden ERC-20-Token repräsentieren. ERC-4626 skizziert außerdem eine optionale Erweiterung für tokenisierte Vaults, die ERC-20 nutzen, und bietet grundlegende Funktionen für das Einzahlen und Abheben von Token sowie das Auslesen von Kontoständen.
Die Rolle von ERC-4626 in renditebringenden Vaults
Kreditmärkte, Aggregatoren und intrinsisch verzinsliche Token helfen Benutzern, die beste Rendite für ihre Krypto-Token zu finden, indem sie verschiedene Strategien ausführen. Diese Strategien werden mit leichten Variationen durchgeführt, was fehleranfällig sein kann oder Entwicklungsressourcen verschwendet.
ERC-4626 in renditebringenden Vaults wird den Integrationsaufwand verringern und den Zugang zu Renditen in verschiedenen Anwendungen mit geringem speziellem Aufwand für Entwickler freischalten, indem konsistentere und robustere Implementierungsmuster geschaffen werden.
Der ERC-4626-Token wird vollständig in EIP-4626 (opens in a new tab) beschrieben.
Asynchrone Vault-Erweiterung (ERC-7540)
ERC-4626 ist für atomare Einzahlungen und Rücknahmen bis zu einem bestimmten Limit optimiert. Wenn das Limit erreicht ist, können keine neuen Einzahlungen oder Rücknahmen eingereicht werden. Diese Einschränkung funktioniert nicht gut für ein Smart Contract-System mit asynchronen Aktionen oder Verzögerungen als Voraussetzung für die Interaktion mit dem Vault (z. B. Protokolle für reale Vermögenswerte, unterbesicherte Kreditprotokolle, Cross-Chain-Kreditprotokolle, Liquid Staking-Token oder Versicherungs-Sicherheitsmodule).
ERC-7540 erweitert den Nutzen von ERC-4626-Vaults für asynchrone Anwendungsfälle. Die bestehende Vault-Schnittstelle (deposit/withdraw/mint/redeem) wird vollständig genutzt, um asynchrone Anfragen (Requests) geltend zu machen.
Die ERC-7540-Erweiterung wird vollständig in ERC-7540 (opens in a new tab) beschrieben.
Multi-Asset-Vault-Erweiterung (ERC-7575)
Ein fehlender Anwendungsfall, der von ERC-4626 nicht unterstützt wird, sind Vaults, die über mehrere Vermögenswerte oder Einstiegspunkte verfügen, wie z. B. Liquidity-Provider-Token (LP-Token). Diese sind im Allgemeinen unhandlich oder nicht konform, da ERC-4626 vorschreibt, selbst ein ERC-20 zu sein.
ERC-7575 fügt Unterstützung für Vaults mit mehreren Vermögenswerten hinzu, indem die ERC-20-Token-Implementierung aus der ERC-4626-Implementierung ausgelagert wird.
Die ERC-7575-Erweiterung wird vollständig in ERC-7575 (opens in a new tab) beschrieben.
Voraussetzungen
Um diese Seite besser zu verstehen, empfehlen wir Ihnen, sich zunächst über Token-Standards und ERC-20 zu informieren.
ERC-4626 Funktionen und Merkmale:
Methoden
asset
1function asset() public view returns (address assetTokenAddress)Diese Funktion gibt die Adresse des zugrunde liegenden Tokens zurück, das für den Vault zur Buchführung, Einzahlung und Abhebung verwendet wird.
totalAssets
1function totalAssets() public view returns (uint256)Diese Funktion gibt den Gesamtbetrag der zugrunde liegenden Vermögenswerte zurück, die vom Vault gehalten werden.
convertToShares
1function convertToShares(uint256 assets) public view returns (uint256 shares)Diese Funktion gibt die Menge an shares (Anteilen) zurück, die vom Vault gegen die bereitgestellte Menge an assets (Vermögenswerten) eingetauscht werden würde.
convertToAssets
1function convertToAssets(uint256 shares) public view returns (uint256 assets)Diese Funktion gibt die Menge an assets zurück, die vom Vault gegen die bereitgestellte Menge an shares eingetauscht werden würde.
maxDeposit
1function maxDeposit(address receiver) public view returns (uint256 maxAssets)Diese Funktion gibt den maximalen Betrag an zugrunde liegenden Vermögenswerten zurück, der in einem einzigen deposit-Aufruf eingezahlt werden kann, wobei die Anteile für den receiver (Empfänger) geprägt werden.
previewDeposit
1function previewDeposit(uint256 assets) public view returns (uint256 shares)Diese Funktion ermöglicht es Benutzern, die Auswirkungen ihrer Einzahlung im aktuellen Block zu simulieren.
deposit
1function deposit(uint256 assets, address receiver) public returns (uint256 shares)Diese Funktion zahlt assets der zugrunde liegenden Token in den Vault ein und gewährt dem receiver das Eigentum an den shares.
maxMint
1function maxMint(address receiver) public view returns (uint256 maxShares)Diese Funktion gibt die maximale Anzahl an Anteilen zurück, die in einem einzigen mint-Aufruf geprägt werden können, wobei die Anteile für den receiver geprägt werden.
previewMint
1function previewMint(uint256 shares) public view returns (uint256 assets)Diese Funktion ermöglicht es Benutzern, die Auswirkungen ihrer Prägung im aktuellen Block zu simulieren.
mint
1function mint(uint256 shares, address receiver) public returns (uint256 assets)Diese Funktion prägt genau shares Vault-Anteile für den receiver, indem assets der zugrunde liegenden Token eingezahlt werden.
maxWithdraw
1function maxWithdraw(address owner) public view returns (uint256 maxAssets)Diese Funktion gibt den maximalen Betrag an zugrunde liegenden Vermögenswerten zurück, der mit einem einzigen withdraw-Aufruf vom Guthaben des owner (Eigentümers) abgehoben werden kann.
previewWithdraw
1function previewWithdraw(uint256 assets) public view returns (uint256 shares)Diese Funktion ermöglicht es Benutzern, die Auswirkungen ihrer Abhebung im aktuellen Block zu simulieren.
withdraw
1function withdraw(uint256 assets, address receiver, address owner) public returns (uint256 shares)Diese Funktion verbrennt shares vom owner und sendet genau assets Token aus dem Vault an den receiver.
maxRedeem
1function maxRedeem(address owner) public view returns (uint256 maxShares)Diese Funktion gibt die maximale Anzahl an Anteilen zurück, die durch einen redeem-Aufruf vom Guthaben des owner eingelöst werden können.
previewRedeem
1function previewRedeem(uint256 shares) public view returns (uint256 assets)Diese Funktion ermöglicht es Benutzern, die Auswirkungen ihrer Einlösung im aktuellen Block zu simulieren.
redeem
1function redeem(uint256 shares, address receiver, address owner) public returns (uint256 assets)Diese Funktion löst eine bestimmte Anzahl von shares vom owner ein und sendet assets des zugrunde liegenden Tokens aus dem Vault an den receiver.
totalSupply
1function totalSupply() public view returns (uint256)Gibt die Gesamtzahl der nicht eingelösten Vault-Anteile im Umlauf zurück.
balanceOf
1function balanceOf(address owner) public view returns (uint256)Gibt die Gesamtmenge an Vault-Anteilen zurück, die der owner derzeit besitzt.
Übersicht der Schnittstelle
Ereignisse
Deposit-Ereignis
MUSS ausgelöst werden, wenn Token über die Methoden mint und deposit in den Vault eingezahlt werden.
1event Deposit(2 address indexed sender,3 address indexed owner,4 uint256 assets,5 uint256 shares6)Wobei sender der Benutzer ist, der assets gegen shares eingetauscht und diese shares an den owner übertragen hat.
Withdraw-Ereignis
MUSS ausgelöst werden, wenn Anteile von einem Einzahler über die Methoden redeem oder withdraw aus dem Vault abgehoben werden.
1event Withdraw(2 address indexed sender,3 address indexed receiver,4 address indexed owner,5 uint256 assets,6 uint256 shares7)Wobei sender der Benutzer ist, der die Abhebung ausgelöst und shares, die dem owner gehören, gegen assets eingetauscht hat. receiver ist der Benutzer, der die abgehobenen assets erhalten hat.
