# Ethereum accounts: keys, contract code and delegated accounts

An Ethereum account is a record in the network’s state, identified by an address. A traditional externally owned account uses a private key; a contract account runs code. EIP-7702 also allows a key-controlled account to delegate code execution, so the old rule that externally owned accounts never have code is incomplete.

Evidence: [Ethereum accounts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/accounts/index.md); [EIP-7702: Set Code for EOAs](https://raw.githubusercontent.com/ethereum/EIPs/ac912ca6a9685590345dd8e5736cda75976d0131/EIPS/eip-7702.md); [Ethereum protocol upgrade history](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/ethereum-forks/index.md)

Canonical: https://degreesofsatoshi.com/encyclopedia/ethereum-accounts/
Published: 2026-10-02
Substantively modified: 2026-10-02
Independently verified by an automated reviewer: 2026-10-02T15:10:23.134Z
Data current through: 2026-10-02

AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied.

## Key facts

- **Identifier:** An address identifies an account, not necessarily a person ([Ethereum accounts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/accounts/index.md))
- **Wallet:** Software that interacts with accounts ([Ethereum accounts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/accounts/index.md))
- **Delegation:** EIP-7702 delegation persists until changed or cleared ([EIP-7702: Set Code for EOAs](https://raw.githubusercontent.com/ethereum/EIPs/ac912ca6a9685590345dd8e5736cda75976d0131/EIPS/eip-7702.md))

## An account is a state record, not a wallet application

Account state includes a native balance, a nonce and commitments to code and storage. A wallet is the interface and signing arrangement used to interact with that state; installing a second wallet does not create a second copy of the assets.

A contract can maintain token balances for many accounts inside its own storage. The native balance displayed for an address therefore does not summarize every token or position associated with it.

Evidence: [Ethereum accounts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/accounts/index.md); [Ethereum Virtual Machine](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/evm/index.md)

## Compare an account balance with Bitcoin outputs

Bitcoin spends complete unspent transaction outputs and creates new outputs, commonly returning change. Ethereum instead updates an account’s native balance and nonce. In an illustrative fee-free comparison, spending a 5-unit Bitcoin-style output to pay 2 units creates a 2-unit payment and 3-unit change output; an account model debits 2 from a balance of 5, leaving 3.

Actual transactions also pay fees. Neither model turns an address into proof of a person’s identity. See [Bitcoin’s UTXO model](/encyclopedia/what-is-a-utxo/) for the output-level explanation.

Evidence: [Ethereum accounts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/accounts/index.md); [Bitcoin developer guide: transactions](https://developer.bitcoin.org/devguide/transactions.html)

## A key and a program authorize actions differently

A traditional externally owned account signs protocol transactions with its private key. A contract account executes programmed authorization rules when called, such as requiring signatures from two of three designated participants.

In an illustrative shared treasury, one person’s signature may be enough for an ordinary key-controlled account but insufficient for the contract’s two-signature rule. The contract’s actual code, rather than its label, determines the threshold.

Evidence: [Ethereum accounts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/accounts/index.md); [Introduction to smart contracts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/smart-contracts/index.md)

## Delegation changes the old two-box explanation

Pectra introduced EIP-7702, which lets an externally owned account authorize a pointer to code that runs in that account’s context. The account can still originate transactions; its behavior is no longer described by an empty-code assumption.

The authorization is consequential because delegation persists. It is not merely permission for one website visit. The delegate code can implement useful restrictions, but the protocol-level delegation itself grants broad execution capabilities.

Evidence: [EIP-7702: Set Code for EOAs](https://raw.githubusercontent.com/ethereum/EIPs/ac912ca6a9685590345dd8e5736cda75976d0131/EIPS/eip-7702.md); [Ethereum protocol upgrade history](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/ethereum-forks/index.md)

## An address does not explain the whole control arrangement

A familiar address format does not reveal whether keys are shared, a custodian controls them or delegated logic is present. Inspecting code and authorization matters more than inferring ownership from the way an address looks.

Account recovery also depends on that arrangement. A conventional lost key has no built-in reset desk; a programmed account may provide recovery, but only through the rules and parties its implementation actually supports.

Evidence: [Ethereum accounts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/accounts/index.md); [EIP-7702: Set Code for EOAs](https://raw.githubusercontent.com/ethereum/EIPs/ac912ca6a9685590345dd8e5736cda75976d0131/EIPS/eip-7702.md); [Introduction to smart contracts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/smart-contracts/index.md)

## Questions

### Can an externally owned account execute code?

Yes, with EIP-7702 delegation. Its delegated execution coexists with key-based transaction origination, so older statements that EOAs always lack code need qualification.

Evidence: [EIP-7702: Set Code for EOAs](https://raw.githubusercontent.com/ethereum/EIPs/ac912ca6a9685590345dd8e5736cda75976d0131/EIPS/eip-7702.md)

### Does one account mean one human owner?

No. Keys can be held by services or groups, and contract authorization can involve several participants. An address alone does not establish a civil identity.

Evidence: [Ethereum accounts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/accounts/index.md); [Introduction to smart contracts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/smart-contracts/index.md)

### Is a wallet address stored inside my phone?

Wallet software keeps signing information or access to it. The account and asset records themselves are part of Ethereum’s shared state.

Evidence: [Ethereum accounts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/accounts/index.md); [Ethereum Virtual Machine](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/evm/index.md)

## Claims and scope

### ethereum-accounts-quick-answer

An Ethereum account is a record in the network’s state, identified by an address. A traditional externally owned account uses a private key; a contract account runs code. EIP-7702 also allows a key-controlled account to delegate code execution, so the old rule that externally owned accounts never have code is incomplete.

Scope: {"collection":"ethereum","dataAsOf":"2026-10-02","blockHeight":null}

### ethereum-accounts-fact-identifier

Identifier: An address identifies an account, not necessarily a person

Scope: {"collection":"ethereum","dataAsOf":"2026-10-02","blockHeight":null}

### ethereum-accounts-fact-wallet

Wallet: Software that interacts with accounts

Scope: {"collection":"ethereum","dataAsOf":"2026-10-02","blockHeight":null}

### ethereum-accounts-fact-delegation

Delegation: EIP-7702 delegation persists until changed or cleared

Scope: {"collection":"ethereum","dataAsOf":"2026-10-02","blockHeight":null}

## Sources

- [Ethereum accounts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/accounts/index.md) — ethereum.org contributors. Supports accounts versus wallet software and account state fields. The older empty-code EOA description is qualified using EIP-7702. Locator: Account types; an account examined; a note on wallets. Retrieved: 2026-10-02T14:35:40.369782+00:00.
- [EIP-7702: Set Code for EOAs](https://raw.githubusercontent.com/ethereum/EIPs/ac912ca6a9685590345dd8e5736cda75976d0131/EIPS/eip-7702.md) — Ethereum Improvement Proposals. Defines persistent EOA code delegation, continued transaction origination and the account-wide consequences of delegate code. Locator: Abstract; persistence of code delegation; transaction origination; security considerations. Retrieved: 2026-10-02T14:35:51.249142+00:00.
- [Ethereum protocol upgrade history](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/ethereum-forks/index.md) — ethereum.org contributors. Records shipped Pectra changes including EIP-7702 and EIP-7251; supports dated historical upgrade context. Locator: Prague-Electra (Pectra); Paris (The Merge); London. Retrieved: 2026-10-02T14:42:49.753070+00:00.
- [Ethereum Virtual Machine](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/evm/index.md) — ethereum.org contributors. Supports deterministic execution, opcodes and the distinction between temporary execution memory and persistent state. Locator: State transition function; EVM instructions; storage. Retrieved: 2026-10-02T14:35:40.399163+00:00.
- [Bitcoin developer guide: transactions](https://developer.bitcoin.org/devguide/transactions.html) — Bitcoin developer documentation. Bitcoin spends entire unspent outputs and creates new outputs; change is a new output. Locator: Introduction; inputs and outputs; UTXO. Retrieved: 2026-10-02.
- [Introduction to smart contracts](https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/smart-contracts/index.md) — ethereum.org contributors. Supports contract code/state, deterministic rules, illustrative vending logic, external-data limits and multisignature access. Locator: What is a smart contract; a digital vending machine; limitations; multisig. Retrieved: 2026-10-02T14:35:40.398357+00:00.

## Revision history

- 2026-10-02: First publication after primary-source research and independent automated verification.
- 2026-10-02: Added a primary-source comparison of account balances and Bitcoin UTXOs with explicit fee-free arithmetic assumptions.

## Cite this entry

Degrees of Satoshi editorial project. “Ethereum accounts: keys, contract code and delegated accounts.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/ethereum-accounts/
