trace_callMany
curl --request POST \
--url https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/ \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "trace_callMany",
"params": [
[
[
{
"to": "0x20c0000000000000000000000000000000000000",
"data": "0x95d89b41"
},
[
"trace"
]
]
],
"latest"
],
"id": 1
}
'import requests
url = "https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"
payload = {
"jsonrpc": "2.0",
"method": "trace_callMany",
"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: 'trace_callMany',
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' => 'trace_callMany',
'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\": \"trace_callMany\",\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\": \"trace_callMany\",\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\": \"trace_callMany\",\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
trace_callMany | Tempo
Tempo API method that traces multiple calls in sequence using the OpenEthereum trace format. Each call’s state changes are visible to subsequent calls.
POST
/
trace_callMany
curl --request POST \
--url https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/ \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "trace_callMany",
"params": [
[
[
{
"to": "0x20c0000000000000000000000000000000000000",
"data": "0x95d89b41"
},
[
"trace"
]
]
],
"latest"
],
"id": 1
}
'import requests
url = "https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"
payload = {
"jsonrpc": "2.0",
"method": "trace_callMany",
"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: 'trace_callMany',
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' => 'trace_callMany',
'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\": \"trace_callMany\",\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\": \"trace_callMany\",\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\": \"trace_callMany\",\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 using the OpenEthereum trace format. Each call’s state changes are visible to subsequent calls.
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— (optional) the block number (hex) or tag (latest,earliest,pending)
Response
result— an array of trace results, one for each call.
trace_callMany code examples
curl -X POST "CHAINSTACK_NODE_URL" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "trace_callMany", "params": [[[{"to": "0x20c0000000000000000000000000000000000000", "data": "0x95d89b41"}, ["trace"]]], "latest"], "id": 1}'
Last modified on July 7, 2026
Was this page helpful?
⌘I