Library · Crypto, word by word · Inside Ethereum

What is a contract account?

A contract account is an Ethereum account controlled by smart contract code rather than a private key. It has an address and can hold ETH and tokens, but it acts only when a transaction or message calls it, and then does exactly what its code says.

What it means for you

Sending funds to a contract address is not like paying a person: what happens next is decided by the code, and some contracts have no way to send funds back out. Before sending to or approving a contract, a block explorer shows whether it is a contract, whether its code is verified, and whether it can be upgraded.

How it works

Like every account, a contract account has a nonce, a balance, a code hash and a storage root. The code hash points to the program stored on the EVM, and the storage root commits to the contract's own data, such as token balances. Creating one costs gas because it uses network storage. A contract cannot start a transaction by itself; it can only send messages to other accounts while running in response to a transaction that an EOA signed. Smart contract wallets are contract accounts whose code decides which signatures count.

Sources: ethereum.org: Ethereum accounts, ethereum.org: Account abstraction · checked 4 October 2026

Often confused with

Contract account vs EOAContract account vs Smart contract wallet

Related words

Smart contractEVMVerified contractProxy contractEOA

Educational content, not financial advice. Written by hand and checked against the source named above. Something wrong? Tell us and we reply within two business days.