Trace block by hash
curl --request POST \
--url https://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "debug_traceBlockByHash",
"params": [
"0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20"
]
}
'import requests
url = "https://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "debug_traceBlockByHash",
"params": ["0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20"]
}
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({
id: 1,
jsonrpc: '2.0',
method: 'debug_traceBlockByHash',
params: ['0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20']
})
};
fetch('https://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e', 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://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e",
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([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'debug_traceBlockByHash',
'params' => [
'0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20'
]
]),
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://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_traceBlockByHash\",\n \"params\": [\n \"0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20\"\n ]\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://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_traceBlockByHash\",\n \"params\": [\n \"0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e")
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 \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_traceBlockByHash\",\n \"params\": [\n \"0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": {}
}Ronin node API
debug_traceBlockByHash | Ronin
The debug_traceBlockByHash method provides a way to trace the execution of all transactions in a specific block identified by its hash.
POST
/
3997273fc956a67dc6982384500e669e
Trace block by hash
curl --request POST \
--url https://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "debug_traceBlockByHash",
"params": [
"0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20"
]
}
'import requests
url = "https://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "debug_traceBlockByHash",
"params": ["0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20"]
}
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({
id: 1,
jsonrpc: '2.0',
method: 'debug_traceBlockByHash',
params: ['0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20']
})
};
fetch('https://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e', 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://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e",
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([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'debug_traceBlockByHash',
'params' => [
'0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20'
]
]),
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://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_traceBlockByHash\",\n \"params\": [\n \"0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20\"\n ]\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://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_traceBlockByHash\",\n \"params\": [\n \"0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e")
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 \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_traceBlockByHash\",\n \"params\": [\n \"0x66d67565dc84eb6e579ebe142683e4338498653ff6b7a6e2724e80a73aca4f20\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": {}
}The
debug_traceBlockByHash method provides a way to trace the execution of all transactions in a specific block identified by its hash. This is particularly useful for developers and auditors who need to understand the exact behavior of smart contracts under specific conditions as recorded on the blockchain.
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
blockHash- The hash of the block to trace.
Response
result- An object containing detailed execution traces for each transaction in the block, including executed operations, gas used, and state changes.
Use case
This method is invaluable for debugging smart contracts, analyzing transaction execution, and auditing contract interactions for security purposes. It provides deep insights into the EVM (Ethereum Virtual Machine) execution at a granular level.Last modified on June 22, 2026
Was this page helpful?