Skip to main content
All CollectionsValidator Nodes & Masternodes
How to Change your Ethereum withdrawal credentials from 0x00 to 0x01 (ethdo)
How to Change your Ethereum withdrawal credentials from 0x00 to 0x01 (ethdo)

Windows, Mac & Linux

Allnodes Team avatar
Written by Allnodes Team
Updated over 3 months ago

Never share your seed phrase or mnemonic with anyone, EVER. Allnodes will never ask you for it. If someone asks for it, they are scammers pretending to be Allnodes admins. Block and report them immediately.

If you used wallet.allnodes.com to set up your Ethereum validator, you must use the guide linked below (deposit-cli) instead of this guide (ethdo) to change your withdrawal credentials. https://help.allnodes.com/en/articles/7235575-how-to-change-your-ethereum-withdrawal-credentials-from-0x00-to-0x01-deposit-cli


Does my node have a 0x00 Withdrawal Credential or a 0x01 Withdrawal Address?

This guide is only for Ethereum nodes that have 0x00 withdrawal credentials. If you already have a 0x01 withdrawal address, no action is required. All RocketPool (RPL) minipools have a 0x01 withdrawal address; no action is required.

An example of Withdrawal Credentials 0x00 is listed in the drop-down menu on your portfolio page, click Node Address)

An example of a Withdrawal Address 0x01 is listed in the drop-down menu:

We recommend using the highest security to protect your seed phrase. Using an Air Gap computer is the most secure way to update your 0x00 withdrawal credentials. An Air Gap computer is a spare computer in your physical possession that can be formatted with a fresh installation of your preferred operating system. Once installed, an Air Gap computer is not connected to the internet (WiFi disabled). A USB Flash drive transfers all files from the connected computer to the Air Gap computer.

For users using their current computer, we recommend completing all operating system updates. We also recommend running a malware scan (free trial at malwarebytes.com) before beginning the following steps:

A) Windows
B) MacOS
C) Linux


A. Instructions for Windows

  1. Download the latest version of ethdo
    (Windows users select ethdo-1.28.4-windows-exe.zip)

  2. After the download is complete, extract the ethdo zip file (right-click and select Extract All…). Extract the file to your desktop and name the extracted directory ethdo.

  3. To open the Command Prompt, type this command in the Windows search bar:

    cmd

    Right-click on the Command Prompt and Run as administrator.

  4. Click Yes if a warning screen from Windows opens
    The command prompt will open to c:\Windows\System32

    Type:

    cd /d %USERPROFILE%/Desktop

    In this example, Allnodes is shown

  5. Type:

    cd ethdo 
  6. Type:

    ethdo validator credentials set --prepare-offline and press Enter. 

    This may take 1-2 minutes to complete. When complete, the command prompt will say ‘offline-preparation.json generated’

  7. If you are not using an air gapped computer, disconnect and disable your internet so that you are offline.

  8. Type:

    ethdo validator credentials set --offline --mnemonic="original eth deposit seed phrase word1 word2 etc” --withdrawal-address=0x0234…

    You must double-check your withdrawal address and be 100% sure that it is correct. The withdrawal address cannot be changed once it is submitted to the Ethereum network. This can be any valid Ethereum address that shows on a blockchain explorer such as etherscan.io. We do not recommend using an exchange address because it is not in your control. Check the output file (change-operations.json) to be 100% sure that it is correct.

  9. No output is shown on the command prompt if everything in the previous step has been entered correctly.

  10. Type:

    dir 

    3 files should be shown as seen in the image below.

  11. Clear the history of your Command Prompt (for best security practices) by typing:

    cmd /k

    This will delete all the previously entered commands, including the seed phrase you entered earlier.

  12. Type:

    notepad change-operations.json

    This will allow you to view the changes that will be broadcast to the Ethereum network after submission.

  13. You are checking that the validator ID matches the validator ID that you are changing the withdrawal address. In this example, you are trying to change the validator withdrawal address for node “27254”, which is a match.

  14. The second thing you are checking is that the withdrawal address that you entered is 100% correct and is an address that is secure and in your control. If you have multiple validator nodes using the same ETH address, make sure to check all of the outputs.

  15. Close the notepad file. Edit the name of change-operations.json to your validator ID (in this example, 27254.json, but use your own validator ID, not 27254). To edit, right-click the change-operations.json file in the ethdo directory and rename it.

  16. You are now ready to submit your JSON file to be broadcast to the Ethereum network. Upload to https://beaconcha.in/tools/broadcast. Remember, it is not reversible once your JSON file is accepted by the Ethereum network (on April 12th or after the Shappella upgrade is complete). You must be 100% sure that the withdrawal address is correct.


