Once deployed to a blockchain, a smart contract's code cannot be changed. An upgradeable smart contract separates a "proxy," which users call, from an "implementation," which holds the logic, so that the implementation the proxy points to can be replaced. The address and stored data remain; only the behavior changes. upgradeTo() is a widely used name for the function that performs this replacement, used to fix vulnerabilities, add features, or respond to regulation. Depending on who holds the right to upgrade, the "unchangeable code" that users rely on can in fact change at the discretion of a particular party.

Examples

Zeroichi Arakawa's upgradeTo(Leviathan) (2026) consists of one hundred upgradeable contracts on Ethereum and a single ERC-721 token. Each contract is named a "citizen," and once its set time has passed, anyone can trigger its switch. A switched citizen moves to an implementation carrying one function taken from existing stablecoins and protocols—blacklisting, asset freezing, identity verification, taxation—after which only the token holder may replace it further. The citizens' data does not change across the switch: the earlier code reads it as a starry sky, the later code as fragments of a body after the frontispiece of Hobbes's Leviathan. It was shown in "An Exhibition of Auto-Destructive Art" at NEORT++ in October 2026.