Verfasst von Pablo Gómez
Founder & CEO von Metlabs · Geprüft am 11. Oktober 2026
ERC-7201 mit dem offiziellen Titel Namespaced Storage Layout wurde am 20. Juni 2023 erstellt und hat den Status Final. Die Formel berechnet den Root-Slot jedes Namespace als keccak256(keccak256(id) minus 1), wobei das letzte Byte auf null gesetzt wird. In Solidity lautet dies keccak256(abi.encode(uint256(keccak256(bytes(id))) minus 1)) mit einer Maske, die das letzte Byte auf null setzt. Jeder Schritt hat seinen Grund: Das Subtrahieren von 1 nach dem ersten keccak macht das Urbild des Hashs unbekannt, der zweite keccak vermeidet Kollisionen mit den Slots, die Solidity für dynamische Variablen erzeugt, und das Nullsetzen des letzten Bytes lässt 256 zusammenhängende Slots frei, damit das Struct wachsen kann.
Jede Variablengruppe wird in einem Struct abgelegt, das in diesem Root-Slot verankert ist und mit dem NatSpec-Tag custom:storage-location erc7201 gefolgt vom Namespace-Bezeichner annotiert wird. Das kanonische Beispiel der Spezifikation verwendet den Bezeichner foobar, verankert in erc7201 von foobar.
Bei upgradefähigen Proxys besteht das größte Risiko in Storage-Kollisionen zwischen Versionen oder zwischen Modulen. Weist man jeder logischen Komponente einen eigenen deterministischen und dokumentierten Namespace zu, verringert das dieses Risiko unter den Bedingungen des Schemas und erleichtert Upgrades sowie ein modulares Design. Das Muster ergänzt Ansätze wie UUPS und den Transparent Proxy, die in ERC-1822 und EIP-1967 definiert sind. Die Upgradeable-Bibliothek von OpenZeppelin hat dieses Muster übernommen, mehrere seiner Autoren gehören zum dortigen Team, und es wird typischerweise in modularen Smart Accounts nach ERC-7579 sowie in Diamond- und Modul-Architekturen eingesetzt, in denen mehrere Komponenten denselben Storage-Bereich teilen.
Die Trennung nach Namespaces verringert Kollisionsrisiken, sofern das Schema eingehalten wird. Inkompatible Änderungen innerhalb eines Structs oder Fehler in der Upgrade-Logik schließt sie nicht aus.
Auch bekannt als
- ERC7201
- Namespaced Storage Layout