B. Instructions for MacOS

  1. Click the Launchpad icon in the Dock, type Terminal in the search field, then click Terminal.

  2. Copy and paste (all 1 line) into the terminal and press Enter.

    curl -OL https://github.com/wealdtech/ethdo/releases/download/v1.28.4/ethdo-1.28.4-darwin-amd64.tar.gz
  3. Copy and paste into the terminal and press Enter:

    tar -zxf ethdo-1.28.4-darwin-amd64.tar.gz
  4. Copy and paste into the terminal and press Enter:

    ./ethdo validator credentials set --prepare-offline

  5. If you are not using an air gapped computer, disconnect and disable your internet so that you are offline.

  6. Type:

    ./ethdo validator credentials set --offline --mnemonic="original eth deposit seed phrase word1 word2 etc” –-withdrawal-address=0x0234…

    You must double-check your withdrawal address and be 100% sure that it is correct. The withdrawal address cannot be changed once it is submitted to the Ethereum network. This can be any valid Ethereum address that shows on a blockchain explorer such as etherscan.io. We do not recommend using an exchange address because it is not in your control. Check the output file (change-operations.json) to be 100% sure that it is correct.

  7. If everything in the previous step has been entered correctly, no output is shown on your screen.

  8. Copy and paste into the terminal and press Enter:

    history -p

    This will delete all the previously entered commands, including the seed phrase you entered earlier.

  9. Type this command to see the directory:

    ls

    You should see the file change-operations.json

  10. Copy and paste into the terminal and press Enter:

    nano change-operations.json
  11. The first thing you are checking is that our validator ID matches the validator ID that you are trying to change. In this example, you are trying to change the validator withdrawal address for node “27254”, which is a match.

  12. The second thing you are checking for is that the withdrawal address that you entered is 100% correct and is an address that is secure and in your control. If you have multiple validator nodes using the same ETH address, make sure to check all of the outputs. “To_execution_address”

  13. Press Control + X to exit the editor.

  14. Edit the name of change-operations.json to your validator ID (in this example, 27254.json, but use your own validator ID, not 27254).
    Type:

    mv change-operations.json YourNodeID.json
  15. You are now ready to submit your JSON file to be broadcast to the Ethereum network. Upload to https://beaconcha.in/tools/broadcast. Remember, it is not reversible once your JSON file is accepted by the Ethereum network (on April 12th or after the Shappella upgrade is complete). You must be 100% sure that the withdrawal address is correct.


C. Instructions for Linux

  1. Copy and paste the following (all 1 line) and press Enter.

    wget https://github.com/wealdtech/ethdo/releases/download/v1.28.4/ethdo-1.28.4-linux-amd64.tar.gz
  2. To check that the file was downloaded successfully, type:

    ls
  3. Extract the ethdo file by copying and pasting:

    tar -zxf ethdo-1.28.4-linux-amd64.tar.gz
  4. To check that ethdo was extracted successfully, type:

    ls
  5. In the same directory, copy and paste:

    ./ethdo validator credentials set --prepare-offline 

    This may take 1-2 minutes to complete. When complete, the command prompt will say ‘offline-preparation.json generated’

  6. If you are not using an air gapped computer, disconnect and disable your internet so that you are offline.

  7. Type:

    ./ethdo validator credentials set --offline --mnemonic="original eth deposit seed phrase word1 word2 etc” --withdrawal-address=0x0234…

    You must double-check your withdrawal address and be 100% sure that it is correct. The withdrawal address cannot be changed once it is submitted to the Ethereum network. This can be any valid Ethereum address that shows on a blockchain explorer such as etherscan.io. We do not recommend using an exchange address because it is not in your control. Check the output file (change-operations.json) to be 100% sure that it is correct.

  8. If everything in the previous step has been entered correctly, no output is shown on your screen.

  9. Type this command to see the directory:

    ls

    You should see the file change-operations.json

  10. Clear the history of the commands you typed in Linux by typing:

    history -c 
  11. This will delete all the previously entered commands, including the seed phrase you entered earlier.

  12. Type:

    vi change-operations.json 

    This will allow you to view the changes that will be broadcast to the Ethereum network after submission.

  13. The first thing you are checking is that our validator ID matches the validator ID that you are trying to change. In this example, you are trying to change the validator withdrawal address for node “27254”, which is a match.

  14. The second thing you are checking for is that the withdrawal address that you entered is 100% correct and is an address that is secure and in your control. If you have multiple nodes using the same ETH address, make sure to check all of the outputs. “to_execution_address”

  15. Type this command to exit the editor:

    :q
  16. Edit the name of change-operations.json to your validator ID (in this example, 27254.json, but use your own validator ID, not 27254).
    Type:

    mv change-operations.json YourNodeID.json
  17. You are now ready to submit your JSON file to be broadcast to the Ethereum network. Upload to https://beaconcha.in/tools/broadcast. Remember, it is not reversible once your JSON file is accepted by the Ethereum network (on April 12th or after the Shappella upgrade is complete). You must be 100% sure that the withdrawal address is correct.


Have Questions?
Send us an email at [email protected]

Did this answer your question?