Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
LABS
Glossary

Withdrawal Credentials

A cryptographic commitment, typically a hash, specified during a validator deposit that designates the address authorized to eventually withdraw the staked funds.
Chainscore © 2026
definition
ETHEREUM STAKING

What are Withdrawal Credentials?

A cryptographic identifier that specifies the destination for withdrawing staked ETH and rewards from the Beacon Chain.

Withdrawal credentials are a 32-byte field in a validator's record on the Ethereum Beacon Chain that acts as the designated address or mechanism for all future withdrawals. This field is set during the initial validator deposit and is immutable, permanently locking in the destination for the validator's 32 ETH stake and any accrued rewards. The first byte, known as the withdrawal prefix (e.g., 0x00 or 0x01), defines the type of withdrawal mechanism, while the remaining 31 bytes specify the execution layer target, such as an Ethereum address.

There are two primary types of withdrawal credentials. The original BLS withdrawal credentials (prefix 0x00) were tied to a BLS public key, requiring a corresponding BLS signature to withdraw, a capability not enabled at the Beacon Chain's launch. The current standard is Ethereum execution layer (EL) withdrawal credentials (prefix 0x01), where the remaining 31 bytes are a hash of a standard Ethereum address. This type allows for automated, permissionless withdrawals directly to that address following the Shanghai/Capella upgrade, which enabled staking withdrawals.

The process of changing from BLS (0x00) to execution layer (0x01) credentials is known as a credential change. Validators with the old BLS type must broadcast a BLSToExecutionChange message, signed with their BLS private key, to update their withdrawal address to a standard Eth1 address. This one-time operation is critical for those who staked before the Shanghai upgrade to gain access to their funds. The change is processed by the Beacon Chain and does not require the validator to exit.

Withdrawal credentials are fundamental to Ethereum's security model. By permanently binding the stake to a specific withdrawal target, they prevent the theft of staked funds even if a validator's signing keys are compromised. The scheduled, automated disbursement of rewards to the 0x01 address also enhances network stability by providing predictable liquidity for validators without requiring them to cease validation duties.

how-it-works
ETHEREUM STAKING MECHANISM

How Withdrawal Credentials Work

A technical overview of the cryptographic identifier that controls access to a validator's staked ETH on the Beacon Chain.

Withdrawal credentials are a 32-byte hash that specifies the destination address for withdrawing staked Ether from the Ethereum Beacon Chain. They are set during validator deposit and are a critical security parameter, as they cryptographically authorize the eventual transfer of the validator's 32 ETH balance and accrued rewards. The first byte of the credential, known as the prefix, determines its type and the withdrawal mechanism, with 0x00 for BLS and 0x01 for execution-layer (Eth1) addresses being the most common.

The two primary types are the BLS withdrawal credential (prefix 0x00) and the execution withdrawal credential (prefix 0x01). The original BLS type requires a future BLS signature to authorize withdrawal, while the execution type points directly to a standard Ethereum account, enabling automated withdrawals post the Shanghai/Capella upgrade. Validators with 0x00 credentials must perform a one-time BLS to execution credential change to switch to a 0x01 address, a process that signs a message with the validator's BLS private key to update the credential on-chain.

This mechanism ensures that the staking deposit contract, which holds the initial 32 ETH, is a one-way function; funds can only move to the address defined by the withdrawal credential. The design separates the signing keys used for block proposal and attestation duties from the withdrawal keys that control the funds, enhancing validator security. During the initial launch of the Beacon Chain, only BLS credentials (0x00) were permitted, which is why a system-wide credential change operation was later introduced to enable withdrawals.

From a practical standpoint, when a user stakes ETH through a service or solo, they must specify the withdrawal address. Staking pools and custodial services typically manage this credential on behalf of users. The credential is permanently recorded in the validator's record on the Beacon Chain and can be publicly viewed via block explorers. Understanding this field is essential for anyone managing validators, as it dictates the ultimate ownership and liquidity of the staked capital.

key-features
ETHEREUM CONSENSUS MECHANISM

Key Features of Withdrawal Credentials

