This article explains what withdrawals are, how they work, and how to use this new feature.
Withdrawals represent the final missing piece in the validator lifecycle—a feature under development since Ethereum's Beacon Chain launch in December 2020—now arriving with the Shanghai upgrade. As Shanghai is expected to launch in the first half of 2023, it's crucial to understand withdrawals: their purpose, mechanics, and implementation.
Historical Context
At its December 2020 launch, the Beacon Chain lacked bidirectional communication with the Ethereum execution layer. While validator balances accumulated on the consensus layer, withdrawals were technically impossible. Post-Merge (September 2022), execution blocks became subsets of consensus blocks, enabling value transfers between chains—including validator rewards.
👉 Explore Ethereum staking rewards
Validator Roles and Rewards
Since genesis, validators have:
- Proposed new blocks
- Attested to block validity
- Maintained chain security
Active validator counts grew from ~20,000 to ~520,000, securing both consensus and (post-Merge) execution layers. Rewards accumulate as protocol-generated ETH on the consensus layer but remained inaccessible until withdrawals.
Reward Statistics
- Total accumulated rewards: >1M ETH
- Individual rewards: Typically <2 ETH (some up to 5 ETH)
- Key limitation: Pre-Shanghai, rewards exist only as ledger entries without spendable representation.
Shanghai Upgrade Mechanics
Each post-Shanghai execution block includes ~16 withdrawals transferring ETH to execution-layer accounts. Withdrawal structure:
| Component | Description |
|---|---|
| Withdrawal index | Unique identifier |
| Validator index | Source validator reference |
| Address | Recipient execution address |
| Amount (Gwei) | Transferrable ETH quantity |
Processing notes:
- Withdrawals aren't transactions—no gas costs or smart contract triggers
- Funds derive from protocol issuance (not deposit contracts)
- Balances update atomically with block processing
Withdrawal Clock System
A sequential processing mechanism handles withdrawals via a "clock" metaphor:
- Pointer cycles through validators (index 0 → ~520k)
For each validator, checks:
- Type 1 credentials + >32 ETH balance → excess ETH withdrawn
- Type 1 credentials + "withdrawable" status → full balance withdrawn
- Processes up to 16 withdrawals/block
- Full cycle duration: ~4.5 days (varies with validator count)
👉 Optimize your staking strategy
Credential Migration Process
40% of validators currently use Type 0 (BLS-based) credentials requiring migration to Type 1 (execution address-based) for withdrawals.
Migration Steps
Address Selection
- Choose execution address(es) carefully—one-time change
- Trade-offs: Unified address (gas efficiency) vs segregated (security)
Operation Creation
Offline process including:- Validator index
- Current BLS public key
- New execution address
- Signature from current credentials
Broadcasting
- Submit to consensus node post-Shanghai
- Typical confirmation: 1-2 hours (peaks during initial migration wave)
Security Best Practices
Use an air-gapped process for operation creation:
- Online: Fetch chain data
- Transfer via USB
- Offline: Generate signed operations
- Transfer back
- Online: Broadcast
FAQs
Q: Can I withdraw my initial 32 ETH stake?
A: Not yet—Shanghai only enables reward withdrawals. Full stake withdrawals require future upgrades.
Q: How often do withdrawals occur?
A: ~16 withdrawals/block (~115,200/day at 100% slot utilization).
Q: What happens if my validator gets slashed?
A: Slashed validators must wait through additional penalties before withdrawing remaining funds.
Q: Are withdrawal addresses changeable?
A: No—Type 1 credentials are permanent once set. Choose addresses carefully.
Conclusion
Shanghai's withdrawal functionality fulfills Ethereum's long-standing promise to stakers, completing the validator lifecycle. By enabling automated reward access and credential modernization, it strengthens Ethereum's security model while providing liquidity to participants.