Overview
Withdrawal represents a validator withdrawal from the beacon chain to the execution layer. Introduced in EIP-4895 (Shanghai/Capella upgrade), withdrawals enable validators to exit with their stake or receive periodic reward payments.
Type: Object containing index, validatorIndex, address, and amount
Structure
Key Concepts
- Amount: Specified in Gwei (10^9 wei), not Wei
- Two types: Full exits (32 ETH) and partial withdrawals (rewards)
- Automatic: No transaction needed, processed by protocol
- Rate limited: Maximum 16 withdrawals per block
Methods
Withdrawal.from(params)
Create Withdrawal from components.
Withdrawal.equals(a, b)
Check if two withdrawals are equal.
Usage Examples
Process validator exit
Track partial withdrawals
Convert amounts
Build withdrawal tree
Important Notes
Amount is in Gwei, not Wei! Always multiply by 10^9 when converting to Wei for execution layer operations.
Maximum 16 withdrawals per block - The protocol rate-limits withdrawals to prevent excessive state changes.
References