Withdrawal credentials are a critical component of Ethereum's proof-of-stake system, specifying the destination for a validator's staked ETH and rewards. They are a 32-byte field in a validator's deposit data, with the first byte defining the type.

01

Credential Types (0x00 vs. 0x01)

The first byte of the credential defines its type and security model.

  • 0x00 (BLS Withdrawal): The original type. Points to a BLS public key, requiring the corresponding private key to sign a withdrawal request. This key was initially not usable on the execution layer.
  • 0x01 (Execution Layer Withdrawal): The current standard. Points to an Ethereum execution layer address (e.g., 0x...). Staking rewards and the validator balance are automatically sent to this address, enabling non-custodial staking.
02

The BLS to Execution Change

A mandatory, one-time message required to activate withdrawals for validators created before the Shanghai/Capella upgrade.

  • Purpose: Changes the withdrawal credential from type 0x00 (BLS) to type 0x01 (execution address).
  • Process: The validator operator signs a BLSToExecutionChange message, which is broadcast to the consensus layer.
  • Result: Once processed, the validator's withdrawal address is permanently set, enabling automated reward distribution and eventual full balance withdrawal.
03

Automatic Sweeping & Withdrawals

With 0x01 credentials, the protocol automatically manages fund distribution.

  • Partial Withdrawals: Excess balance above 32 ETH (from rewards) is automatically "swept" to the withdrawal address every few days.
  • Full Withdrawals: When a validator exits the active set, its full 32 ETH balance is automatically sent to the withdrawal address after a delay.
  • Key Benefit: Eliminates the need for manual withdrawal transactions, reducing operational overhead and risk.
04

Security & Immutability

Withdrawal credentials provide a critical security guarantee.

  • Set at Deposit: The credential is committed to the beacon chain during the initial validator deposit and cannot be changed except via the authorized BLSToExecutionChange for 0x00 types.
  • Withdrawal Address Control: For 0x01, funds can only be sent to the pre-specified execution address. This prevents theft of staked funds even if the validator's signing keys are compromised.
  • Foundation: This immutability is a cornerstone of Ethereum's trust-minimized staking design.
05

Role in Validator Lifecycle

The credential is integral to key validator states and transitions.

  • Activation: A validator with 0x00 credentials cannot be activated post-Shanghai; the BLS change is required.
  • Exiting & Slashing: The credential determines the final destination for the validator's balance upon exit, whether voluntary or due to slashing.
  • Record Keeping: The credential is a permanent part of the validator's record on the beacon chain, auditable by anyone.
06

Technical Format & Generation

A withdrawal credential is a standardized 32-byte hash.

  • Structure: 0x01 + 11 zero bytes + 20-byte Ethereum address. For example: 0x010000000000000000000000<20-byte-address>.
  • Creation: Derived by taking the Keccak-256 hash of the execution address, masking the first byte to 0x01, and zeroing the next 11 bytes.
  • Deposit Data: This hash is included in the DepositData object signed by the depositor and submitted to the Ethereum deposit contract.
credential-types
ETHEREUM CONSENSUS LAYER

Types of Withdrawal Credentials

Withdrawal credentials are a critical component of an Ethereum validator's identity, specifying the destination for staking rewards and the eventual return of the 32 ETH stake. This section details the two primary credential types and their functional differences.

A withdrawal credential is a 32-byte field in an Ethereum validator's record that defines the authorized recipient of staked ETH. There are two primary types: 0x00 (BLS_WITHDRAWAL_PREFIX) and 0x01 (ETH1_ADDRESS_WITHDRAWAL_PREFIX). The type is determined by the first byte, or prefix, of the credential. The 0x00 type is a BLS public key, while the 0x01 type is a hash of an Ethereum execution layer address. This distinction dictates the mechanisms available for withdrawing funds and is a fundamental part of a validator's initial setup.

The 0x00 (BLS) credential was the original standard for validators launched before the Shanghai/Capella upgrade. It links withdrawals to a BLS public key, requiring a corresponding BLS private key to generate a cryptographic signature for any withdrawal. Initially, this type only permitted the withdrawal of accumulated rewards to a specified execution address. To fully withdraw the 32 ETH stake, a validator operator had to perform a BLS to execution change operation, converting the credential to the 0x01 type. This one-time operation is a critical security and operational step for early validators.

