The Staked Blog

ETH Shapella Upgrade Guide for Staked Customers

Posted by Staked on Apr 11, 2023 9:57:35 PM

On April 12th at ~ 6:27 PM EST the Ethereum network will upgrade via the Shanghai and Capella ("Shapella") hard forks. The Shapella forks will enable transfers between Ethereum's consensus and execution layers. This will make it possible to access staking rewards, exit from the validator set, or un-stake and withdraw funds.

Shapella allows stakers to upgrade their withdrawal credentials from BLS to ETH keys. Stakers must upgrade the credentials for all their validators to access rewards, un-stake or withdraw funds.

Unfortunately, Ledger will not be supporting the credential upgrade process until late June. As a result, stakers will need to use a command line interface (CLI) tool to upgrade.

See the FAQ below for instructions on exporting keys from a Ledger, and upgrading from BLS to ETH credentials using a CLI.

The Kraken Customer Experience team is available 24/7/365 via Zendesk to help with the upgrade process: https://staked.zendesk.com/hc/en-us/requests/new

If you used an ETH address instead of BLS keys when creating your validator, you do not need to upgrade. Your consensus layer rewards will be accessible shortly after the fork, and you can un-stake anytime you want.

Post fork, the protocol will distribute consensus layer rewards automatically to all validators with upgraded credentials. The current distribution frequency is ~ 5 days, and subject to the number of active validators. See the FAQ below for a more detailed explanation of reward frequency.

There are no gas fees for the automatic staking reward sweeps. You do not need to un-stake if you want to access or withdraw your staking rewards. Staked cannot access any consensus layer rewards.

Staked will distribute all execution layer rewards (transaction fees + MEV) earned before the fork in early May to validators with upgraded credentials. Subsequently, Staked will distribute execution layer rewards on a 2 - 3 week cadence.

Upgraded validators can execute voluntary exits, or un-stake, anytime using the Staked website. See the FAQ below for instructions on un-staking and the validator exit queue.

Post Shapella, Staked will charge a 10% commission on all rewards and fees earned by all stakers, including those on the 1-time payment plan.

Staked charges a percentage that is equal to 10% of all consensus and execution layer rewards. To remain non-custodial, Staked only collects this fee from the execution layer rewards. All consensus layer rewards go to the withdrawal credentials of the validator. Since Staked charges a fee on only the execution layer rewards, the percentage will be higher than 10%.

For more information, please visit the Ethereum Foundation’s primer on Withdrawals: https://ethereum.org/en/staking/withdrawals/

https://beaconcha.in/ is a good resource to track the number of active validators.

If you are using the Staked API for ETH staking, please contact us for updated documentation.

FAQs

Note: Please don’t panic. The Kraken Customer Experience team is available 24/7/365 via Zendesk to help with the upgrade process: https://staked.zendesk.com/hc/en-us/requests/new

Upgrade Withdrawal Credentials

Upgrading from BLS to ETH keys is a mandatory first step to receiving rewards, or un-staking and withdrawing. If you used an ETH address instead of BLS keys when creating your validator, you do not need to upgrade.

Q: I used the Ethereum Foundation's CLI or Staked’s modified version, to generate my BLS withdrawal credentials. How do I upgrade my withdrawal credentials from BLS key to ETH address?

A: We recommend using the Ethdo tool to generate your withdrawal credential upgrade transactions. You can upload the output from Ethdo to the Staked website for broadcast to the Ethereum network. You can also broadcast the transactions using any Ethereum beacon node.

We recommend using Ethdo because it supports the non-custodial method of key generation used by Staked. Since Staked is non-custodial, stakers generate their withdrawal credentials, and Staked generates the validator signing keys. Most CLI tools assume the staker generates both the withdrawal credentials and the validator signing keys. These types of tools may not work as expected.

If you have multiple withdrawal credentials, you will need to repeat the following process for each of them. Keep in mind, the same withdrawal credential can be used for many validators. 

1.  Install Ethdo per the Ethdo instructions on both a computer connected to the internet and one that is air gapped (not connected to the internet): https://github.com/wealdtech/ethdo

a.  We will be using the Ethdo instructions for offline preparation with a few modifications. This will keep your private keys separated from the internet for security. You can review the regular Ethdo instructions here: https://github.com/wealdtech/ethdo/blob/master/docs/changingwithdrawalcredentials.md#online-and-offline-process

2.  First, from the online machine run this command: ethdo validator credentials set --prepare-offline

3.  That will output a file called offline-preparation.json. Move this file to your offline computer and continue there.

4. You will need the private key of your BLS withdrawal credential. If you have this already, skip to step 5. You can re-derive your BLS private key from the mnemonic and path used to create it. The command is: ethdo account derive --mnemonic="your 12 or 24 word mnemonic here" --path="m/12381/3600/0/0" --show-private-key

