Can a Smart Contract Be Upgraded or Modified after Deployment?

Generally, an immutable smart contract cannot be directly upgraded. However, developers often use proxy patterns where a fixed "proxy" contract delegates calls to an "implementation" contract.

By changing the address of the implementation contract via a governance vote, the logic can be effectively "upgraded" while maintaining the same contract address.

How Does Blockchain Immutability Affect Smart Contract Updates or Bug Fixes?
What Is the Difference between a Transparent Proxy and a UUPS Proxy?
How Can a ‘Proxy Contract’ Allow for an Apparent Code Change without Breaking Immutability?
Does the Proxy Pattern Affect the Cost of Contract Deployment?
What Is the Difference between an ‘Upgradeable’ and an ‘Immutable’ Smart Contract?
What Is the Security Vulnerability Known as “Storage Collision” in Proxy Patterns?
Why Does a Transparent Proxy Need to Check the Caller’s Address?
Can a Signed Derivatives Contract Be Modified after the Signature Is Applied?

Glossar