Overview
Storage collisions are a critical issue in upgradeable proxies, libraries, and diamond patterns. When multiple contracts or versions share storage, overlapping slots cause data corruption. ERC-7201 and ERC-8042 solve this by deterministically calculating storage slots from namespace identifiers, ensuring each module has isolated storage regions.Quick Start
- ERC-7201 (Recommended)
- ERC-8042 (Diamond Storage)
When to Use Each Standard
ERC-7201 (Namespaced Storage Layout):- General purpose upgradeable contracts
- UUPS proxies
- Transparent proxies
- Modular contract architectures
- Extra collision resistance (last byte cleared)
- EIP-2535 Diamond Standard contracts
- Multi-facet proxy patterns
- Legacy diamond implementations
- Simpler formula when compatibility required
API Documentation
calculateErc7201
Calculate ERC-7201 namespaced storage slot
calculateErc8042
Calculate ERC-8042 diamond storage slot
Storage Collision Prevention
Without Namespaced Storage
With ERC-7201
Specification References
- ERC-7201 - Namespaced Storage Layout
- ERC-8042 - Diamond Storage (EIP-2535)
- EIP-1967 - Proxy Storage Slots
- EIP-2535 - Diamond Standard

