debug_getBadBlocks
curl --request POST \
--url https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/ \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "debug_getBadBlocks",
"params": [],
"id": 1
}
'import requests
url = "https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/"
payload = {
"jsonrpc": "2.0",
"method": "debug_getBadBlocks",
"params": [],
"id": 1
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({jsonrpc: '2.0', method: 'debug_getBadBlocks', params: [], id: 1})
};
fetch('https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'method' => 'debug_getBadBlocks',
'params' => [
],
'id' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_getBadBlocks\",\n \"params\": [],\n \"id\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_getBadBlocks\",\n \"params\": [],\n \"id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_getBadBlocks\",\n \"params\": [],\n \"id\": 1\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": "<unknown>"
}Robinhood Chain node API
debug_getBadBlocks | Robinhood
Robinhood Chain API method that returns a list of invalid blocks that the node has encountered. Useful for debugging consensus or block validation issues.
POST
/
debug_getBadBlocks
curl --request POST \
--url https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/ \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "debug_getBadBlocks",
"params": [],
"id": 1
}
'import requests
url = "https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/"
payload = {
"jsonrpc": "2.0",
"method": "debug_getBadBlocks",
"params": [],
"id": 1
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({jsonrpc: '2.0', method: 'debug_getBadBlocks', params: [], id: 1})
};
fetch('https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'method' => 'debug_getBadBlocks',
'params' => [
],
'id' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_getBadBlocks\",\n \"params\": [],\n \"id\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_getBadBlocks\",\n \"params\": [],\n \"id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://robinhood-mainnet.core.chainstack.com/23cf4479b299ab4835d76c05c468ca6e/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_getBadBlocks\",\n \"params\": [],\n \"id\": 1\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": "<unknown>"
}Robinhood Chain API method that returns a list of invalid blocks that the node has encountered. Useful for debugging consensus or block validation issues.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
none
Response
result— an array of bad block objects that the node has encountered. Each object contains the full block data and the reason it was rejected.
debug_getBadBlocks code examples
const { JsonRpcProvider } = require("ethers");
const provider = new JsonRpcProvider("CHAINSTACK_NODE_URL");
async function call() {
const result = await provider.send("debug_getBadBlocks", []);
console.log(result);
}
call();
from web3 import Web3
node_url = "CHAINSTACK_NODE_URL"
web3 = Web3(Web3.HTTPProvider(node_url))
result = web3.provider.make_request("debug_getBadBlocks", [])
print(result)
curl -X POST "CHAINSTACK_NODE_URL" \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"method": "debug_getBadBlocks",
"params": [],
"id": 1
}'
Last modified on July 18, 2026
Was this page helpful?
⌘I