← Glossary

Coins & networks

What Is an Externally Owned Account (EOA)? Wallets vs Contracts

An externally owned account (EOA) is an Ethereum account controlled by a private key that can initiate transactions, as opposed to a contract account, which is controlled by its code and only acts when called.

Key takeaways

Two kinds of account

Ethereum has two types of accounts. ethereum.org lists them as externally owned accounts, controlled by anyone with the private keys, and contract accounts, which are smart contracts deployed to the network and controlled by code. Both have an address and a balance of ETH, but they are created and controlled differently.

How an EOA works

An EOA is what a normal wallet creates. It is controlled by a pair of cryptographic keys: the private key signs transactions, and the address is derived from the public key. Creating an EOA costs nothing, because it is just generating a key. It can hold ETH and tokens, send transactions and call contracts.

How contract accounts differ

A contract account has code and storage and is controlled by that code. It has no private key. According to ethereum.org, a contract can only send messages in response to receiving a transaction, so it cannot act on its own; some EOA must call it first. Contracts are created by a transaction that deploys their code.

Why it matters

When you use a wallet, you are using an EOA. Everything depends on keeping its private key safe. Newer designs let contract accounts act like wallets, with features such as recovery and spending limits, but they are different from a standard EOA. When you send to an address, nothing in the format tells you whether it is an EOA or a contract, so check that you are sending to a person's wallet and not to the wrong kind of address, since some contracts cannot return funds.

Example

You create a wallet and get an address like 0x1234… controlled by your private key. You send a transaction that calls a swap contract. The contract is a contract account with no private key, and it runs only because your EOA called it.

Put it into practice

Keep the key behind your address safe

Your Ethereum address in Scrypt Wallet is an externally owned account backed by a key. Back that key up and never share it with anyone.

Create a free wallet Get Scrypt for Android

Sources and verification

Last reviewed 2026-10-02 by the Scrypt Wallet team. The factual claims on this page, and where each comes from:

  1. An externally owned account is controlled by anyone with the private keys, and a contract account is a smart contract controlled by code. [1]
  2. A contract account can only send messages in response to receiving a transaction. [1]

Sources

  1. Ethereum accounts · ethereum.org · secondary source

Primary sources are protocol papers, specifications, source code or a project's own documentation; secondary sources are wikis and explainers. We checked each claim against the source text on the review date. Found an error? Tell us and we will correct it.

Frequently asked questions

Is my wallet address an EOA?

A standard wallet on Ethereum uses an EOA, controlled by your private key.

Can a contract send funds by itself?

No. It runs only in response to a transaction from an account.

Do EOAs cost anything to create?

No. Creating one is generating a key pair. You only pay fees when you send transactions.

Related terms

Go deeper

Written by the Scrypt Wallet team · Updated 2026-10-02. General education, not financial, tax or legal advice.