eth_simulateV1
curl --request POST \
--url https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "eth_simulateV1",
"params": [
{
"blockStateCalls": [
{
"calls": [
{
"from": "0x5d20879655df3c1e04ab111af0009ad650e762f0",
"to": "0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e",
"gas": "0xf4240",
"data": "0x"
}
]
}
]
},
"latest"
]
}
'import requests
url = "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "eth_simulateV1",
"params": [{ "blockStateCalls": [{ "calls": [
{
"from": "0x5d20879655df3c1e04ab111af0009ad650e762f0",
"to": "0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e",
"gas": "0xf4240",
"data": "0x"
}
] }] }, "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: 'eth_simulateV1',
params: [
{
blockStateCalls: [
{
calls: [
{
from: '0x5d20879655df3c1e04ab111af0009ad650e762f0',
to: '0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e',
gas: '0xf4240',
data: '0x'
}
]
}
]
},
'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' => 'eth_simulateV1',
'params' => [
[
'blockStateCalls' => [
[
'calls' => [
[
'from' => '0x5d20879655df3c1e04ab111af0009ad650e762f0',
'to' => '0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e',
'gas' => '0xf4240',
'data' => '0x'
]
]
]
]
],
'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\": \"eth_simulateV1\",\n \"params\": [\n {\n \"blockStateCalls\": [\n {\n \"calls\": [\n {\n \"from\": \"0x5d20879655df3c1e04ab111af0009ad650e762f0\",\n \"to\": \"0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e\",\n \"gas\": \"0xf4240\",\n \"data\": \"0x\"\n }\n ]\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\": \"eth_simulateV1\",\n \"params\": [\n {\n \"blockStateCalls\": [\n {\n \"calls\": [\n {\n \"from\": \"0x5d20879655df3c1e04ab111af0009ad650e762f0\",\n \"to\": \"0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e\",\n \"gas\": \"0xf4240\",\n \"data\": \"0x\"\n }\n ]\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\": \"eth_simulateV1\",\n \"params\": [\n {\n \"blockStateCalls\": [\n {\n \"calls\": [\n {\n \"from\": \"0x5d20879655df3c1e04ab111af0009ad650e762f0\",\n \"to\": \"0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e\",\n \"gas\": \"0xf4240\",\n \"data\": \"0x\"\n }\n ]\n }\n ]\n },\n \"latest\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"hash": "0x2d68a7d9b7cd4747f742ed311b93595aa3c613bafd5e441b9ff9b26da169b0f2",
"parentHash": "0x1ac3d7b3d5a9c8b39641580624e3783d041446735013ae918f5139c6b0f1fb78",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"miner": "0xa693cc18aa09d33dd388013b7a02e5ff863b8760",
"stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
"transactionsRoot": "0xfea7da14cf7037ac8e4b20c038fa9d93b1a51fb4bdfd6ec2212175b684a908aa",
"receiptsRoot": "0xc7a57f698d342d0f90491a495520639818bd4110ee16a4ef11f5f433ab20601a",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x0",
"number": "0x3480a68",
"gasLimit": "0x1c9c380",
"gasUsed": "0x5236",
"timestamp": "0x6a702783",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"nonce": "0x0000000000000000",
"baseFeePerGas": "0x0",
"withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
"blobGasUsed": "0x0",
"excessBlobGas": "0x0",
"parentBeaconBlockRoot": "0x4088e4603f9832b1f4876bd42c12cf141096c3d8db904451b5532b46babab5f7",
"requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"size": "0x295",
"uncles": [],
"transactions": [
"0x9a674de476c786d3770740755eeb06f8c9f457f55df21f73be40cb7b11f5996e"
],
"withdrawals": [],
"calls": [
{
"returnData": "0x",
"logs": [],
"gasUsed": "0x5236",
"status": "0x0",
"error": {
"code": -32000,
"message": "execution reverted"
}
}
]
}
]
}Arc node API
eth_simulateV1 | Arc
Arc API method that simulates transaction execution. eth_simulateV1 JSON-RPC method available on the Arc blockchain via Chainstack.
POST
/
eth_simulateV1
curl --request POST \
--url https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "eth_simulateV1",
"params": [
{
"blockStateCalls": [
{
"calls": [
{
"from": "0x5d20879655df3c1e04ab111af0009ad650e762f0",
"to": "0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e",
"gas": "0xf4240",
"data": "0x"
}
]
}
]
},
"latest"
]
}
'import requests
url = "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "eth_simulateV1",
"params": [{ "blockStateCalls": [{ "calls": [
{
"from": "0x5d20879655df3c1e04ab111af0009ad650e762f0",
"to": "0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e",
"gas": "0xf4240",
"data": "0x"
}
] }] }, "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: 'eth_simulateV1',
params: [
{
blockStateCalls: [
{
calls: [
{
from: '0x5d20879655df3c1e04ab111af0009ad650e762f0',
to: '0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e',
gas: '0xf4240',
data: '0x'
}
]
}
]
},
'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' => 'eth_simulateV1',
'params' => [
[
'blockStateCalls' => [
[
'calls' => [
[
'from' => '0x5d20879655df3c1e04ab111af0009ad650e762f0',
'to' => '0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e',
'gas' => '0xf4240',
'data' => '0x'
]
]
]
]
],
'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\": \"eth_simulateV1\",\n \"params\": [\n {\n \"blockStateCalls\": [\n {\n \"calls\": [\n {\n \"from\": \"0x5d20879655df3c1e04ab111af0009ad650e762f0\",\n \"to\": \"0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e\",\n \"gas\": \"0xf4240\",\n \"data\": \"0x\"\n }\n ]\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\": \"eth_simulateV1\",\n \"params\": [\n {\n \"blockStateCalls\": [\n {\n \"calls\": [\n {\n \"from\": \"0x5d20879655df3c1e04ab111af0009ad650e762f0\",\n \"to\": \"0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e\",\n \"gas\": \"0xf4240\",\n \"data\": \"0x\"\n }\n ]\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\": \"eth_simulateV1\",\n \"params\": [\n {\n \"blockStateCalls\": [\n {\n \"calls\": [\n {\n \"from\": \"0x5d20879655df3c1e04ab111af0009ad650e762f0\",\n \"to\": \"0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e\",\n \"gas\": \"0xf4240\",\n \"data\": \"0x\"\n }\n ]\n }\n ]\n },\n \"latest\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"hash": "0x2d68a7d9b7cd4747f742ed311b93595aa3c613bafd5e441b9ff9b26da169b0f2",
"parentHash": "0x1ac3d7b3d5a9c8b39641580624e3783d041446735013ae918f5139c6b0f1fb78",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"miner": "0xa693cc18aa09d33dd388013b7a02e5ff863b8760",
"stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
"transactionsRoot": "0xfea7da14cf7037ac8e4b20c038fa9d93b1a51fb4bdfd6ec2212175b684a908aa",
"receiptsRoot": "0xc7a57f698d342d0f90491a495520639818bd4110ee16a4ef11f5f433ab20601a",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x0",
"number": "0x3480a68",
"gasLimit": "0x1c9c380",
"gasUsed": "0x5236",
"timestamp": "0x6a702783",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"nonce": "0x0000000000000000",
"baseFeePerGas": "0x0",
"withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
"blobGasUsed": "0x0",
"excessBlobGas": "0x0",
"parentBeaconBlockRoot": "0x4088e4603f9832b1f4876bd42c12cf141096c3d8db904451b5532b46babab5f7",
"requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"size": "0x295",
"uncles": [],
"transactions": [
"0x9a674de476c786d3770740755eeb06f8c9f457f55df21f73be40cb7b11f5996e"
],
"withdrawals": [],
"calls": [
{
"returnData": "0x",
"logs": [],
"gasUsed": "0x5236",
"status": "0x0",
"error": {
"code": -32000,
"message": "execution reverted"
}
}
]
}
]
}Arc API method that simulates transaction execution.
Parameters
object— the simulation configuration objectquantity or tag— the block number in hex format or block tag (latest,earliest,pending,safe,finalized)
Response
object— the simulation result
eth_simulateV1 code examples
const { JsonRpcProvider } = require("ethers");
const provider = new JsonRpcProvider("CHAINSTACK_NODE_URL");
async function call() {
const result = await provider.send("eth_simulateV1", [{"blockStateCalls": [{"calls": [{"from": "0x5d20879655df3c1e04ab111af0009ad650e762f0", "to": "0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e", "gas": "0xf4240", "data": "0x"}]}]}, "latest"]);
console.log(result);
}
call();
from web3 import Web3
node_url = "CHAINSTACK_NODE_URL"
web3 = Web3(Web3.HTTPProvider(node_url))
# Make the call
# Add your parameters here
# result = web3.eth.<method_name>(...)
print(result)
curl -X POST "CHAINSTACK_NODE_URL" \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"method": "eth_simulateV1",
"params": [{"blockStateCalls": [{"calls": [{"from": "0x5d20879655df3c1e04ab111af0009ad650e762f0", "to": "0x7798f2eb73c1dd8fa8086d780d5cf114a10f528e", "gas": "0xf4240", "data": "0x"}]}]}, "latest"],
"id": 1
}'
Body
application/json
Last modified on August 3, 2026
Was this page helpful?
⌘I