Join our Newsletter — 33% off our NHI Course
Architecture & Implementation

EIP-1967

← Back to Glossary
By NHI Mgmt Group Updated October 29, 2026 Domain: Architecture & Implementation

EIP-1967 is an Ethereum standard that defines fixed storage slots for proxy metadata such as the implementation, admin and beacon addresses. Using standardised slots reduces the risk that proxy bookkeeping overwrites application state or clashes with implementation storage.

Why EIP-1967 Matters for Proxy Contracts

EIP-1967 addresses one of the most subtle failure modes in upgradeable smart contracts: storage collision. By reserving fixed slots for proxy metadata, it keeps the proxy’s bookkeeping separate from application state and from the implementation contract’s own storage layout.

That separation matters because proxy patterns rely on delegate execution. The proxy holds the state, while the implementation supplies the logic, so any overlap between metadata and application variables can corrupt balances, ownership, upgrade pointers, or other persistent contract data.

How the Standardized Slots Work

The standard defines well-known locations for the implementation address, the admin address, and the beacon address. Those slots are intentionally outside the ordinary sequential storage layout used by most Solidity variables, which makes accidental overlap far less likely.

This design also makes proxy metadata easier to inspect and reason about. Tooling, explorers, and auditors can look for the same slot positions across many proxy deployments instead of inferring custom layouts or guessing where upgrade data lives.

What EIP-1967 Protects Against

EIP-1967 mainly reduces integrity risk. Without fixed slots, a new implementation can unintentionally introduce a state variable that lands on top of existing proxy metadata, or a proxy can overwrite an application variable when it stores upgrade information.

It also reduces operational ambiguity during upgrades. When the implementation pointer and related metadata are stored in standard locations, teams have a clearer basis for monitoring upgrade events, verifying contract configuration, and reviewing whether a proxy is pointing at the expected logic.

Limits and Implementation Considerations

EIP-1967 is a storage convention, not a complete security model. It does not prevent malicious upgrades, unsafe implementation code, logic bugs, or poor access control over who may change the proxy configuration.

It is most effective when paired with disciplined upgrade governance, careful review of implementation storage layout, and off-chain monitoring that treats proxy metadata as security-relevant state rather than as incidental bookkeeping.

Risk and Threat Considerations

Proxy storage collisions can create silent corruption, and that makes them especially dangerous in upgradeable systems. A single bad upgrade or misdesigned proxy can alter the metadata that controls execution, administration, or future upgrades, sometimes without an obvious immediate failure.

Failure mechanism: A proxy and its implementation write to overlapping storage locations, so new logic, metadata, or admin updates overwrite persistent application state or the proxy’s own control fields.

Impact: Funds, permissions, upgrade paths, and core application data can be corrupted or redirected, and recovery may require contract migration rather than a simple code fix.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

NIST SP 800-53 Rev 5, OWASP ASVS, CIS Controls v8 and OWASP SAMM set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
NIST SP 800-53 Rev 5CM-3 — Configuration Change ControlEIP-1967 affects controlled proxy upgrades and metadata changes.
SC-28 — Protection of Information at RestProxy storage slots protect persistent on-chain state from unintended overwrite.
Recommendation — Apply CM-3 to review and approve proxy storage changes before upgrade deployment. Use SC-28 to preserve stored contract state from accidental or unauthorized overwrite.
OWASP ASVSV15 — Secure Coding and ArchitectureEIP-1967 is an architecture pattern for avoiding storage collisions in upgradeable contracts.
Recommendation — Apply V15 to validate upgradeable-contract storage layouts and proxy design choices.
CIS Controls v8CIS-16 — Application Software SecurityEIP-1967 is a secure application design concern for smart-contract deployments.
Recommendation — Use CIS-16 to review smart-contract upgrade mechanisms for state integrity risks.
OWASP SAMMArchitecture Risk Assessment — Architecture Risk AssessmentThe term concerns architecture-level risk in proxy-based contract design.
Recommendation — Assess proxy architecture for storage-collision risk before approving upgrades.

Practitioner Guidance

Why practitioners should care: EIP-1967 is valuable because it gives auditors, developers, and operators a predictable way to distinguish proxy metadata from business logic storage. That predictability reduces upgrade risk and makes proxy state easier to verify after deployment.

What to watch for: Treat any proxy upgrade as a storage-sensitive change, not just a code swap. The most common mistake is assuming that a correct implementation address alone means the upgrade is safe, when storage layout compatibility is what actually preserves state integrity.

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Reviewed and updated by the NHIMG editorial team on October 29, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org