Skip to main content

What Is a Proxy Pattern in the Context of Smart Contract Mutability?

A proxy pattern separates the contract's storage (data) from its logic (code). Users interact with a simple, immutable proxy contract, which delegates all function calls to a separate, upgradeable logic contract.

To upgrade, the developer simply points the proxy to a new logic contract address, preserving the contract's state and address.

What Happens to a Contract’s State Variables during a Mutable Upgrade?
Does the Proxy Pattern Affect the Cost of Contract Deployment?
Can ‘Delegatecall’ Be Used for Unauthorized Access to the Proxy’s State?
How Does the ‘Delegatecall’ Opcode Enable the Proxy Pattern?