Skip to main content

Overview

BlockBody contains the executable content of a block: transactions, uncle/ommer blocks, and (post-Shanghai) withdrawals.
// Obtain block body via eth_getBlockByNumber(..., true) for full transaction objects.

Type Definition

// Transactions, ommers (pre-merge), withdrawals (post-Shanghai)
Fields:
  • transactions - Ordered list of transactions in the block
  • ommers - Uncle/ommer block headers (deprecated post-merge)
  • withdrawals - Beacon chain withdrawals (post-Shanghai)

Creating BlockBody

from

Universal constructor from components.
// JSON: include 'withdrawals' for post-Shanghai blocks; 'ommers' for pre-merge

Transaction Types

BlockBody supports all transaction types:
TypeDescriptionIntroduced
LegacyOriginal transaction formatGenesis
EIP-2930Access list transactionsBerlin
EIP-1559Fee market transactionsLondon
EIP-4844Blob transactionsCancun
EIP-7702Account abstractionPrague
// Transaction types: 0 (legacy), 1 (EIP-2930), 2 (EIP-1559), 3 (EIP-4844)

Ommers (Uncle Blocks)

Ommers are deprecated post-merge. Always use empty array for new blocks.
// Ommers present only pre-merge; empty post-merge

Withdrawals (Post-Shanghai)

Withdrawals represent ETH being withdrawn from the beacon chain to execution layer.
// Withdrawal fields: index, validatorIndex, address, amount (Gwei)
Withdrawal amounts are in Gwei (10^9 Wei), not Wei!

See Also