Smart contract

A smart contract is a piece of software that sits on a blockchain at its own address and does exactly what its code says each time a transaction calls on it. When you send a stablecoin or trade on a decentralized exchange, a smart contract (not a clerk at a company) is what actually moves the money.

Where a USDC balance actually lives

Where is your USDC, physically? Not in the wallet app. On Ethereum every USDC balance is an entry in one contract at 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, and a transfer is a message telling that contract to change two entries.

How big is that ledger? Opened at 05:31 UTC on November 9, 2026, explorer Blockscout’s USDC page listed roughly 46.1 billion of the dollar stablecoin on Ethereum, held by 9,582,702 addresses and tracked by that single program.

Ethereum.org’s developer docs are blunter than most explainers, calling a smart contract “simply a program that runs on the Ethereum blockchain.” Contracts count as accounts (they can hold a balance and be sent transactions), yet no person controls one once it’s deployed. The comparison the docs borrow from Nick Szabo is a vending machine. Money and a choice go in, a snack comes out.

Code first, contract law second

Don’t let the name fool you, because a smart contract is not automatically something a court would enforce.

The Law Commission of England and Wales drew that line in advice to the government published on November 25, 2021. It looked at “smart legal contracts,” where code defines or performs the obligations of a legally binding contract, and concluded that the current legal framework “is clearly able to facilitate and support” their use. Whether a given piece of code created obligations depends on the facts, and nothing here is legal advice.

Why “immutable” needs a footnote

Ethereum.org’s smart contract page also says contracts can’t be deleted by default and that interactions with them are irreversible. A second page, on upgrading contracts, explains the exception, in which developers place a fixed proxy contract in front and let it forward each call to a logic contract that can be replaced later. The page states the cost plainly. “Users must trust developers not to modify smart contracts arbitrarily.”

USDC follows that design. Blockscout, a block explorer that reads verified code, labels the address a proxy whose current logic contract is called FiatTokenV2_2, and the proxy’s source includes an upgradeTo function.

The contract’s event log, read the same morning, records three swaps since it went live on August 3, 2018, dated August 27, 2020, April 26, 2021 and January 8, 2024. Each time, the address and every balance stayed where they were while the rules underneath changed. So before trusting a contract with money, check its explorer page for a proxy label, because that label means someone can still swap the code behind it.