How to Stake on the Goerli/Prater ETH Testnet (Ethereum)

Learn how to stake on the Goerli/Prater ETH Testnet using Blockdaemon in this step-by-step guide.

Goerli/Prater testnet 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/Prater testnet.

Staking ETH on Goerli/Prater testnet 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/Prater testnet staking process follows these steps:



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.



  • Blockdaemon never has access to any funds on the withdrawal address.
  • 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.
  • 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/Prater testnet Tokens

At this point, you will need to obtain the Goerli/Prater testnet tokens required for staking.

  • Please reach out to your Technical Account Manager to provide the Goerli/Prater testnet tokens.
  • Note that there is a limit on Goerli/Prater testnet tokens distribution.

Step 3 – Blockdaemon Launches Your Validators

For each public key supplied to Blockdaemon, we will launch a Goerli/Prater testnet Ethereum 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/Prater testnet Ether to the contract address.

  • This contract is on the Ethereum blockchain at: 0x8c5fecdc472e27bc447696f431e425d02dd46a8c.
  • 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 on how to manually create transactions, a step-by-step guide using MetaMask is provided below.

Deposit Contract Steps with Etherscan

Note: We recommend Fireblocks for institutions that are looking for custody options.


  • Access Metamask with the 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/Prater testnet.

Visit the 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/Prater testnet 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 the 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.