Skip to main content

Withdraw ETH from a validator

Withdrawals send ETH from your validator to its withdrawal address. There are two types of withdrawals:

  • Automatic, which the network pays without a transaction or gas.
  • Manual, which you request from your withdrawal address.

What your validator can get depends on its withdrawal credentials.

Operating system
Network

To see your credentials, ask your beacon node:

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

The start indicates the type (0x00, 0x01, or 0x02), and the last 40 hex characters are the withdrawal address. Once set, you can’t change the withdrawal address.

Automatic withdrawals​

You don't need to do anything. The network goes through all validators in turn and pays out what each one has to withdraw:

CredentialsWhile activeAfter exit
0x00… (legacy)Nothing, until you add a withdrawal addressNothing, until you add a withdrawal address
0x01… (regular)Everything above 32 ETHThe full balance
0x02… (compounding)Everything above 2048 ETHThe full balance

On mainnet, a full round takes several days, so expect a payment every few days to a week or more. After an exit, the full balance is paid in the first round once the validator is withdrawable, about 27 hours after its exit epoch.

To see your withdrawals, look under "withdrawals" for your validator or address on a block explorer such as https://beaconcha.in.

No withdrawals arrive? Check the credentials: nothing is withdrawn from a 0x00 validator. A new 0x01 validator has a little above 32 ETH to pay out. A 0x02 validator pays nothing automatically until it exceeds 2048 ETH: use a partial withdrawal instead.

Manual withdrawals​

A 0x02 validator can withdraw part of its balance with a request sent from your withdrawal address, as long as 32 ETH stays. If you ask for more than the balance above 32 ETH, you get only that. The validator keeps running as before. Prysm and your keys are not involved.

  • The validator must be active, not exiting, and active for at least 256 epochs (about 27 hours).
  • Each request costs a small fee. If the request is invalid, the network ignores it and doesn't refund the fee.
  • The withdrawal goes through the exit queue, then waits 256 epochs. Expect at least a day, and longer when the queue is busy.

A 0x01 validator can't make manual withdrawals. See Convert a 0x01 validator to 0x02.

Send the request​

Open Validator actions on the Staking Launchpad: https://launchpad.ethereum.org/en/validator-actions. Connect the wallet that controls the withdrawal address, select the validator, and choose Request partial withdrawal.

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

Check that it works​

Your beacon node shows partial withdrawals waiting in the queue:

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