It’s easy! All you need: 32 ETH.
The cosmos have graced you with ownership of a fantastic crypto-asset: Ethereum. If you are currently holding at least 32 ETH and you are wondering what the best way to make use of these is, look no further! In this guide we will run through setting up an ETH 2.0 validator, from start to finish, using the Goerli Test Network so as to not put any real funds in jeopardy —the purpose is to learn. This is your first of many warnings, fellow Etherean, USE A TEST NETWORK FOR THIS GUIDE, DO NOT USE THE MAIN NETWORK — you are solely responsible for your own funds and none of the following is investment advice.
What Is an ETH2.0 Validator?
Validators can be considered the same as miners, given their utility/purpose is the same: they will be responsible for maintaining Ethereum’s upcoming proof-of-stake Beacon Chain; until then, ETH mainnet will remain on proof-of-work. An ETH2.0 validator is responsible for storing data (the actual blockchain data file — around 225GB as of date of publishing), processing new transactions into new blocks and then adding those new blocks onto the blockchain.
Why Should I Set Up an ETH2.0 Validator?
There can be various reasons, and some may apply to you or not. There is a financial incentive: an estimated 8%+ APY in rewards, paid in ETH—validator rewards are currently active and begin accruing in perpetuity (assuming good behavior) as soon as one is deployed. There is ideological incentive: your deposited 32 ETH reduces the circulating supply of ETH and helps decentralize the network further by setting up nodes globally—each node tasked with securing the blockchain state.
There is a custodial incentive in that your 32 ETH will safely live in the ETH2.0 smart contract until you withdraw them—important note to remember: your 32 ETH deposit underlying your validator will be locked until the current ETH mainnet merges with the ETH2.0 Beacon Chain, which is currently expected to be in 1 to 2 years; TLDR: you will only be able to withdraw once ETH2.0 comes out. There is educational incentive: we will set up a validator on the Goerli Testnet today and see how proof-of-stake mining works firsthand!
What Do I Need to Set Up an ETH2.0 Validator?
Ethereum’s transition to a proof-of-stake mining protocol means a large mining farm and extreme amounts of electricity are no longer required to mine, or “validate” transactions; all that is needed is: a computer with at least 8GB of RAM, 100GB of SSD storage space, internet, UPS (uninterruptible power supply) and a CPU such as this one or better. Shout out to the gamer community: GPUs will be back on the market for their true intended audience!
To keep things simple in this guide, we will use a cloud server provider to host our validator! So don’t worry about the above hardware requirements. TLDR for this section: all you need is 32 ETH—and the acceptance that your ETH will be locked and non withdrawable for at least 1 to 2 years.
Requirements for this guide —
- Download MetaMask and locate your wallet address. MetaMask is a crypto wallet that is available as a browser extension. It equips you with a key vault, secure login, token wallet and token exchange.
Set Up an ETH2.0 Validator on the Goerli Testnet
We will run through the setup on the Goerli Testnet but should you ever wish to become a validator on the main network, you only need to apply these exact same steps… but instead of using the testnet, you’ll have to use the mainnet with real ETH. For this guide, we will use the Pyrmont ETH2.0 Launchpad, which was set up for testing and educational purposes only, but UI-wise is an exact replica of the real ETH2.0 launchpad.
Acquire 32 Goerli ETH —
Second warning: open MetaMask now and select the “Goerli Test Network” from the dropdown menu.
- Once you have made sure you selected the “Goerli Test Network” and it now shows on your MetaMask wallet UI, let’s get some Goerli ETH, aka GöETH!
- Go to the Goerli Authenticated Faucet. In order to get large amounts of GöETH, you will have to create either a Tweet or Facebook post containing your MetaMask public address. You then have to copy the URL of this social media post and paste it into the faucet — you are given a choice between 14 ETH, 35 ETH or 87.5 ETH — your choice (I’d recommend going for the highest amount) but you’ll want at least the 35 ETH option, since we’ll need 32 for our validator. Select “Give me Ether” and wait 1–2 mins for the GöETH to show up in your wallet.
Step #1: Generate Your Keys & Deposit 32 GöETH Using Pyrmont Launchpad
1. Once you have at least 32 Goerli ETH in your MetaMask wallet, head over to the Pyrmont ETH2.0 Launchpad — this is the UI that will run us through all the terms and risks of being an ETH2.0 Validator. Select “Become a Validator.”
2. Make sure to read and understand all of these steps! A quick summary: explains proof-of-stake consensus and how your stake is your collateral in case you participate in a dishonest manner, outlines that the deposit required is that of 32 GöETH per validator, warns that part of setup involves being comfortable with a computer terminal, warns that if your validator becomes inactive you will get slashed (“slashed” means your collateralized stake will be subtracted from), warns against attempting to run the same validator file on two different machines, warns that advanced key security is required—this means you must protect your 24-word mnemonic phrase with your LIFE as it will be the only way to redeem your deposit, warns that your 32 GöETH will be locked up until mainnet is merged with the Beacon Chain — which is estimated to be in 1 to 2 years — and finally, warns that this is all very new software you are interacting with and that in and of itself carries lots of potential risks.
3. As gif below demonstrates, run through the checklist, then go ahead and skip the next two pages, those are for a hardware-specific setup — these two pages detail the software clients you must download, install and run in order to host your own validator — but since we will be using a cloud solution in an effort to simplify our learning, we won’t be needing these today!
4. Select how many validators you would like to run; for the purposes of this guide, select 1 — notice how 32 GöETH immediately toggles on the UI.
5. Now, select your current Operating System (Linux, Windows, Mac) — I am running MacOS so I have selected “Mac.” Then select the “Download From Github” button. This button will take you to the Github repo containing the required command line interface app that you will use in order to generate your key pairs. Make sure to download the client that is specific to your OS!
6. Now, create a new folder in your Desktop directory and call it whatever you like, I called it “my_validator”. Drag the downloaded .zip or .tz into this folder and unzip the file.
- You should now have an executable called ‘deposit’ inside the unzipped folder
7. For the next steps, DISCONNECT FROM THE INTERNET. This will increase the safety/privacy of your key generation.
8. Open a Terminal session and “cd” (check directory) into your Desktop/my_validator/eth2deposit-cli.. Folder.
- For example, in a new Terminal session, type: “cd Desktop” > “cd my_validator” > “cd eth2deposit-cli…”
9. When you are in the same directory as your “deposit” executable, copy and paste this command into your terminal session then press “Enter” to run it:
- ./deposit new-mnemonic --num_validators 1 --chain pyrmont
10. Now follow the instructions presented to you in the terminal window to generate your keys. Warning: use a password you will remember —
- You will need it for Step #2!
11. MOST IMPORTANT STEP: WRITE DOWN YOUR MNEMONIC PHRASE IN A SAFE PLACE. These words now = your 32 ETH.
12. In your current folder where you executed the above command, you should now see one new folder called validator_keys which contains two new files: a keystore.json file representative of your signature and a deposit_data.json file representative of your validator’s public key — you will need both of these for the next steps.
13. Check off “I am keeping my key(s) safe and have written down my mnemonic phrase” and select ‘Continue.” (Only do this if you have actually recorded your mnemonic down)
14. Upload your deposit_data.json file.
15. Now the UI will prompt you to connect your wallet. Go ahead and select MetaMask. Final warning: make sure you are using the Goerli Testnet (at this point, the checks in the UI would have already prevented against attempting to use mainnet deposit.json files, etc).
16. Run through the final safety checks.
- Deposit address of ETH2.0 smart contract: https://etherscan.io/address/0x00000000219ab540356cbb839cbe05303d7705fa
17. Deposit your 32 GöETH! Your deposit should take 1–2 mins to confirm. Once the Status shows “Success” you are done with the first part of this guide — nicely done!
- If you are doing a hardware setup, this would be your last step—assuming you actually set up appropriate hardware/software to host your validator yourself!
Step #2: Upload Your Validator Keystore File to Allnodes.com
1. Go to Allnodes.com and create an account.
2. Select “Stake Coins” and then select “Ethereum 2.0” from the menu.
3. Toggle the switch to “Testnet” and select “Proceed.”
- Final final warning, make sure you have selected “Testnet”!
4. Connect your wallet — make sure you are on the Goerli Test Network and the correct user account is toggled. The Allnodes backend UI will query your address and check whether it has successfully deposited 32 GöETH to the ETH2.0 smart contract. If yes, your UI should look like this:
5. The UI will give you one final warning not to upload your keystore-[timestamp].json file to any other server — else you will be slashed.
6. Select “Next” and upload your keystore-[timestamp].json. The folder path should look something like ‘my_validator’ > ‘eth2deposit-cli…’ > ‘validator_keys’ > keystore-[timestamp].json. Drag and drop!
7. Enter the password you used to generate your keys in Step #1.
8. You should now be taken to your very own dashboard where you can keep track of your validator — congrats, pending your validator becoming active (usually takes a few hours), you are now an ETH2.0 testnet validator!
- Reminder that Allnodes charges $5/month per validator, so make sure to credit your account accordingly!
9. In order to get your validator’s public key, you can either source it from your deposit.json file or copy-paste the “Collateral” (which is just the public key you used to deposit 32 ETH with) and then paste it in https://goerli.etherscan.io/. In your transaction history, locate the 32 ETH deposit tx and click the transaction hash. You should then see ‘Validator PubKey’ in the tx details, click the link and you are taken to a Beacon Chain explorer where you will be able to keep track of your validator’s health in perpetuity — pro tip: bookmark this page!
Congrats on setting up your very own validator! You are now an important part of Ethereum’s future Web3.0 ecosystem and will collect rewards as passive income for doing so.
Should you wish to deploy a real validator, follow these exact steps but use Main Network and real ETH instead!