Zum Hauptinhalt springen
Change page

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

Übersicht der ERC-4626-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 shares
6)

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 shares
7)

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.

Weiterführende Literatur

War dieser Artikel hilfreich?