So you want to join Ethereum? How do you do that? Which wallet do you need? How do you set it up if you're not technical? Here's a breakdown.

Before diving into this, please read the Ethereum introduction.

Software and node types

Ethereum is a blockchain. This means that a software program known as a node runs it and communicates to other nodes to make sure they all have the same data. These nodes are in turn based on different types of underlying software, the most popular two being Parity and Geth.

There are three main types of nodes: archive, full and light, so you have a flavor of Geth that's an archive node, and a flavor of Geth that's a full node, for example.

An archive node will build the whole blockchain from block 0, so from the beginning. It won't wait for blocks to build the regular way (i.e. 15s per block) but will instead check the data as fast as it can, exploring even the dead “forks” that never happened. This can take weeks, and will eat up more than 2 TB of hard drive space. It stores all the past states of Ethereum and lets you check balances and transactions for any wallet at any point in time. It gives you the full history of the blockchain. You cannot sync an archive node to 100% on an HDD, you must use an SSD. The HDD simply cannot spin fast enough. The good news is that you probably don't need an archive node (see use cases below).

A full node is similar – it also takes a long time to sync because it builds everything from scratch, but it keeps only the latest state and proofs about past states. This is why a full node is only 80 to 130 GB, depending on who you ask, but you cannot query details about the past without rebuilding the blockchain up to that moment in the past. The good news is that a full node has the potential to be an archive node because it has all the data needed to build a full archive, it's just not “applied”.

A light node is one that only reads a checkpoint in Ethereum's recent past, downloads the block headers from the blocks that happened since, and then makes sure the up to date state is true. It makes an assumption about the data that comes before – it implicitly trusts whichever node it used to grab that checkpoint. A light node can have trouble finding light node hosts to connect to as not many nodes run with light node slots open (it's an altruism thing).

Here's a thread of tweets that hopefully further clarifies things:

For more descriptions and commands on how to run these modes, please see Running an Ethereum Node.

So… what's a wallet?

The nodes mentioned above can be considered “back ends” – servers, basically, but server programs you run on your computer. They are not wallets. However, they can become wallets if you import a wallet into them. You use user-interfaces like Mist (now discontinued so please don't use it), MetaMask, MyCrypto, MyEtherWallet or some of those mentioned at Wallets.Review to connect to these nodes, and then those nodes talk to the blockchain for you – sign transactions and read balance – and send that info to the user interface app for you to see.

So when do you need which tool? How hard is it all to set up?

Mining

We have to note that none of the aforementioned nodes is a miner – to mine cryptocurrency you need expensive hardware like lots of graphics cards or specialized hardware called ASIC. The program that's doing the mining using this hardware sends its guesses to one of the aforementioned nodes, if such a node was run with the “mining” flag turned on. Mining is outside the scope of this article.

Joining just to have a wallet

If you just want to have a wallet, all you need is a private / public keypair. If you want to know more about this crytography stuff that's powering cryptocurrency, we have a very good newbie-friendly introduction here. You can generate this with any wallet, but the easiest way is to open up something like MetaMask, MyCrypto, MyEtherWallet and generate a wallet. This will result in the creation of a password-encrypted keystore file (a text file ending in .json) which you can print or save somewhere safe.

Any wallet software can use this file to sign transactions from you and once you send such a transaction into the ether, be that via MetaMask, Mist, pigeons or smoke signals, the transaction (tx) gets executed. Likewise, merely having the public key of your wallet (looks like 0x4522bc91fd54982938...) allows you to accept Ether and tokens and you can check your balance at any time without inputting your private key anywhere. Remember – if you lose your private key, you lost your money. If someone steals your private key, they have your money. Hide it and use it ONLY when sending transactions, on your own internet connection, on a safe browser clean from extensions.

Alternatively, use a hardware wallet like a Ledger Nano X which takes care of most of this for you by keeping the private key on its secure chip. Additionally, the hardware wallet comes with its own application serving as your wallet, so you're up and running as soon as you open the box.

Recommended approach for a wallet:

It is absolutely not recommended to hold cryptocurrency on an exchange, as an exchange can simply disappear overnight as we've seen countless times, no matter how big it is. There is no “too big to fail” in cryptocurrency.

“But how secure is it if I'm using a website for my wallet?” you might be wondering. As long as your private key is in your possession, it's secure. The website is just providing a user interface through which to interact with the blockchain using your private key, but most of these projects are open source and you can run them offline. Here's a slightly outdated tutorial on using MyEtherWallet on your own computer, without running their website: Running your own MyEtherWallet.

Joining as a User

This is the same as above, though I would recommend checking out some mobile wallets as well. There's quite a lot to do on mobile in web3 these days, so some of these apps are definitely worth checking out.

Apart from this, when you really want to join as a user who is connecting to their own node for whatever reason, each of the tools mentioned above has a “Custom network” functionality which lets you add a custom IP address and port of the node you want to connect to. So if you're running your own node, which is cheap and easy, you can connect to it by selecting custom node and entering your node's IP and port.

Advantages of running your own node are:

  • you help the network by diversifying it
  • you get an indisputable source of truth in that you can check the blockchain data yourself, you don't trust others to do it for you
  • you help light clients (light nodes) connect if you run a node with light client slots. That's purely good karma there, but can also be monetized with approaches like VipNode.

Connecting to my Private Blockchain

If you have a private blockchain running on a remote node, you can connect a wallet UI like MetaMask, MyEtherWallet, or MyCrypto to it via RPC (Remote Procedure Call). Depending on the software you're using to run the private chain's node, you'll have to start it with some extra options: open RPC and specify port. Additionally, you might have to open that port in your firewall and/or router, depending on where you're running the node.

For best results, run a node locally on the same network you're connecting from – they are very cheap to run. As an example, see Lisinski, a Croatian testnet where the nodes are running on everything from AWS to custom micro-nodes like those from Block and Mortar linked above, in different offices around the country and outside it.

More details on how to connect to a private blockchain available here.

Joining as a Developer

Your best bet is starting with something like Truffle or Embark. Both frameworks have extensive documentation that wonderfully explains things, and both will have active social media channels via which to seek help.

If you'd like to query data faster without relying on someone else like Infura (a big, centralized Ethereum data provider everyone seems to be relying on), run your own node – it's very cheap to start with and almost free to run. Get them on Block and Mortar.

Additional advantages of running your own node are:

  • you help the network by diversifying it
  • you get an indisputable source of truth in that you can check the blockchain data yourself, you don't trust others to do it for you
  • you help light clients (light nodes) connect if you run a node with light client slots. That's purely good karma there, but can also be monetized with approaches like VipNode.

Joining as an Investor

First make sure you “Join as a User”, then:

  • if you invested via an exchange, put your money in cold storage (printed or engraved wallet) / hardware wallet
  • if you're not investing via an exchange (i.e. Binance), then use a brokerage which can send Ether directly to your address like Coinvendor.io.
  • use view-only apps to monitor your assets. Examples include EthView and Etherscan.io

Ethereum 2.0 and proof of stake

Ethereum 2.0 is a long ways off. Maybe keep an eye on the Ethereum 2.0 series or on Ethhub. For the difference between Proof of Work and Proof of Stake, see here.


If anything is unclear, please let me know on Twitter or submit an issue in our content repository.