trace_callMany
curl --request POST \
--url https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "trace_callMany",
"params": [
[
[
{
"from": "0x5d20879655df3c1e04ab111af0009ad650e762f0",
"to": "0x3600000000000000000000000000000000000000",
"gas": "0xf4240",
"data": "0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0"
},
[
"trace"
]
]
],
"latest"
]
}
'import requests
url = "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "trace_callMany",
"params": [[[
{
"from": "0x5d20879655df3c1e04ab111af0009ad650e762f0",
"to": "0x3600000000000000000000000000000000000000",
"gas": "0xf4240",
"data": "0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0"
},
["trace"]
]], "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: 'trace_callMany',
params: [
[
[
{
from: '0x5d20879655df3c1e04ab111af0009ad650e762f0',
to: '0x3600000000000000000000000000000000000000',
gas: '0xf4240',
data: '0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0'
},
['trace']
]
],
'latest'
]
})
};
fetch('https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/', 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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/",
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' => 'trace_callMany',
'params' => [
[
[
[
'from' => '0x5d20879655df3c1e04ab111af0009ad650e762f0',
'to' => '0x3600000000000000000000000000000000000000',
'gas' => '0xf4240',
'data' => '0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0'
],
[
'trace'
]
]
],
'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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"trace_callMany\",\n \"params\": [\n [\n [\n {\n \"from\": \"0x5d20879655df3c1e04ab111af0009ad650e762f0\",\n \"to\": \"0x3600000000000000000000000000000000000000\",\n \"gas\": \"0xf4240\",\n \"data\": \"0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0\"\n },\n [\n \"trace\"\n ]\n ]\n ],\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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"trace_callMany\",\n \"params\": [\n [\n [\n {\n \"from\": \"0x5d20879655df3c1e04ab111af0009ad650e762f0\",\n \"to\": \"0x3600000000000000000000000000000000000000\",\n \"gas\": \"0xf4240\",\n \"data\": \"0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0\"\n },\n [\n \"trace\"\n ]\n ]\n ],\n \"latest\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/")
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\": \"trace_callMany\",\n \"params\": [\n [\n [\n {\n \"from\": \"0x5d20879655df3c1e04ab111af0009ad650e762f0\",\n \"to\": \"0x3600000000000000000000000000000000000000\",\n \"gas\": \"0xf4240\",\n \"data\": \"0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0\"\n },\n [\n \"trace\"\n ]\n ]\n ],\n \"latest\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"output": "0x0000000000000000000000000000000000000000000000000000000005f99204",
"stateDiff": null,
"trace": [
{
"type": "call",
"action": {
"from": "0x5d20879655df3c1e04ab111af0009ad650e762f0",
"callType": "call",
"gas": "0xeee94",
"input": "0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0",
"to": "0x3600000000000000000000000000000000000000",
"value": "0x0"
},
"result": {
"gasUsed": "0x1ec4",
"output": "0x0000000000000000000000000000000000000000000000000000000005f99204"
},
"subtraces": 1,
"traceAddress": []
},
{
"type": "call",
"action": {
"from": "0x3600000000000000000000000000000000000000",
"callType": "delegatecall",
"gas": "0xe9756",
"input": "0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0",
"to": "0xc6ad664ac6679f4ce74e10e91449c93ec1ae3ca6",
"value": "0x0"
},
"result": {
"gasUsed": "0x2a7",
"output": "0x0000000000000000000000000000000000000000000000000000000005f99204"
},
"subtraces": 0,
"traceAddress": [
0
]
}
],
"vmTrace": null
}
]
}Arc node API
trace_callMany | Arc
Arc 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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "trace_callMany",
"params": [
[
[
{
"from": "0x5d20879655df3c1e04ab111af0009ad650e762f0",
"to": "0x3600000000000000000000000000000000000000",
"gas": "0xf4240",
"data": "0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0"
},
[
"trace"
]
]
],
"latest"
]
}
'import requests
url = "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "trace_callMany",
"params": [[[
{
"from": "0x5d20879655df3c1e04ab111af0009ad650e762f0",
"to": "0x3600000000000000000000000000000000000000",
"gas": "0xf4240",
"data": "0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0"
},
["trace"]
]], "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: 'trace_callMany',
params: [
[
[
{
from: '0x5d20879655df3c1e04ab111af0009ad650e762f0',
to: '0x3600000000000000000000000000000000000000',
gas: '0xf4240',
data: '0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0'
},
['trace']
]
],
'latest'
]
})
};
fetch('https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/', 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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/",
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' => 'trace_callMany',
'params' => [
[
[
[
'from' => '0x5d20879655df3c1e04ab111af0009ad650e762f0',
'to' => '0x3600000000000000000000000000000000000000',
'gas' => '0xf4240',
'data' => '0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0'
],
[
'trace'
]
]
],
'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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"trace_callMany\",\n \"params\": [\n [\n [\n {\n \"from\": \"0x5d20879655df3c1e04ab111af0009ad650e762f0\",\n \"to\": \"0x3600000000000000000000000000000000000000\",\n \"gas\": \"0xf4240\",\n \"data\": \"0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0\"\n },\n [\n \"trace\"\n ]\n ]\n ],\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://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"trace_callMany\",\n \"params\": [\n [\n [\n {\n \"from\": \"0x5d20879655df3c1e04ab111af0009ad650e762f0\",\n \"to\": \"0x3600000000000000000000000000000000000000\",\n \"gas\": \"0xf4240\",\n \"data\": \"0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0\"\n },\n [\n \"trace\"\n ]\n ]\n ],\n \"latest\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/")
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\": \"trace_callMany\",\n \"params\": [\n [\n [\n {\n \"from\": \"0x5d20879655df3c1e04ab111af0009ad650e762f0\",\n \"to\": \"0x3600000000000000000000000000000000000000\",\n \"gas\": \"0xf4240\",\n \"data\": \"0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0\"\n },\n [\n \"trace\"\n ]\n ]\n ],\n \"latest\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"output": "0x0000000000000000000000000000000000000000000000000000000005f99204",
"stateDiff": null,
"trace": [
{
"type": "call",
"action": {
"from": "0x5d20879655df3c1e04ab111af0009ad650e762f0",
"callType": "call",
"gas": "0xeee94",
"input": "0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0",
"to": "0x3600000000000000000000000000000000000000",
"value": "0x0"
},
"result": {
"gasUsed": "0x1ec4",
"output": "0x0000000000000000000000000000000000000000000000000000000005f99204"
},
"subtraces": 1,
"traceAddress": []
},
{
"type": "call",
"action": {
"from": "0x3600000000000000000000000000000000000000",
"callType": "delegatecall",
"gas": "0xe9756",
"input": "0x70a082310000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0",
"to": "0xc6ad664ac6679f4ce74e10e91449c93ec1ae3ca6",
"value": "0x0"
},
"result": {
"gasUsed": "0x2a7",
"output": "0x0000000000000000000000000000000000000000000000000000000005f99204"
},
"subtraces": 0,
"traceAddress": [
0
]
}
],
"vmTrace": null
}
]
}Arc 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": "0x3600000000000000000000000000000000000000", "data": "0x95d89b41"}, ["trace"]]], "latest"], "id": 1}'
Last modified on September 16, 2026
Was this page helpful?