a.  The path usually looks like m/12381/3600/0/0, but if you used a modified cli tool from Staked to create your BLS keys, then your path will have an additional /0 at the end, so the full path for the first validator should look like: m/12381/3600/0/0/0

5.  Next, run the command to produce the actual upgrade transactions: ethdo validator credentials set --offline --private-key=0xYourPrivateKeyFromStep4 --withdrawal-address=0xYourNewEthWithdrawalAddress

6.  That will produce a file called change-operations.json. This file is safe to move back to an online computer.

7.  Access the ETH monitor dashboard on the Staked website at: https://staked.us/v/eth2/monitor

8.  Click on the Orange Upgrade Addresses button above the validator table. This will open a JSON file upload modal. Upload the change-operations.json file and click on the blue Confirm and Start Upgrading button.  

Alternatively, you can broadcast the upgrade transaction using Ethdo’s node or any beacon node.

Q: I used a Ledger hardware wallet to generate and custody my BLS withdrawal credentials. How do I upgrade my withdrawal credentials from BLS to ETH keys?

A: Unfortunately, Ledger will not be supporting the key upgrade process until late June. As a result, stakers will need to use a command line interface (CLI) tool to upgrade.

You will need to use the mnemonic from your Ledger to re-derive your BLS private key. Since this process touches private keys, we strongly recommend taking extreme caution. Staked is not responsible for any loss, destruction or compromise of private keys.

If you are not comfortable interacting with a CLI, you can wait until Ledger adds support in June. All of your rewards will continue accruing as usual. You will not forego any rewards.

Follow the steps outlined above in Upgrading Withdrawal Credentials. 

Receiving Consensus Layer Rewards

Q: How often will I receive my consensus layer rewards? 

A: Post fork, the protocol will distribute consensus layer rewards automatically to all validators with upgraded credentials. The current distribution frequency is ~ 5 days, and subject to the number of active validators.

Since there are 562,728 active validators as of this writing, there is a limit of 16 withdrawals per block, or 115,200 validator withdrawals per day. This equates to a rewards distribution approximately every ~ 5.2 days.

A helpful table for understanding distribution frequency based on active validator count follows:

Active Validators: Distribution Frequency

500,000: 4.3 days

600,000: 5.2 days

700,000: 6.1 days

800,000: 7.0 days

There are no gas fees for the automatic staking reward sweeps. You do not need to un-stake if you want to access or withdraw only your staking rewards.

Voluntary Exits (Un-Stake + Withdraw Funds)

Q: I have upgraded the withdrawal credentials for all the validators I want to exit voluntarily. How do I un-stake and withdraw my funds?

A: You must have access to your withdrawal credential wallet. If you have multiple withdrawal credentials, you will need to repeat the following process for each of them. Keep in mind, the same withdrawal credential can be used for many validators. 

  • Visit the Monitor page on the Staked dashboard: https://staked.us/v/eth2/monitor
  • Select all the validators you want to exit in the validator table. Click on the Exit button in the top left corner of the table.
  • The exit modal will list all the validators ready to un-stake.
  • Click on the blue Connect Wallet icon in the bottom right of the exit modal. Connect the ETH address you set as your upgraded withdrawal credentials.
  • Click on the green Exit button at the bottom of the exit modal to un-stake your validators.
  • You will be prompted to sign with your wallet to confirm and submit the exit.

After submitting an exit transaction, the validator enters the exit queue. There is a protocol level limit to the amount of validators that can exit the validator set per epoch. Excess validators must remain in the exit queue on a first in, first out basis. If demand to un-stake is high, voluntary exits may take days or weeks for the protocol to process. After the exit queue there is a fixed 27 hour waiting period until a validator is un-staked.

After a validator has been un-staked, it enters a withdrawal cycle. This cycle can currently take up to ~ 5 days. It can take less than ~ 5 days depending on when the validator enters the cycle. Once the validator finishes the cycle, the 32 ETH stake and all rewards will be available using the new credentials.

Q: How long does the voluntary exit / un-staking queue take?

A: Per the current parameters, the exit (and activation) queue length can be calculated with the following formula:

churn_limit = max(4, V_active/65536)

Where V_active is the number of active validators and churn_limit specifies the number of validators that can enter or exit in an epoch.

Since there are 562,728 active validators as of this writing, there is a limit of 8 exits per block, or 1,800 validator exits per day.

For more information on the activation and exit queues, please see: https://hackmd.io/@ghosts0301/rkmOjqY7t

Note: Please don’t panic. The Kraken Customer Experience team is available 24/7/365 via Zendesk to help with the upgrade process: https://staked.zendesk.com/hc/en-us/requests/new

Recent Posts