[SWIP-14] Set 0x01 withdrawal address for the Pool validators with 0x00 credentials


A portion of the StakeWise Pool validators created before April 18th were created with 0x00 withdrawal credentials using a trustlessly generated shared withdrawal key, which must now be rotated to the 0x01 withdrawal credentials to support partial & full withdrawals.

The rotation of withdrawal credentials will be executed by the holders of the Horcruxes, cryptographically encrypted parts to the withdrawal key, subject to approval by the StakeWise DAO.

Below we propose a mechanism for the rotation, share the .json file (and its hash) with proposed withdrawal address changes, and initiate a DAO vote on the matter.


StakeWise Pool must support partial and full withdrawals to facilitate redemption of sETH2 and rETH2 tokens into ETH staked in the Pool. While the ability to redeem tokens and withdraw ETH natively will be shipped with a delay (related to StakeWise V3 development), it is essential StakeWise DAO prepare for this as much in advance as possible.

To ensure this, a rotation of 0x00 withdrawal credentials into 0x01 withdrawal address must be executed for just over 600 validators created before setting a 0x01 withdrawal address was possible.


The procedure will be executed by the holders of the Horcrux, a trustlessly generated withdrawal key that is split into 7 parts, which are held by the recognized figures in the Ethereum community whom the StakeWise team approached at the protocol’s inception.

The StakeWise team has prepared a json file that contains the payloads for setting a specific 0x01 withdrawal address for all the validators with 0x00 credentials. This file was generated using our open-source tool for withdrawal credentials rotation, based on validators.txt that contains all the StakeWise Pool validators with 0x00 withdrawal credentials.

Repo with the tool & list of 0x00 validators: https://github.com/stakewise/bls-to-exec
Payloads file: https://stakewise.infura-ipfs.io/ipfs/QmV7yxmtvigpm9pwdidERCFi3eLYXPEJokst7Nf4WSSsy5

All payloads contained in the file specify 0x2296e122c1a20Fca3CAc3371357BdAd3be0dF079 as the withdrawal address. This can be verified by using the tool on the validators.txt file. The payloads file was uploaded to IPFS, which produced a hash for its contents.

For the avoidance of doubt, 0x2296e122c1a20Fca3CAc3371357BdAd3be0dF079 is the same address that is currently used by all the StakeWise Pool validators created with 0x01 credentials. This fact can be checked here: https://etherscan.io/address/0xc874b064f465bdd6411d45734b56fac750cda29a#readProxyContract#F18

Full guide to learning about verifying StakeWise Pool withdrawal address:

Horcrux holders will use their shares of the withdrawal key to sign exit messages for all the validators with 0x00 withdrawal credentials. They will use the latest BLS horcrux tool for that. The sign command is the following:

./horcrux.sh sign --payloads-file= --output-file=./output.json --horcrux-file=

  • —payloads-file - the path to the saved payloads.json file with all the validators payloads
  • —output-file - the path to the file where the signatures will be saved
  • –horcrux-file - the path to encrypted withdrawal key share


Link to the vote :arrow_down_small:

Important: It is the duty of the StakeWise DAO members to review the payloads file contents and confirm its correctness.

The vote will last for 7 days to give all DAO members sufficient time for the necessary checks & due diligence. If the vote is successful, the team will move to initiate the rotation procedure together with the Horcrux holders immediately after the vote ends.

Please temporarily delegate your voting power to the users who can perform the checks if you are unable to do it yourself. If you can become a temporary delegate, please comment in this thread with the results of your check and your wallet address to receive delegations. Delegation is available in the left menu on the vote.stakewise.io page.

Get ready to step into the next era :muscle: LFG