Skip to main content

Change Solo Withdrawal Credentials to 0x01 Address

Learn how to change your withdrawal credentials to a 0x01 type

IconImportant Notice

Partial and full withdrawals from staking require validators to have an execution layer address, known as the 0x01 withdrawal address. By default, validators created using StakeWise Solo have 0x00 withdrawal credentials, which must be changed to 0x01 withdrawal address to exit from staking or benefit from partial withdrawals. This guide will teach you how to change 0x00 withdrawal credentials to a 0x01 address.

We created a guide to walk you through the process of changing withdrawal credentials.

To find the right guide for you, choose your operating system.

IconImportant

Ensure that the Windows machine you are using for executing the change in withdrawal credentials is not infected with any malware and can be disconnected from the Internet at a certain stage of the credentials change process.

If you are not using anti-virus software regularly, we recommend that you use a trial version of malwarebytes.com to conduct a full scan of your machine before proceeding with the credentials change process.

IconNote

You will need the mnemonic (seed phrase) you used for creating Solo validators to execute this procedure. Do not discard the mnemonic (seed phrase) after you complete the procedure and continue to keep it safe (ideally stored offline or on an airgapped machine).

IconNote

You will need to provide a withdrawal address where your validator funds will be withdrawn to. Make sure that the address you choose is not compromised, does not have approvals for ETH spending to unknown contracts, and is overall safe to use.

Executing a change of withdrawal credentials on Windows is a fairly straightforward process. We will:

  1. Find out the public BLS credentials of your Solo validators
  2. Download and launch staking-deposit-cli using Command Line
  3. Generate a .json file for rotating withdrawal credentials to 0x01 address
  4. Broadcast the .json file's message to the Ethereum Network

The whole procedure will take at most 10 minutes.

Find Out Your BLS Withdrawal Credentials

Before we can begin the credentials change procedure, you will need to get a list of public BLS credentials for all of your Solo validators.

IconContact StakeWise Team

To obtain your validator indices and withdrawal credentials, please contact the StakeWise team via Discord ↗ or email at info@stakewise.io.

Download and Launch Ethereum Staking Deposit CLI

  1. Go to the StakeWise Github page and download the Windows version of staking_deposit-cli zip archive
IconNote

The version of the staking_deposit-cli is based on the original cli by the Ethereum Foundation which was modified by StakeWise.

  1. In your Downloads folder, right-click on the downloaded package and select Extract All. Set Desktop as your destination folder
  2. Rename the extracted folder to staking_deposit-cli
  3. Move the deposit.exe file one directory up i.e., place it into the staking_deposit-cli folder
  4. Disconnect your machine from the Internet / disable Internet at your location to prevent possible intereference with the next steps
IconImportant

Failing to disconnect from the Internet might expose your machine to online interference with the credentials change procedure and result in a loss of all funds. We strongly recommend disconnecting / disabling the Internet connection at your location before you proceed.

  1. Launch the Command Line with Administrator privileges by typing cmd into the Windows search bar and using right-click to Run as administrator
  2. Navigate to the extracted files using the following command in the Command Line (insert your Windows profile name instead of YOURPROFILE):
cd /d %YOURPROFILE%/Desktop/staking_deposit-cli
  1. Launch the staking_deposit-cli and initiate the credentials change process with the following command in the Command Line:
deposit generate-bls-to-execution-change

At this stage, you should see the tool running, asking for your choice of language before you proceed.

Generate a .json File for Credentials Rotation

  1. Choose your preferred language for the procedure by entering the relevant number in the Command Line (use 3 for English)
  2. Type in mainnet into the Command Line when prompted to choose the network
  3. Type in your mnemonic (seed phrase) into the Command Line when prompted to choose the network (every word must be separated by a space)
  4. Type 0 into the Command Line when prompted to enter the index position for the keys
  5. Copy the Validator index list from the text file you downloaded from StakeWise and paste into the Command Line when prompted to enter the list of validator index numbers
  6. Copy the Withdrawal credentials list from the text file you downloaded from StakeWise and paste into the Command Line when prompted to enter the list of old BLS withdrawal credentials
  7. Copy the withdrawal address you would like to use for the withdrawal of validator funds and paste into the Command Line when prompted to enter the new execution address
IconImportant

Please double-check the withdrawal address you insert to ensure that you entered the correct address. Entering the wrong address will result in a loss of all funds.

  1. Copy and paste the withdrawal address into the Command Line again when asked to repeat At this stage, you will have generated a .json file that can be found in the staking_deposit-cli folder

Broadcast the .json File Message to the Network

  1. Head to the Beacon Chain Explorer website
  2. Upload your .json file into the relevant form

At this stage, your BLS withdrawal credentials should be changed to 0x01 withdrawal address to enable partial and full withdrawals for your Solo validators. Congratulations!

IconNote

If you are unsure whether the procedure was successful, in about 1 hour after the procedure visit https://beaconcha.in/validator/index#withdrawals by replacing "index" with your actual validator index (e.g., https://beaconcha.in/validator/156849#withdrawals).

If the procedure was successful, then you should see an expected date of the first partial withdrawal (i.e., rewards payout) from your validator. If you don't see it, please refer to the guide again.