Generate A Secure Ethereum Wallet

Here at Contrib, we try our utmost to have the most secure experience for our users with the rise of Ethereum ICO’s this year.

The central component in Ethereum is the “wallet”. An Ethereum wallet is what holds your Ether and other Ethereum-based tokens, and conceptually can be thought of like a real wallet.

Like a real wallet, an Ethereum wallet can be stolen. You shouldn’t leave it “out”, or stored on a device that is often connected to the internet, or it risks being hacked. There is no recovery for a stolen wallet — the courts cannot help you recover it, and you can’t reverse what happens.

This guide will explain how to safely generate and store an Ethereum wallet.

My Ether Wallet

MyEtherWallet is an open source project to make it simple to create an Ethereum wallet and interact with the Ethereum platform. It is hosted at myetherwallet.com, but it’s just a static web page. The safe, recommended way of using MyEtherWallet is to download the website yourself, so that there is no risk you go to the wrong website. This also allows you to use MyEtherWallet without being connected to the internet.

You can download the latest version of the MyEtherWallet website as a zip file at this link. Download the “etherwallet-v…”, not the chrome extension. When you unzip the file, you get a list of files containing a website.

Unzipped MyEtherWallet. Double click “index.html” to open it.

Open “index.html” to launch MyEtherWallet.

Generating an Ethereum Wallet

Through the magic of mathematics, you can easily create a password-protected Ethereum wallet that no one will ever be able to duplicate accidentally. There are many more available Ethereum wallets than there are atoms in the universe.

You should turn off your internet connection for the following steps. If you want to be highly secure, you can do the following steps on a computer that is rarely or never connected to the internet. This is considered an “air-gapped” computer. The reason to do this is to minimize the risk that someone has hacked you and is remotely observing what you do. Even without a specialized air-gapped computer, it is good practice to turn the internet off while doing Ethereum wallet generation.

The MyEtherWallet form to generate a new wallet.

Type a secure password you won’t forget into the box, and click “Create New Wallet”.

You can then click “Download Keystore File” to save your wallet. I recommend you save it to a USB stick, preferably an encrypted USB stick, so that it isn’t hanging around on your computer where it could be easily found. The file will be called something like “UTC — 2017–08–11T15–29–26.452Z — 45…”.

Press “I understand. Continue”.

On the next page, you can see your “private key” in plain text. This is a plain-text version of the keystore file you downloaded, which is not protected by a password. I do not recommend you save this, you don’t need to if you have the keystore file.

You can also print a “paper wallet”, which is a paper version of the keystore file you saved, which protects you if you lose the keystore file or forget your password. Print this out if you are worried about losing your wallet, but make sure it’s stored safely. Anyone who finds the paper wallet has access to your Ethereum!

Now, press “See my address”.

Unlocking Your Wallet & Checking Your Balance

View your Ethereum wallet info

Click the “View Wallet Info” tab. Click “Select Wallet File” and navigate to the “UTC — 2017–08–11…” keystore file you saved previously. Type in your keystore password, and click “Unlock”.

An Unlocked Ethereum Wallet

Once unlocked, you can see your public address (“0x45cABda7D6A2051dc7e20Cfc6d0bd4878f7D3736” for this wallet), your Ether balance, links to transaction history, and optionally display your private key and print your paper wallet.

Your private key should never be given out. You only give out your Account Address in order to receive Ether.

See ERC20 tokens

On the side, you can also see your “Token Balances”. These are (generally) ERC20 tokens, like AIR and BAT, which you can hold in your Ethereum wallet in addition to Ether.

ERC20 Token Balances

Clicking “Show All Tokens” reveals your individual token balances.

Receiving Ether or Other Tokens

To receive Ether or other tokens, you don’t need to do anything special. Just provide your public Ethereum wallet address (the “0x45…” number) to the person who will send you currency, and it will be received. You can “View Wallet Info” to see your balance.

Sending Ether or Other Tokens

There are 2 ways to send Ether — online and offline transactions.

As discussed previously, using your wallet offline is safer, because it minimizes the potential for hackers to steal your wallet.

To send an online transaction, click the “Send Ether & Tokens” tab, and unlock your wallet.

Once unlocked, you are presented with a page showing a To Address, an amount, and a Gas Limit. If you have other ERC20 tokens, you can click then ETH down arrow to change the type to another currency.

The “Gas Limit” is the maximum fee amount you pay to the network to execute your operation. The Ethereum network is powered by individual nodes, which are just people all over the world that choose to participate in the network’s processing work. You pay a fee for them to process your transaction. Just leave the default at 21000, the fee will be 5 to 30 cents USD.

To send an offline transaction, you basically do all the same steps, except you don’t execute the transaction until you are online. This allows you to safely remove your keystore from your computer (i.e., unplug your USB) and prevent your keystore from ever being attached to the internet.

Go to the “Send Offline” tab. Copy in your Ethereum wallet address in the “From Address” field, and click “Generate Information”.

In Step 2, enter in the Ethereum wallet address to send ETH or tokens to. Then fill in the value and type, and leave the Gas Limit and Gas Price to the default.

Then select your keystore file, type in your password, unlock it, and click “Generate Transaction”.

Now, copy the “Signed Transaction” text. You can then take this transaction to a different computer connected to the internet, or just use the same computer and turn the internet on, but the point is to remove your keystore before executing the transaction. This decouples your keystore (your actual wallet) from the internet, increasing your wallet’s safety.

Conclusion

Using MyEtherWallet running locally on your computer, you can safely create an Ethereum wallet, store it on a USB, view your wallet info, and execute transactions. By using “offline transactions”, you can prevent your keystore file from being connected to the internet, and increase your security.