✅Ethereum JSON‑RPC Schema Changes & Execution Client Compatibility
Following Ethereum’s transition to Proof of Stake, the Execution Layer JSON-RPC schema was updated to reflect changes in block metadata.
The totalDifficulty
field was officially removed from the eth_getBlockByNumber
response. Additionally, the difficulty
field—previously used in Proof of Work—was retained as optional but is now considered obsolete and typically returned as "0x0"
by spec-compliant clients like Erigon v3. While some clients (e.g., Geth and BSC-Erigon) continue to include these fields for backward compatibility, developers relying on them should update their subgraphs and tooling to accommodate these schema changes.
Full schema details are available in the Ethereum Execution APIs documentation. We've added a chart with the current client compatibility with these updates as of July 17, 2025. Please check for specific client updates as needed.
Ethereum JSON‑RPC Schema Changes Post-Merge
totalDifficulty
❌ Removed from eth_getBlockByNumber
response
difficulty
⚠️ Optional / deprecated, expected to be 0x0
post-Merge
size
⚠️ Optional; may be omitted depending on client
Execution Client Compatibility
Besu
Returns 0
for an uncle block
Non-zero
Returned
Returns deprecated fields with valid values, noted here
Reth
Not returned
"0x0"
Returned
Highly spec-compliant, aligns with post-Merge schema
Last updated