As Ethereum transitions to its proof-of-stake consensus with Ethereum 2.0, validators play a crucial role in maintaining network security and integrity. One of the most important aspects of being a validator is understanding and securing your withdrawal key—a cryptographic credential that allows you to access and withdraw staked ETH after the Shanghai upgrade enabled withdrawals.
This guide walks you through everything you need to know about generating and protecting your withdrawal keys, ensuring long-term fund safety without compromising usability.
What Is a Withdrawal Key?
A withdrawal key is a cryptographic key pair (public and private) used by Ethereum 2.0 validators to initiate withdrawals of staked ether. Unlike execution-layer keys from Ethereum 1.0, withdrawal keys operate under the consensus layer and use the BLS12-381 elliptic curve, making them incompatible with legacy Ethereum tools.
Each validator must associate their deposit with a withdrawal public key during the staking process. This links the deposited funds to a specific withdrawal identity. Later, when withdrawing funds, the corresponding withdrawal private key is required to sign the transaction—proving ownership and authorizing the transfer.
👉 Learn how to securely manage your crypto assets with advanced tools
Why Are Withdrawal Keys Important?
Withdrawal keys serve two primary functions:
- Linking deposits to ownership: When you deposit 32 ETH into the beacon chain, the deposit contract records your withdrawal public key. This ensures only the rightful owner (with the private key) can later withdraw rewards or principal.
- Authorizing fund retrieval: Post-Shanghai upgrade, validators can exit and withdraw funds—but only if they possess the correct private key to sign the withdrawal message.
Even though withdrawals may not be frequent—especially for long-term stakers—the ability to access funds is fundamental. Therefore, securing this key is essential for financial sovereignty.
It’s worth noting that you don’t need to use the withdrawal private key regularly. In fact, it should remain offline and untouched unless an actual withdrawal is needed. This infrequent use makes security far more critical than accessibility.
How Many Private Keys Should You Protect?
If you run a single validator node, you’ll typically generate one withdrawal key pair. However, if you operate multiple validators, you face a decision: use one shared withdrawal key or unique keys per validator?
Shared vs. Unique Withdrawal Keys
Using a single withdrawal key across multiple validators simplifies management but introduces correlation risks:
- It becomes easier for observers to link multiple validator identities to one entity.
- The total value controlled by that single key increases, making it a more attractive target for attackers.
On the other hand, using unique withdrawal keys enhances privacy and reduces single points of failure—but only if each key is stored separately (e.g., on different physical devices or secure locations). If all keys are kept together, the security benefit diminishes.
For most individual stakers, using one well-protected withdrawal key is sufficient. Institutional operators or those prioritizing anonymity may opt for diversified key strategies.
Step-by-Step: Generating and Securing Your Withdrawal Key
To maintain maximum security, all steps should be performed on an air-gapped machine—a computer disconnected from the internet to prevent remote attacks.
We'll use ethdo, a command-line tool designed for Ethereum 2.0 key management, as our example. While hardware wallets now support BLS12-381 (unlike at the time of the original article), software tools like ethdo remain valuable for advanced users.
Step 1: Create a Withdrawal Wallet
Run the following command to create a hierarchical deterministic (HD) wallet:
ethdo wallet create --wallet="Staking wallet" --type=hd --walletpassphrase=secret1This generates a 24-word mnemonic phrase—your master recovery seed. Write it down and store it securely using fireproof and tamper-evident solutions like Cryptosteel or Blockplate.
⚠️ Never store the mnemonic digitally unless encrypted and offline.
Without this mnemonic, you cannot recover your wallet or access your funds.
Step 2: Create a Withdrawal Account
Next, generate an account within the wallet:
ethdo account create --account="Staking wallet/Withdrawal account" --walletpassphrase=secret1 --passphrase=secret2The second passphrase (secret2) protects the account locally and can be discarded after setup since the mnemonic provides full recovery capability.
Step 3: Record the Withdrawal Public Key
Retrieve your public key using:
ethdo account info --account="Staking wallet/Withdrawal account"You’ll see output including your BLS public key, which looks like:
0xa9ca9cf7fa2d0ab1d5d52d2d8f79f68c50c5296bfce81546c254df68eaac0418717b2f9fc6655cbbddb145daeb282c00
Save this value securely—it’s needed when creating deposit transactions.
Step 4: Delete the Wallet (Optional but Recommended)
Once you’ve recorded both the mnemonic and public key, delete the wallet from your system:
ethdo wallet delete --wallet="Staking wallet"Verify deletion by attempting to retrieve wallet info:
ethdo wallet info --wallet="Staking wallet"An error confirms successful removal.
Step 5: Test Wallet Recovery
Before using the key for real deposits, test recovery:
ethdo wallet create --wallet="Recovery wallet" --type=hd --walletpassphrase=temp1 --mnemonic="your 24-word mnemonic here"Then recreate the account:
ethdo account create --account="Recovery wallet/Withdrawal account" --walletpassphrase=temp1 --passphrase=temp2Finally, check the public key:
ethdo account info --account="Recovery wallet/Withdrawal account"Ensure it matches your previously recorded key. If it does, your backup is valid.
Delete the recovery wallet afterward:
ethdo wallet delete --wallet="Recovery wallet"👉 Discover secure ways to store and grow your digital assets today
Frequently Asked Questions (FAQ)
Q: Can I use the same withdrawal key for multiple validators?
Yes. A single withdrawal key can be linked to multiple validator deposits. This simplifies management but may reduce privacy.
Q: Are withdrawal keys compatible with hardware wallets?
Modern hardware wallets (e.g., Ledger) now support BLS12-381 and can store Ethereum 2.0 keys securely. However, during initial setup with tools like ethdo, ensure air-gapped environments.
Q: What happens if I lose my withdrawal private key?
You will permanently lose access to your staked ETH and any accrued rewards. There is no recovery mechanism outside your mnemonic or private key.
Q: Do I need to keep my withdrawal key online?
No. The private key should remain offline at all times unless actively signing a withdrawal. Cold storage is strongly recommended.
Q: Can I change my withdrawal address after staking?
Yes—after the Capella upgrade, validators can update their withdrawal credentials via a signed message, allowing migration from BLS to Ethereum execution addresses (0x).
Q: Is my public key safe to share?
Yes, the public key is designed to be shared—it’s embedded in deposit transactions. However, ensure no one tampers with it during transmission.
Core Keywords
- Ethereum 2.0
- ETH validator
- Withdrawal key
- Staking security
- BLS12-381
- Ethdo
- Cryptographic keys
- Air-gapped setup
Securing your withdrawal key isn't just a technical step—it's a foundational practice for responsible staking. Whether you're running one node or managing a large-scale operation, treating your withdrawal credentials with care ensures long-term control over your digital assets.
👉 Start managing your crypto with confidence—explore secure tools now