The 0x01 (Execution) credential is the modern standard, directly linking a validator to a standard Ethereum account (Externally Owned Account or smart contract). This type enables both partial withdrawals of accrued rewards and full withdrawals of the entire stake to be sent automatically to the specified address. Since the Shanghai/Capella upgrade, all new validators must be created with a 0x01 credential. This design simplifies operations, enhances security by removing reliance on a separate BLS key for withdrawals, and enables automated, programmable control over staking proceeds.

The choice and management of withdrawal credential type have significant implications. For validators with a 0x00 credential, the BLS change operation is mandatory to access the staked principal. The process is irreversible and must be broadcast as a signed message to the Beacon Chain. In contrast, validators with a 0x01 credential from inception have no such requirement. This evolution reflects Ethereum's shift towards a more integrated and user-friendly staking model, reducing complexity and key management overhead for node operators.

WITHDRAWAL CREDENTIAL TYPES

Comparison: BLS vs. Execution Layer Credentials

A technical comparison of the two primary credential types that control validator withdrawals on the Beacon Chain.

FeatureBLS Withdrawal Credentials (0x00)Execution Layer Withdrawal Credentials (0x01)

Prefix Byte

0x00

0x01

Associated Address Type

BLS Public Key

Ethereum Execution Address (Externally Owned Account or Contract)

Withdrawal Destination

Beacon Chain (BLS-controlled)

Specified Execution Layer Address

Withdrawal Automation

Requires BLS Key Signature for Withdrawal

Default for New Validators (Post-Capella)

Primary Use Case

Initial/legacy validators, staking pools

Direct user control, automated withdrawals

security-role
ETHEREUM CONSENSUS LAYER

Security Role and Implications

In Ethereum's proof-of-stake system, withdrawal credentials are a critical security mechanism that permanently links a validator's identity to a destination for its staked ETH, ensuring funds can only be sent to an authorized address.

Withdrawal credentials are a 32-byte field set during validator deposit that specifies the ultimate recipient address for a validator's staked ETH and rewards. This field is immutable once set, acting as a cryptographic commitment that binds the validator's public key to a specific Ethereum address, most commonly a standard 0x01 type for execution layer addresses. This design ensures that even if a validator's signing keys are compromised, the attacker cannot redirect the underlying 32 ETH stake, as withdrawals are exclusively authorized to the pre-defined credential.

The security implications are profound. By separating the withdrawal key (implied by the credential) from the signing keys used for block proposal and attestation duties, Ethereum implements a principle of least privilege. A compromised signing key allows an attacker to perform slashable actions, potentially getting the validator ejected, but they cannot steal the staked capital. This credential system is foundational to Ethereum's slashing design, as it guarantees that penalties are financial (loss of stake) rather than catastrophic (theft of principal).

From an operational security perspective, the type of credential chosen is crucial. The 0x00 BLS type, used initially, required a BLS withdrawal key for signing, while the modern 0x01 type points directly to an execution layer address, simplifying user experience and key management. Validators must ensure the credential is set correctly at deposit, as errors are irreversible and could permanently lock funds. This mechanism underscores that in proof-of-stake, security is not just about protecting active keys but also about guaranteeing the eventual, authorized recovery of capital.

ecosystem-usage
WITHDRAWAL CREDENTIALS

Ecosystem Usage and Examples

Withdrawal credentials are a foundational component of Ethereum's proof-of-stake security model, governing how validator rewards and principal are accessed. Their implementation and management are critical for staking services, user security, and network upgrades.

03

Solo Staker Security

For solo stakers, correctly setting the withdrawal credential is a critical security step. The credential must point to an Ethereum address whose private key is securely stored, separate from the validator signing keys. Best practices include:

  • Using a hardware wallet for the withdrawal address.
  • Ensuring the address is correct before depositing, as it cannot be changed in the initial deposit.
  • Later using the BLSToExecutionChange message to redirect funds from a BLS key to this secure execution address.
