debug_getBadBlocks - Ethereum
Example code for the debug_getBadBlocks JSON RPC method. Сomplete guide on how to use debug_getBadBlocks JSON RPC in GetBlock Web3 documentation.
This method returns the list of recent blocks that the node considered invalid and rejected — usually due to invalid state transitions, invalid signatures, or protocol-rule violations. Small in normal operation; growing bad-block lists indicate a client bug, malicious block-builder behavior, or network fork-related issues.
Parameters
This method takes no parameters.
Request
curl --location --request POST 'https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/' \
--header 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"method": "debug_getBadBlocks",
"params": [],
"id": "getblock.io"
}'const axios = require('axios');
const response = await axios.post('https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/', {
jsonrpc: '2.0',
method: 'debug_getBadBlocks',
params: [],
id: 'getblock.io'
}, {
headers: { 'Content-Type': 'application/json' }
});
console.log(response.data.result);import requests
response = requests.post(
'https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/',
headers={'Content-Type': 'application/json'},
json={
'jsonrpc': '2.0',
'method': 'debug_getBadBlocks',
'params': [],
'id': 'getblock.io'
}
)
print(response.json())Response
{
"jsonrpc": "2.0",
"id": "getblock.io",
"result": [
{
"hash": "0xbadb100c00000000000000000000000000000000000000000000000000000000",
"block": {
"number": "0x171f000",
"hash": "0xbadb100c00000000000000000000000000000000000000000000000000000000",
"parentHash": "0x8db7d1e5a67c7e4f1bb2d4c50a9c27c3b4a7f9e6b7a4919c2d5b0a6f3d9e1c4b",
"timestamp": "0x67abcdef"
},
"rlp": "0xf90...",
"reason": "invalid state root"
}
]
}Response Parameters
jsonrpc
string
JSON-RPC protocol version ("2.0")
id
string
Request identifier matching the request
result
array of object
Array of bad-block records with block header, RLP, and rejection reason
Use Cases
Node Health Monitoring: Alert on non-empty bad-block lists — indicates a client bug or hostile block-builder
Fork Detection: Detect network splits by comparing bad-block lists across nodes
Consensus Client Debugging: Diagnose why specific blocks were rejected during consensus incidents
Error Handling
-32601
Method not found
debug module not enabled — Dedicated Node tier required
-32603
Internal error
Node failed to enumerate bad-block state
Web3 Integration
Last updated
Was this helpful?