Skip to main content

Merge several validators into one

A consolidation moves the whole balance of one validator (the source) into another (the target), then exits the source. The target is a compounding (0x02) validator: it keeps up to 2048 ETH staked so that several validators can become one. To consolidate, send a request from the source's withdrawal address. Prysm and your keys are not involved. A consolidation is permanent: the source can't be reactivated.

Operating system
Network

Before you begin​

  • The target has 0x02 credentials. If it starts with 0x01, first convert it to 0x02.
  • The source has 0x01 or 0x02 credentials. If it starts with 0x00, first convert it to 0x01.
  • Both validators are active and not exiting, and the source has been active for at least 256 epochs (about 27 hours).
  • The source has no partial withdrawal waiting in the queue.
  • You control the source's withdrawal address in a wallet that can connect to a website (for example, a hardware wallet through a browser extension), with a little ETH for gas and the request fee.

If any of these aren’t met, the network ignores the request and doesn’t refund the fee.

Check your credentials​

Run this for the source and for the target:

curl -s http://127.0.0.1:3500/eth/v1/beacon/states/head/validators/<VALIDATOR_INDEX_OR_PUBKEY> | jq '.data.validator.withdrawal_credentials'

The first byte is the credential type (0x01 or 0x02). The last 40 hex characters are the withdrawal address. The source's withdrawal address is the wallet you must send the request from.

Consolidate​

Check the target

The network doesn't check who owns the target. If you consolidate into someone else's validator, your ETH becomes theirs. Check the target's index and public key before you sign.

  1. Open Validator actions on the Staking Launchpad: https://launchpad.ethereum.org/en/validator-actions

    Type the address yourself. Websites that offer to "help" with this step are phishing.

  2. Connect the wallet that controls the withdrawal address. The Launchpad lists the validators whose withdrawal address it is. It only consolidates between these validators.

  3. Pick the validators, either way:

    • Select the target and choose Absorb another validator, then pick the source.
    • Select the source and choose Migrate funds, then pick the target.

    Check both indexes and public keys.

  4. Sign and send the transaction in your wallet. It pays gas plus a small request fee.

Keep the source running

The source still has duties until its balance moves to the target, including sync committee duties, which can continue after it exits. Keep it in your validator client until its status is withdrawal_done, or it loses balance.

Check that it works​

Once the request's block is processed, the source starts exiting. Run this for the source:

curl -s http://127.0.0.1:3500/eth/v1/beacon/states/head/validators/<SOURCE_INDEX_OR_PUBKEY> | jq '.data.status'
StatusMeaning
active_ongoingThe request isn't processed yet, or it was ignored.
active_exitingThe consolidation is underway. Keep the source running.
exited_unslashedThe source has exited. Its balance moves to the target about 27 hours later. Keep the source running.
withdrawal_doneThe balance has moved to the target. You can remove the source's key.

Until the balance moves, the consolidation shows up in the pending queue:

curl -s http://127.0.0.1:3500/eth/v1/beacon/states/head/pending_consolidations | jq

When many validators exit or consolidate, the exit can take days. Once the balance has moved, the target’s balance includes the source’s.