04

Validator Exit and Withdrawal Process

Withdrawal credentials directly control the flow of funds when a validator exits the network.

  1. Exit Initiation: A voluntary exit message is signed by the validator's signing key.
  2. Withdrawal Trigger: After exit, the network's withdrawal sweep process automatically sends the validator's balance to the address specified in its withdrawal credentials.
  3. Fund Destination: If credentials are 0x01 type, ETH is sent to that execution address. If still 0x00 (BLS), funds remain locked until a BLSToExecutionChange is broadcast.
05

Future-Proofing & 0x02 Credentials

Ethereum's roadmap includes introducing a new 0x02 withdrawal credential type to support advanced features. This is designed for:

  • Smart Contract-Controlled Validators: Allowing a smart contract (not just an EOA) to control withdrawals, enabling more complex staking logic and decentralized governance.
  • Post-Quantum Security: The 0x02 format is structured to be compatible with future cryptographic schemes, ensuring the withdrawal mechanism remains secure against evolving threats.
06

Audit and Monitoring Consideration

Blockchain analysts and auditing firms monitor withdrawal credentials as a key on-chain metric. Tracking changes helps assess:

  • Network Health: The percentage of validators that have upgraded to 0x01 credentials indicates readiness for smooth withdrawals.
  • Centralization Risk: Concentration of withdrawal credentials to a few addresses (e.g., major staking pools) can be quantified.
  • Security Audits: Protocols are audited to ensure withdrawal credentials are set correctly to intended, secure addresses, preventing fund loss.
WITHDRAWAL CREDENTIALS

Common Misconceptions

Clarifying frequent misunderstandings about the critical address field that controls validator withdrawals on Ethereum.

Withdrawal credentials are a 32-byte field in a validator's deposit data that specifies the Ethereum address (or a cryptographic hash of one) authorized to withdraw the validator's staked ETH and accrued rewards. They are a foundational security mechanism, ensuring that only the designated owner can initiate withdrawals, and they are immutable once set during the initial deposit. This field is critical because it permanently links a validator's 32 ETH stake to a specific destination for its eventual exit from the Beacon Chain. There are two main types: 0x00 (BLS) credentials, which were the original standard, and 0x01 (Execution Layer) credentials, which are required for automated, non-custodial withdrawals to a standard Ethereum address.

ETHEREUM CONSENSUS

Technical Deep Dive

Withdrawal credentials are a critical component of Ethereum's proof-of-stake system, controlling how validator rewards and the staked principal are accessed. This section details their mechanics, types, and operational significance.

Withdrawal credentials are a 32-byte field in a validator's deposit data that specifies the ultimate destination address for all withdrawals, including staking rewards and the 32 ETH principal. They act as a cryptographic pointer, ensuring funds can only be sent to a pre-authorized Ethereum address, which is set irrevocably during the initial validator deposit. This mechanism decouples the signing keys used for consensus duties from the withdrawal keys that control the funds, enhancing security by limiting the exposure of the withdrawal capability.

ETHEREUM STAKING

Frequently Asked Questions

Common questions about withdrawal credentials, a critical component for managing staked ETH and rewards on proof-of-stake networks like Ethereum.

Withdrawal credentials are a 32-byte field in a validator's deposit data that specifies the destination address for withdrawing staked Ether and accumulated rewards. They act as a cryptographic pointer, ensuring that only the designated owner can initiate a withdrawal from the Beacon Chain. The most common format is a BLS_WITHDRAWAL_PREFIX (0x00) followed by a hash of the destination address, which was the standard for initial staking deposits. The introduction of the 0x01 credential type enabled direct, programmable withdrawals to an execution layer (Eth1) address, a key upgrade implemented during the Shanghai/Capella hard fork.

ENQUIRY

Get In Touch
today.

Our experts will offer a free quote and a 30min call to discuss your project.

NDA Protected
24h Response
Directly to Engineering Team
10+
Protocols Shipped
$20M+
TVL Overall
NDA Protected Directly to Engineering Team