debug_traceCallMany
curl --request POST \
--url https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/ \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "debug_traceCallMany",
"params": [
[
[
{
"to": "0x20c0000000000000000000000000000000000000",
"data": "0x95d89b41"
},
[
"trace"
]
]
],
"latest"
],
"id": 1
}
'import requests
url = "https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"
payload = {
"jsonrpc": "2.0",
"method": "debug_traceCallMany",
"params": [[[
{
"to": "0x20c0000000000000000000000000000000000000",
"data": "0x95d89b41"
},
["trace"]
]], "latest"],
"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_traceCallMany',
params: [
[
[
{to: '0x20c0000000000000000000000000000000000000', data: '0x95d89b41'},
['trace']
]
],
'latest'
],
id: 1
})
};
fetch('https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/', 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://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/",
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_traceCallMany',
'params' => [
[
[
[
'to' => '0x20c0000000000000000000000000000000000000',
'data' => '0x95d89b41'
],
[
'trace'
]
]
],
'latest'
],
'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://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_traceCallMany\",\n \"params\": [\n [\n [\n {\n \"to\": \"0x20c0000000000000000000000000000000000000\",\n \"data\": \"0x95d89b41\"\n },\n [\n \"trace\"\n ]\n ]\n ],\n \"latest\"\n ],\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://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_traceCallMany\",\n \"params\": [\n [\n [\n {\n \"to\": \"0x20c0000000000000000000000000000000000000\",\n \"data\": \"0x95d89b41\"\n },\n [\n \"trace\"\n ]\n ]\n ],\n \"latest\"\n ],\n \"id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/")
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_traceCallMany\",\n \"params\": [\n [\n [\n {\n \"to\": \"0x20c0000000000000000000000000000000000000\",\n \"data\": \"0x95d89b41\"\n },\n [\n \"trace\"\n ]\n ]\n ],\n \"latest\"\n ],\n \"id\": 1\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": "<unknown>"
}Tempo node API
debug_traceCallMany | Tempo
Tempo API method that traces multiple calls in sequence at a given block, with each call’s state changes visible to subsequent calls.
POST
/
debug_traceCallMany
curl --request POST \
--url https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/ \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "debug_traceCallMany",
"params": [
[
[
{
"to": "0x20c0000000000000000000000000000000000000",
"data": "0x95d89b41"
},
[
"trace"
]
]
],
"latest"
],
"id": 1
}
'import requests
url = "https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"
payload = {
"jsonrpc": "2.0",
"method": "debug_traceCallMany",
"params": [[[
{
"to": "0x20c0000000000000000000000000000000000000",
"data": "0x95d89b41"
},
["trace"]
]], "latest"],
"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_traceCallMany',
params: [
[
[
{to: '0x20c0000000000000000000000000000000000000', data: '0x95d89b41'},
['trace']
]
],
'latest'
],
id: 1
})
};
fetch('https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/', 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://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/",
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_traceCallMany',
'params' => [
[
[
[
'to' => '0x20c0000000000000000000000000000000000000',
'data' => '0x95d89b41'
],
[
'trace'
]
]
],
'latest'
],
'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://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_traceCallMany\",\n \"params\": [\n [\n [\n {\n \"to\": \"0x20c0000000000000000000000000000000000000\",\n \"data\": \"0x95d89b41\"\n },\n [\n \"trace\"\n ]\n ]\n ],\n \"latest\"\n ],\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://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_traceCallMany\",\n \"params\": [\n [\n [\n {\n \"to\": \"0x20c0000000000000000000000000000000000000\",\n \"data\": \"0x95d89b41\"\n },\n [\n \"trace\"\n ]\n ]\n ],\n \"latest\"\n ],\n \"id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/")
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_traceCallMany\",\n \"params\": [\n [\n [\n {\n \"to\": \"0x20c0000000000000000000000000000000000000\",\n \"data\": \"0x95d89b41\"\n },\n [\n \"trace\"\n ]\n ]\n ],\n \"latest\"\n ],\n \"id\": 1\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": "<unknown>"
}Tempo API method that traces multiple calls in sequence at a given block, with each call’s state changes visible to subsequent calls. Useful for simulating complex multi-step interactions.
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
calls— an array of call bundles, where each bundle is an array of[callObject, traceTypes]pairsblockParameter— the block number (hex) or tag (latest,earliest,pending)
Response
result— an array of trace results, one for each call in the bundle.
debug_traceCallMany code examples
curl -X POST "CHAINSTACK_NODE_URL" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "debug_traceCallMany", "params": [[[{"to": "0x20c0000000000000000000000000000000000000", "data": "0x95d89b41"}, ["trace"]]], "latest"], "id": 1}'
Last modified on July 7, 2026
Was this page helpful?
⌘I