Trace block by number
curl --request POST \
--url https://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "debug_traceBlockByNumber",
"params": [
"latest"
]
}
'import requests
url = "https://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "debug_traceBlockByNumber",
"params": ["latest"]
}
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_traceBlockByNumber', params: ['latest']})
};
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_traceBlockByNumber',
'params' => [
'latest'
]
]),
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_traceBlockByNumber\",\n \"params\": [\n \"latest\"\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_traceBlockByNumber\",\n \"params\": [\n \"latest\"\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_traceBlockByNumber\",\n \"params\": [\n \"latest\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": {}
}Ronin node API
debug_traceBlockByNumber | Ronin
The debug_traceBlockByNumber method allows for tracing the execution of all transactions in a specified block. Ronin via Chainstack.
POST
/
3997273fc956a67dc6982384500e669e
Trace block by number
curl --request POST \
--url https://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "debug_traceBlockByNumber",
"params": [
"latest"
]
}
'import requests
url = "https://ronin-mainnet.core.chainstack.com/3997273fc956a67dc6982384500e669e"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "debug_traceBlockByNumber",
"params": ["latest"]
}
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_traceBlockByNumber', params: ['latest']})
};
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_traceBlockByNumber',
'params' => [
'latest'
]
]),
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_traceBlockByNumber\",\n \"params\": [\n \"latest\"\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_traceBlockByNumber\",\n \"params\": [\n \"latest\"\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_traceBlockByNumber\",\n \"params\": [\n \"latest\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": {}
}The
debug_traceBlockByNumber method allows for tracing the execution of all transactions in a specified block. This method is essential for understanding the behavior of transactions and smart contracts within a block, providing insights into executed operations, gas used, and state changes.
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
blockNumber- The number of the block to trace. This can be a hexadecimal value or one of the special strings “latest”, “earliest”, or “pending”.
Response
result- An object containing detailed execution traces for each transaction in the block.
Use case
This method is invaluable for debugging smart contracts, analyzing transaction execution, and conducting security audits of contract interactions. It offers a granular view of the EVM (Ethereum Virtual Machine) execution process.Last modified on June 22, 2026
Was this page helpful?