How to Stake on the Goerli ETH Testnet (Ethereum)
Goerli is one of Ethereum’s popular testnets. Web3 application developers use it to test out applications before launching on the Ethereum mainnet.
If you want to test your ETH staking processes, we recommend using the Goerli network.
Staking ETH on Goerli isn’t as straightforward as some protocols, but we’ll make it easy for you. To give you an idea of what to expect, the Goerli staking process follows these steps:
- Set Up a Withdrawal Address
- Obtain Goerli Tokens
- Blockdaemon Launches Your Public Validator(s)
- Blockdaemon Provides You With Transaction Data
- Fund Your Validator(s)
- Appendix: Deposit Contract Steps with Etherscan
Please note, this guide must not be used for staking via the Ethereum mainnet. For mainnet staking, check out How to Stake ETH (Ethereum)
Step 1 – Set Up a Withdrawal Address
Generate a normal Ethereum address and store it in a secure location. We recommend using a custodian that supports ETH2 staking actions or a hardware wallet, such as a Ledger.
- Note: Blockdaemon never has access to any funds on the withdrawal address
- Note: Validators are staked in increments of 32 ETH
- For 64 ETH you would need two validators; 96 ETH would require 3 validators, and so on.
- Note: You do not need a unique address to fund each validator. A single address is enough, providing it holds sufficient ETH.
Step 2 – Obtain Goerli Tokens
At this point, you will need to obtain Goerli tokens required for staking
- Please reach out to your Technical Account Manager to provide the Goerli tokens.
- Note that there is a limit on Goerli tokens distribution.
Step 3 – Blockdaemon Launches Your Validators
For each public key supplied to Blockdaemon, we will launch a Goerli Ethereum testnet validator. You will not need to perform any tasks in this section.
Blockdaemon anticipates and has optimized for launching large amounts of validators on-demand, so these steps are automated where appropriate.
- Blockdaemon will generate deposit staking data which includes validating keys. These keys cannot spend any funds on the validator. This key is used to sign blocks for validating and will be used to trigger an exit from staking.
- Blockdaemon uses the validating keys to generate the data that will be needed to generate the transaction to fund these validators:
- pubkey – The public key of the created validator.
- withdrawal_credentials – A SHA256 hash of the Withdrawal Address (which you or your custodian created) with the first byte replaced with 0x00
- signature – A signature by pubkey to prove this key exists.
- deposit_data_root – A Merkle root of the other fields to ensure they were generated correctly.
At this point, Blockdaemon will return the data to you for you to craft the transaction to fund your validator.
Step 4 – Blockdaemon Provides You With Transaction Data
For each withdrawal key shared with us, we will share the four data points exposed in the previous section; pubkey, withdrawal_credentials, signature and deposit_data_root
- As an individual user self-custody, we will arrange for the transaction data to be shared with you in your preferred manner.
- By default, Blockdaemon generates JSON responses containing this data. This can then be adapted as required.
Step 5 – Fund Your Validator
For each withdrawal address, you will need to send 32 Goerli Ether to the contract address.
- This contract is on the Ethereum blockchain at
- As an individual self-custody user, you will need to create an Ethereum transaction to fund the validator.
- This process may be handled for you automatically by a custodian if you are using one, in which case you may not have any steps further to complete.
- Please refer to any documentation they provide, as this will involve sending 32 ETH from your Ethereum account to fund the validator and enter it into the queue for staking.
For detailed instructions for how to manually create transactions, a step-by-step guide using MetaMask is provided in Appendix – Deposit Contract Steps with Etherscan.
Appendix: Deposit Contract Steps with Etherscan
Note: We recommend Fireblocks for institutions that are looking for custody options.
- Access to Metamask with Georli Testnet account with funds (32 per validator plus gas fees).
- Metamask is available for download for web browsers here
- Helper JSON file (provided by Blockdaemon).
- Raw deposit data file, if you want to verify the transaction (provided by Blockdaemon).
Before you continue it is highly recommended that you have your MetaMask unlocked and ensure that you are using the correct Ethereum account on the Goerli Testnet.
Visit smart contract on Etherscan
For the following steps, all customers can use the same Smart Contract on Etherscan to deposit their 32 ETH:
Connect MetaMask with Etherscan
While viewing the contract on Etherscan perform the following to connect MetaMask:
- Click on the Contract tab.
- Click on the Write Contract button.
- Click the Connect to Web3 button.
- Select MetaMask from the modal.
- Select the Goerli address with the funds.
- Click the Next button.
- Click Connect to confirm
Verify MetaMask is connected with Etherscan
- Open MetaMask plugin.
- Click on your account icon.
- The modal should show an E icon next to the connected account:
- Click the Connect to Web3 button on Etherscan, select MetaMask from the modal and click OK on the next modal.
- The button should turn green and should show the contract address.
Deposit the 32 Eth
- Below the Connect to Web3 button, click the deposit button, this will expand the form.
- Enter 32 as the Eth amount you want to deposit.
- Then use the deposit data file to fill in the rest of the form.
- After all fields are filled click the Write button.
- MetaMask will load the transaction information in the modal, the user can review the tx.
- Optional: user can go to the Data tab and verify the Hex Data with the 2nd tx file provided by Blockdaemon.
- Click Confirm, the deposit has been completed.
- Monitor the status of your validators on beaconchain