How Are Upgrades or Fixes Implemented on an Immutable Smart Contract?

Since the code itself cannot be changed, upgrades are typically implemented by deploying a new, fixed version of the contract. Users must then be migrated to interact with the new contract address.

Alternatively, a design pattern using a proxy contract can be used. The proxy contract acts as a permanent entry point, while its underlying implementation contract, which holds the logic, can be swapped out.

How Does Blockchain Immutability Affect Smart Contract Updates or Bug Fixes?
What Is a Proxy Pattern in the Context of Smart Contract Mutability?
How Does the ‘Delegatecall’ Opcode Enable the Proxy Pattern?
Can a Smart Contract Be Designed with a Mechanism to Update Its Logic despite Immutability?
What Is the Security Vulnerability Known as “Storage Collision” in Proxy Patterns?
Can a Smart Contract Be Designed to Be Upgradable despite Immutability?
What Is the Role of a Proxy Contract in Maintaining Upgradability?
What Happens If the Implementation Contract in a UUPS Setup Is Destroyed?

Glossar