A Beginner’s Guide to Ethereum Wallets
By: Ofir Beigel | Last updated: 3/9/22
This post covers Ethereum wallets – those pieces of software, or hardware, that allow us to interact with the Ethereum network. In this article, I will explain what Ethereum wallets are in detail, cover the different types available and also recommend the best wallets for beginners and advanced users.
Don’t Like to Read? Watch Our Video Guide Instead
Ethereum Wallets Summary
Ethereum wallets allow you to hold Ether as well as interact with smart contracts. Beginners will be better off using wallets that do not allow smart contract functionality, as they are much simpler to use. The best Ethereum wallets for beginners are:
For a full list of Ethereum-compatible wallets, take a look at chapter 5 – Popular Ethereum wallets.
If you want a complete, non technical explanation of how Ethereum and Ethereum wallets work, keep on reading. Here’s what I’ll cover:
- What is an Ethereum Wallet?
- Accounts and Addresses Explained
- Sending Ether Between Accounts
- Types of Ethereum wallets
- Popular Ethereum Wallets
- Units of Ether
- Ethereum Gas
- Frequently Asked Questions
At its core, an Ethereum wallet (also known as a client) holds your private key – the “secret password” that gives you control over your coins. It also supplies you with a public Ethereum address, which people can use to send you Ethereum’s currency, known as Ether (ETH).
An Ethereum address is a long string of letters and numbers starting with a “0x”. Here’s an example:
This is as far as Bitcoin wallets and Ethereum wallets go in terms of similarities.
Many non-technical users think of Ether as a currency in the same sense they view Bitcoin. They buy Ether in hopes its price will rise, they pay for stuff with Ether and more. However, Ether wasn’t designed for the same purpose as Bitcoin.
If you’ve watched our video “What is Ethereum?” you know that Ethereum is a network of independent computers working together as one supercomputer. This super computer executes pieces of code known as contracts (or smart contracts).
Interacting with contracts requires more complex communication than just sending X amount of money from Y to Z like Bitcoin does. Ethereum wallets are the tool we use for this communication. In order to truly understand Ethereum wallets, we need to first understand how Ethereum is built.
With Ethereum there are two types of accounts:
Externally Owned Accounts (EOAs)
The most basic type of account in Ethereum is called an EOA. Similar to how a Bitcoin wallet operates, EOAs have an Ethereum address that is controlled by a private key.
A person can open as many EOAs as they like. In addition to sending and receiving Ether, EOAs have the ability to create smart contracts and trigger them.
Contract accounts are accounts that have code (aka a smart contract) associated with them. Every contract deployed to the Ethereum network has its own account which includes a unique Ethereum address. However, unlike an external account a contract account doesn’t have a private key that controls it.
So how is a contract account controlled?
The code that defines the contract includes a set of pre-defined triggers which control the account. In other words, the conditions to control how the contract operates are hard-coded from the get-go.
Similar to EOAs, contract accounts can receive Ether, and if triggered, send Ether or even create additional contract accounts (if they were programmed to do so).
It’s important to note that contracts can’t be changed once they have been launched, so the author must be very thorough in drafting the conditions for each trigger.
EOAs can interact with other EOAs and with contracts through messages. These messages are “wrapped” inside transactions which are paid for in Ether. So while Bitcoin transactions are used only to transfer value, Ethereum transactions are used for a variety of reasons:
- Transfer of value – The simplest form of transaction, sending Ether between accounts.
- Create a new Smart contract – Creating a new contract is done by sending a transaction that includes the contract’s code.
- Trigger a contract – Sending a transaction can also activate a specific contract to perform an action. For example, when you send money to an ICO’s contract account address, you’re actually activating a contract that sends you tokens in return (more on tokens here).
Now that you understand how Ethereum is built and that transactions are in fact used to help accounts talk to each other, we can move on to Ethereum wallets.
Smart contract wallets
Some wallets will only allow you to transfer value (i.e. send Ether between accounts). Other wallets will allow you to also deploy or trigger a contract. These wallets are known as “Smart contract wallets”, sometimes referred to as “web 3.0 wallets”.
Similar to Bitcoin, wallets are sometimes referred to as clients or nodes. There are two types of clients – full clients and light clients.
A full node is a computer that holds the entire history of the Ethereum blockchain, from its inception until today. Running a full node has disadvantages like increased memory and computer usage, however it allows you to verify transactions on the Ethereum blockchain without needing to trust anyone else’s word for it.
Full nodes are an integral part of the Ethereum network, as they are the “muscles” of the network that help execute contracts in a decentralized manner. Each node that receives a new block of transactions also executes the code inside these transactions.
There are different programs to help you run an Ethereum full node. The most common ones are Geth and Parity.
Geth – Short for Go Ethereum. Developed by the Ethereum Foundation (A non-profit organization established to develop the code and community for Ethereum), Geth is the most popular and widely-used program.
OpenEthereum (previously Parity) – A private company based in London, whose mission is to enable businesses and organizations to capitalize on blockchain technology. They developed software to run full nodes for Ethereum and are considered the second most popular full client.
Just for reference, at the time of this article there are 5301 nodes running Geth and 398 nodes running OpenEthereum. All full nodes are smart contract wallets – meaning they can deploy smart contracts to the Ethereum network.
Light nodes, similar to Bitcoin’s SPV wallets, are programs that rely on 3rd party full nodes in order to get information when needed, rather than holding a full copy of the blockchain. This means they require less space and can operate on devices with limited space, such as mobile phones.
Day-to-day Ethereum users will usually use a light node for their wallet since it’s easier to install and operate. If you don’t intend to write smart contracts any time soon, you can use any type of light wallet listed below for the most user-friendly experience.
There are many popular Ethereum wallets on the market. Here are some of the more popular wallets out there.
If you’re serious about security, I suggest storing your Ethereum on a hardware wallet. A hardware wallet is a piece of hardware that stores your private key offline. When you want to send Ether, you connect the device to your computer and conduct the transaction securely.
While being the most secure way to store your coins, hardware wallets aren’t free and cost anywhere between $50-$100 (plus shipping). Hardware wallets are generally not smart contract wallets by design, and often they can only send and receive Ether and ERC-20 tokens.
Today’s leading hardware wallets TREZOR, Ledger and KeepKey all of which give you the option to store Ethereum on them. Here’s my TREZOR review, my Ledger Nano X Review and my KeepKey review. They are all great choices, but I personally use a Ledger.
MyEtherWallet (or MEW for short) is a site that makes the experience of interacting with Ethereum’s blockchain easier. It is one of the first Ethereum light wallets, is open-source, as well as being a smart contract wallet.
You can access MEW through your internet browser or through their mobile apps for iOS and Android. When using MEW, you can send & receive Ether, ERC20 tokens and even Ethereum Classic. Also, it’s important to know that the private key for MEW is stored on your computer in an encrypted file and not on the website. This means MEW doesn’t have access to your coins.
Security-wise, there are some things to look out for. Using a web browser as an interface opens a door to two types of attacks:
Phishing – A fraudulent attempt to steal your private keys by impersonating the website.
DNS attacks – Redirecting your internet activity to an alternative malicious server, usually on public WiFi.
You can use MEW’s interface to control your hardware wallet and use it as a smart contract wallet as well.
MetaMask started off as a browser extension that can be used on Chrome, Firefox and Brave. Since then, it has launched iOS and Android apps with its own built-in browser. In its default settings, it can only hold Ether and ERC-20 tokens, but other compatible blockchain networks can also be added manually. It has a built-in coin purchasing mechanism and even has Hierarchical Deterministic (HD) settings – meaning your wallet can create an almost infinite amount of addresses.
Similar to MEW, MetaMask is open source, however unlike MEW, the private keys are stored on your browser in an encrypted way with password protection and are not downloaded to your computer.
Exodus is a Bitcoin and Altcoin desktop wallet with beautiful design and an intuitive interface. The wallet can be used purely for sending and receiving Ether and is not a smart contract wallet. I’ve reviewed the wallet in the past and thought it was one of the best I’ve come across so far.
When it comes to limitations for Exodus, keep in mind that it’s not 100% open source. Many components inside Exodus are open source, but not all of them. This means that the code has not been fully reviewed by the community.
The wallet is available as a desktop version and a mobile app. Exodus supports both ETH and ETC (Ethereum Classic). Exodus is a non-custodial wallet that stores the private key on your machine and not on any external server. This means you have full control (and full responsibility) over your coins.
Edge is a multi-currency, open source mobile cryptocurrency wallet. Thanks to the open source development of the product, Edge is considered to be exceptionally secure. On top of that, Edge also offers beginner friendly features, such as a list of businesses that accept Bitcoin. Edge is available for both iOS and Android.
For those of you who wish to store Ethereum offline and not use a hardware wallet, you can print out an Ethereum paper wallet. MyEtherWallet allows you to print an Ethereum paper wallet just like the one you have in Bitcoin. Similar to BitAddress.org, the site will create a private and public key pair with the click of a button. You can then print out this information and store it in a safe place, so no external hacker will be able to get your coins.
One more option that’s available is to encrypt your private key, so that if you or anyone else wants to use the coins they will need to know the password to decrypt it.
You should NEVER share your private key with anyone. In the image above my private key is publicly exposed but it’s because there are no coins in this wallet. The minute someone knows your private key, they have access to your coins.
Using ETHaddress will probably be a relatively secure way of storing Ethereum. However, ETHaddress can be used only with Ethereum (not Ethereum Classic). Also, if you ever want to use your coins for payment or to send them to someone else you will need to import the keys into an online wallet (e.g. Exodus, Edge) and only then will you be able to use them.
While Bitcoin can be divided into 100,000,000 units with the smallest unit called a Satoshi, Ether can be divided into 1,000,000,000,000,000,000 units (1 quintillion), with the smallest one called a Wei. The name Wei comes from Wei Dai, a cryptography activist who is known for supporting widespread use of strong cryptography and privacy-oriented technologies.
Fees for transactions, which we will discuss in a moment, are usually calculated in Giga Wei or GWei. So 1,000,000,000,000,000,000 Wei equals 1 Ether and 1,000,000,000 Wei equals one GWei.
There are also other names for different amounts of Wei, all named after famous cryptographers, as shown in this table:
In Bitcoin, to send a transaction we need to add a miner’s fee to it. This way, we incentivize the miners to include it in a block. In Ethereum, we must keep miners incentivized as well, for their contribution of computing power to the Ethereum supercomputer.
Similar to a car, the Ethereum network runs on “Gas”. Each line of code that needs to be executed by the network will take up a certain amount of gas. Run out of Gas, and the code stops running.
You specify how much Gas you’re going to use upfront, and you can’t refuel on the way. If your contract runs out of Gas because it’s written inefficiently or you miscalculated, it will just stop in the middle of the road. This system motivates smart contract programmers to keep their code lean and optimized, since Gas costs money (as we will soon learn).
Who collects this Gas?
Well, it goes to the miners as they are the ones investing computing power in order to update the ledger of Ethereum transactions (similar to what goes on in Bitcoin).
Once Ethereum moves over to a Proof-of-Stake mechanism (expected later this year), validators will replace traditional miners and receive the gas fees collected.
How do I get gas?
Gas isn’t something you can own – it’s just a unit of account to measure how much work is needed to run a line of code. Think of it as the equivalent of hours of labor.
Gas is paid in Ether. Now I know what you’re thinking – why not just price the execution of smart contracts in Ether, why do we need another virtual currency?
Well, Ether’s price is constantly changing. If we priced contracts in Ether, the price would be different each time we calculated it, due to the fluctuating exchange rate. Imagine we’d price painting our house at 2 Ether, sometimes it would cost us $1000 and other times $2000. With Gas, running the same contract several times will always bring back a fixed amount of Gas to be paid just like painting the same house takes the same amount of hours every time.
How is gas calculated?
So how much gas do you need to run a line of code? Easy…there are predefined amounts for each action you want to run in your code (an example can be found here). For example, sending Ether from one address to the other requires 21,000 gas units.
How much Ether does 1 gas unit cost?
Now comes the tricky part. The price of 1 gas unit changes all the time, depending on how crowded the network is. The same way an hour of labor would cost more if many people are looking for employees, the Gas price rises when the network is crowded.
The “standard” gas price is around 0.00000002 Ether (or 20 GiGa wei). You can consider this the average salary on the market for an hour of labor.
If the Ethereum network is very busy and you want your contract to get priority in execution over other contracts, you may over-bid the gas price so that miners will have an incentive to include your contract in the next block. You’re basically saying “I’m willing to increase your pay per unit of labor, so that you’ll give my work priority”.
This is similar to how Bitcoin transaction fees rise when the network is crowded. You can check the current standard Gas price of the network here.
When sending out transactions in Ether you must specify a gas limit – meaning how much gas you are willing to pay at maximum for running the lines of code. This is done in order to protect you from depleting your funds, in case your code has an error and runs endlessly and inefficiently.
You pay the gas limit upfront and there’s no option for “refueling”. If you overpaid, you’ll get refunded. If you underpaid, the contract will just stop midway.
So you choose how many units of gas and how much to pay for each unit. If you don’t use enough units, no miner will pick up your transaction since it doesn’t have enough gas from the get go. If, on the other hand, you choose enough units of gas but underpay for them, it may take a lot of time for your transaction to go through.
In Ethereum, fees are a general term that refers to the gas used, multiplied by the gas price you were willing to pay. In other words – the hours of labor times the wage per hour. The higher you’re willing to pay for gas, the more Ether the miners will compete for running your code and the faster your transaction will be included in the blockchain.
Keep in mind that if an operation runs out of gas mid-way, it will halt (just like your car) and no Ether will be returned to you (just like a gas station doesn’t refund you if you didn’t have enough gas to get where you want to go). For example, this can occur if your contract needs to perform some recurring function that keeps on consuming gas, then finally runs out.
How do I get an Ethereum wallet?
Ethereum software wallets can be downloaded online to your desktop or mobile (in the form of an app). Ethereum hardware wallets need to be ordered online from the manufacturing company (Ledger, TREZOR, etc.). You have a full list of sites at the top of this post in the Ethereum wallet summary section.
What is the best Ethereum wallet?
There are many Ethereum wallets out there and it’s hard to define who is “the best”, since each user has different needs. Personally, if you’re storing a large amount of Ethereum I’d recommend using the Ledger Nano X. If you’re just playing with a small amount, Exodus is great.
How do you transfer Ethereum?
- Get the recipient’s Ethereum address
- Make sure you have enough money to cover the amount sent and for 21,000 gas units (standard transaction cost).
- Go to “send” in your wallet and enter the recipient address
- Wait for the transaction to be confirmed (takes around 15 seconds).
Hopefully by now you have a better understanding of Ethereum’s wallets, accounts, gas and also the various wallets you can choose from. As you’ve probably noticed, Ethereum is a lot more complicated than Bitcoin. Don’t worry, it gets worse 🙂 but I’ll be here to see you through it all.
My suggestion to you, if you’re just starting out, is to pick a wallet from this page (preferably a software wallet for faster setup) and start playing with a small amount of Ether. Nothing will teach you better than actually conducting your first Ethereum transaction.
You may still have questions. If so, just leave them in the comment section below.