Proxy Contract
A smart contract that forwards calls to a separate logic contract, allowing the underlying logic to be upgraded without changing the contract address users interact with.
A proxy contract is a smart contract that holds a persistent address and any associated data, but forwards ("delegates") the actual execution logic to a separate contract, whose address the proxy stores and can be changed.
This pattern is the standard way to build an upgradeable contract (see Kaavon's "Upgradeable Contract" glossary definition): since users and other contracts always interact with the proxy's fixed address, the underlying logic contract can be swapped out for an improved version without requiring anyone to migrate to a new address.
Examples
- Users interact with a proxy contract's fixed address indefinitely, even as the underlying logic it delegates to is upgraded behind the scenes.
- A proxy contract pattern is what makes most upgradeable smart contracts possible, despite smart contract code itself typically being immutable once deployed.
Learn more
Upgradeable Contract
Read the Upgradeable Contract glossary definition
What Is a Smart Contract?
Read the full guide
Diamond Standard (EIP-2535)
Read the Diamond Standard (EIP-2535) glossary definition
Clone Contract (EIP-1167)
Read the Clone Contract (EIP-1167) glossary definition
Bricked Wallet
Read the Bricked Wallet glossary definition