---
# System prepended metadata

title: 'Chapter 1: Accounts and Wallets'

---

# Chapter 1: Accounts and Wallets

<br>

Before diving deep and building applications we need to understand what are ethereum accounts and how they work. We also need to differentiate between accounts and wallets. With the current infrastructure and products these terms are often used interchangeably. We will then only understand the true meaning of account abstraction.

<br>

![](https://hackmd.io/_uploads/HkAK-U1T3.png)

<br>

## Ethereum Accounts

<br>

### EOA's

So similar to bitcoin ethereum have a private-public key accounts. Each address (derived from public key) has a **nonce** and **balance** associated to it. The private key is used to prove ownership of the account while sending transactions to the blockchain. These types of accounts are known as **Externally Owned Accounts** as they are controlled by an external actor having the private key.

<br>

### Contract Accounts

Apart from EOA's ethereum also have something called **Contracts**. Contracts also have an address similar to EOA which is also associated with a nonce and balance but with two additional properties **Code Hash** and **Storage Hash**. Contract Account's are controlled by code executed by the Ethereum Virtual Machine.They have associated code and data storage, but not private keys. They "control themselves.” These accounts do so in the way determined by their smart contract code.

<br>
<br>

![](https://hackmd.io/_uploads/rJV68Pk6n.png)

<div style='text-align: center;'>
    
[Check out these slides to understand ethereum and its working in detail](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)
                                        
</div>

<br>

<div style='text-align: center;'>

<br>

<br>
    
![](https://hackmd.io/_uploads/rkaE9PJpn.png)

    
</div>

<br>
<br>

## Ethereum Wallets

<br>

There isn't any ofiicial defination for ethereum wallets. Some people use it interchangebly for ethereum account. But I think there needs to be clear distinction between accounts and wallets. So lets define Wallets. We will call wallet as any **User Interface** that helps you interact and control your Ethereum account. An ethereum account can have multiple different wallets. A wallet can provide interface to control certain features of an account or essentially the full account.

<br>
<hr>
<br>

In the next chapter we will discuss the drawbacks of EOA's and what will be the future of Accounts and Wallets.

<br>

Further reading resources

[Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)
[Ethereum docs](https://ethereum.org/en/developers/docs/accounts/)
[Etherscan explaination](https://info.etherscan.com/understanding-ethereum-accounts/)

<br>

#### Sugar Kid
[Twitter](https://twitter.com/sugarbaybe)

<br>

<div style="display: flex; justify-content: space-between;">
    
[Chapter 0: Introduction](https://hackmd.io/GZGSAA3eTvGeOYxEjEKRfg?view)
    
[Chapter 2: Account abstraction and ERC-4337](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)

</div>
