trace_replayBlockTransactions
curl --request POST \
--url https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "trace_replayBlockTransactions",
"params": [
"0x3480c62",
[
"trace"
]
]
}
'import requests
url = "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "trace_replayBlockTransactions",
"params": ["0x3480c62", ["trace"]]
}
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_replayBlockTransactions',
params: ['0x3480c62', ['trace']]
})
};
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_replayBlockTransactions',
'params' => [
'0x3480c62',
[
'trace'
]
]
]),
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_replayBlockTransactions\",\n \"params\": [\n \"0x3480c62\",\n [\n \"trace\"\n ]\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_replayBlockTransactions\",\n \"params\": [\n \"0x3480c62\",\n [\n \"trace\"\n ]\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_replayBlockTransactions\",\n \"params\": [\n \"0x3480c62\",\n [\n \"trace\"\n ]\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"output": "0x4e487b710000000000000000000000000000000000000000000000000000000000000012",
"stateDiff": null,
"trace": [
{
"type": "call",
"action": {
"from": "0x19d7cf8ea0ce468417d1eda365a222a9dcbc7d27",
"callType": "call",
"gas": "0x8d1c0",
"input": "0xb61d27f60000000000000000000000001ff9c167b50d05910ffdadb82d3d2da4508330ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000040a617bee00000000000000000000000000000000000000000000000000000000",
"to": "0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f",
"value": "0x0"
},
"error": "Reverted",
"result": {
"gasUsed": "0x6f50",
"output": "0x4e487b710000000000000000000000000000000000000000000000000000000000000012"
},
"subtraces": 1,
"traceAddress": []
},
{
"type": "call",
"action": {
"from": "0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f",
"callType": "delegatecall",
"gas": "0x89bee",
"input": "0xb61d27f60000000000000000000000001ff9c167b50d05910ffdadb82d3d2da4508330ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000040a617bee00000000000000000000000000000000000000000000000000000000",
"to": "0xd206ac7fef53d83ed4563e770b28dba90d0d9ec8",
"value": "0x0"
},
"error": "Reverted",
"result": {
"gasUsed": "0x5c52",
"output": "0x4e487b710000000000000000000000000000000000000000000000000000000000000012"
},
"subtraces": 2,
"traceAddress": [
0
]
},
{
"type": "call",
"action": {
"from": "0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f",
"callType": "staticcall",
"gas": "0x7530",
"input": "0x01ffc9a701ffc9a700000000000000000000000000000000000000000000000000000000",
"to": "0x1ff9c167b50d05910ffdadb82d3d2da4508330ca",
"value": "0x0"
},
"result": {
"gasUsed": "0xf1",
"output": "0x"
},
"subtraces": 0,
"traceAddress": [
0,
0
]
},
{
"type": "call",
"action": {
"from": "0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f",
"callType": "call",
"gas": "0x82a56",
"input": "0x0a617bee",
"to": "0x1ff9c167b50d05910ffdadb82d3d2da4508330ca",
"value": "0x0"
},
"error": "Reverted",
"result": {
"gasUsed": "0xb84",
"output": "0x4e487b710000000000000000000000000000000000000000000000000000000000000012"
},
"subtraces": 0,
"traceAddress": [
0,
1
]
}
],
"vmTrace": null,
"transactionHash": "0xfc48f7c70e8ffaa46b1110dc43f32e90f65434a0949edab384d066c820c57ee2"
}
]
}Arc node API
trace_replayBlockTransactions | Arc
Arc API method that replays all transactions in a block and returns execution traces for each. Available on Arc via Chainstack.
POST
/
trace_replayBlockTransactions
curl --request POST \
--url https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "trace_replayBlockTransactions",
"params": [
"0x3480c62",
[
"trace"
]
]
}
'import requests
url = "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "trace_replayBlockTransactions",
"params": ["0x3480c62", ["trace"]]
}
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_replayBlockTransactions',
params: ['0x3480c62', ['trace']]
})
};
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_replayBlockTransactions',
'params' => [
'0x3480c62',
[
'trace'
]
]
]),
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_replayBlockTransactions\",\n \"params\": [\n \"0x3480c62\",\n [\n \"trace\"\n ]\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_replayBlockTransactions\",\n \"params\": [\n \"0x3480c62\",\n [\n \"trace\"\n ]\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_replayBlockTransactions\",\n \"params\": [\n \"0x3480c62\",\n [\n \"trace\"\n ]\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"output": "0x4e487b710000000000000000000000000000000000000000000000000000000000000012",
"stateDiff": null,
"trace": [
{
"type": "call",
"action": {
"from": "0x19d7cf8ea0ce468417d1eda365a222a9dcbc7d27",
"callType": "call",
"gas": "0x8d1c0",
"input": "0xb61d27f60000000000000000000000001ff9c167b50d05910ffdadb82d3d2da4508330ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000040a617bee00000000000000000000000000000000000000000000000000000000",
"to": "0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f",
"value": "0x0"
},
"error": "Reverted",
"result": {
"gasUsed": "0x6f50",
"output": "0x4e487b710000000000000000000000000000000000000000000000000000000000000012"
},
"subtraces": 1,
"traceAddress": []
},
{
"type": "call",
"action": {
"from": "0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f",
"callType": "delegatecall",
"gas": "0x89bee",
"input": "0xb61d27f60000000000000000000000001ff9c167b50d05910ffdadb82d3d2da4508330ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000040a617bee00000000000000000000000000000000000000000000000000000000",
"to": "0xd206ac7fef53d83ed4563e770b28dba90d0d9ec8",
"value": "0x0"
},
"error": "Reverted",
"result": {
"gasUsed": "0x5c52",
"output": "0x4e487b710000000000000000000000000000000000000000000000000000000000000012"
},
"subtraces": 2,
"traceAddress": [
0
]
},
{
"type": "call",
"action": {
"from": "0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f",
"callType": "staticcall",
"gas": "0x7530",
"input": "0x01ffc9a701ffc9a700000000000000000000000000000000000000000000000000000000",
"to": "0x1ff9c167b50d05910ffdadb82d3d2da4508330ca",
"value": "0x0"
},
"result": {
"gasUsed": "0xf1",
"output": "0x"
},
"subtraces": 0,
"traceAddress": [
0,
0
]
},
{
"type": "call",
"action": {
"from": "0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f",
"callType": "call",
"gas": "0x82a56",
"input": "0x0a617bee",
"to": "0x1ff9c167b50d05910ffdadb82d3d2da4508330ca",
"value": "0x0"
},
"error": "Reverted",
"result": {
"gasUsed": "0xb84",
"output": "0x4e487b710000000000000000000000000000000000000000000000000000000000000012"
},
"subtraces": 0,
"traceAddress": [
0,
1
]
}
],
"vmTrace": null,
"transactionHash": "0xfc48f7c70e8ffaa46b1110dc43f32e90f65434a0949edab384d066c820c57ee2"
}
]
}Arc API method that replays all transactions in a block and returns execution traces for each. This is useful for detailed analysis of block execution with customizable trace options.
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
blockParameter— the block number (hex) or tag (latest,earliest,pending)traceTypes— array of trace types to include:trace— basic execution tracevmTrace— full VM execution tracestateDiff— state changes
Response
result— array of trace results, one per transaction:output— return data from the transactiontrace— array of trace objects (if requested)vmTrace— VM execution trace (if requested)stateDiff— state differences (if requested)transactionHash— hash of the transaction
trace_replayBlockTransactions code examples
const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);
const replayBlock = async (blockNumber) => {
const results = await provider.send("trace_replayBlockTransactions", [
blockNumber,
["trace"]
]);
console.log(`Replayed ${results.length} transactions`);
for (let i = 0; i < results.length; i++) {
const result = results[i];
console.log(`\nTransaction ${i}: ${result.transactionHash}`);
console.log(` Output: ${result.output}`);
console.log(` Traces: ${result.trace?.length || 0}`);
if (result.trace && result.trace.length > 0) {
for (const trace of result.trace) {
const callType = trace.action.callType || trace.type;
console.log(` ${callType}: ${trace.action.from} -> ${trace.action.to || 'Create'}`);
}
}
}
};
replayBlock("latest");
from web3 import Web3
node_url = "CHAINSTACK_NODE_URL"
web3 = Web3(Web3.HTTPProvider(node_url))
result = web3.provider.make_request("trace_replayBlockTransactions", [
"latest",
["trace"]
])
results = result['result']
print(f"Replayed {len(results)} transactions")
for i, tx_result in enumerate(results):
print(f"\nTransaction {i}: {tx_result['transactionHash']}")
print(f" Output: {tx_result['output']}")
traces = tx_result.get('trace', [])
print(f" Traces: {len(traces)}")
for trace in traces:
call_type = trace['action'].get('callType', trace['type'])
to = trace['action'].get('to', 'Create')
print(f" {call_type}: {trace['action']['from']} -> {to}")
curl -X POST "CHAINSTACK_NODE_URL" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "trace_replayBlockTransactions",
"params": ["latest", ["trace"]],
"id": 1
}'
Last modified on August 3, 2026
Was this page helpful?
⌘I