Skip to main content
POST
/
eth_estimateGas
curl --request POST \
  --url https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/ \
  --header 'Content-Type: application/json' \
  --data '
{
  "jsonrpc": "2.0",
  "method": "eth_estimateGas",
  "params": [
    {
      "from": "0x9729187D9E8Bbefa8295F39f5634cA454dd9d294",
      "to": "0x20c0000000000000000000000000000000000000",
      "data": "0x70a082310000000000000000000000009729187d9e8bbefa8295f39f5634ca454dd9d294"
    }
  ],
  "id": 1
}
'
import requests

url = "https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"

payload = {
"jsonrpc": "2.0",
"method": "eth_estimateGas",
"params": [
{
"from": "0x9729187D9E8Bbefa8295F39f5634cA454dd9d294",
"to": "0x20c0000000000000000000000000000000000000",
"data": "0x70a082310000000000000000000000009729187d9e8bbefa8295f39f5634ca454dd9d294"
}
],
"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: 'eth_estimateGas',
params: [
{
from: '0x9729187D9E8Bbefa8295F39f5634cA454dd9d294',
to: '0x20c0000000000000000000000000000000000000',
data: '0x70a082310000000000000000000000009729187d9e8bbefa8295f39f5634ca454dd9d294'
}
],
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' => 'eth_estimateGas',
'params' => [
[
'from' => '0x9729187D9E8Bbefa8295F39f5634cA454dd9d294',
'to' => '0x20c0000000000000000000000000000000000000',
'data' => '0x70a082310000000000000000000000009729187d9e8bbefa8295f39f5634ca454dd9d294'
]
],
'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\": \"eth_estimateGas\",\n \"params\": [\n {\n \"from\": \"0x9729187D9E8Bbefa8295F39f5634cA454dd9d294\",\n \"to\": \"0x20c0000000000000000000000000000000000000\",\n \"data\": \"0x70a082310000000000000000000000009729187d9e8bbefa8295f39f5634ca454dd9d294\"\n }\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\": \"eth_estimateGas\",\n \"params\": [\n {\n \"from\": \"0x9729187D9E8Bbefa8295F39f5634cA454dd9d294\",\n \"to\": \"0x20c0000000000000000000000000000000000000\",\n \"data\": \"0x70a082310000000000000000000000009729187d9e8bbefa8295f39f5634ca454dd9d294\"\n }\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\": \"eth_estimateGas\",\n \"params\": [\n {\n \"from\": \"0x9729187D9E8Bbefa8295F39f5634cA454dd9d294\",\n \"to\": \"0x20c0000000000000000000000000000000000000\",\n \"data\": \"0x70a082310000000000000000000000009729187d9e8bbefa8295f39f5634ca454dd9d294\"\n }\n ],\n \"id\": 1\n}"

response = http.request(request)
puts response.read_body
{
  "jsonrpc": "<string>",
  "id": 123,
  "result": "<string>"
}
Tempo API method that estimates the gas needed to execute a transaction. On Tempo, gas fees are paid in TIP-20 stablecoins, not a native token.
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

  • callObject — the call object:
    • from — (optional) address the transaction is sent from
    • to — (optional) address the transaction is directed to
    • gas — (optional) gas provided for the transaction
    • gasPrice — (optional) gas price
    • value — (optional) value sent with the transaction
    • data — (optional) hash of the method signature and encoded parameters

Response

  • result — the estimated gas amount encoded as hexadecimal

eth_estimateGas code examples

const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);

const estimateGas = async () => {
    const gas = await provider.estimateGas({
      from: "0x9729187D9E8Bbefa8295F39f5634cA454dd9d294",
      to: "0x20c0000000000000000000000000000000000000",
      data: "0x70a082310000000000000000000000009729187d9e8bbefa8295f39f5634ca454dd9d294"
    });
    console.log(`Estimated gas: ${gas}`);
  };

estimateGas();
from web3 import Web3

node_url = "CHAINSTACK_NODE_URL"
web3 = Web3(Web3.HTTPProvider(node_url))

gas = web3.eth.estimate_gas({
    'from': "0x9729187D9E8Bbefa8295F39f5634cA454dd9d294",
    'to': "0x20c0000000000000000000000000000000000000",
    'data': "0x70a082310000000000000000000000009729187d9e8bbefa8295f39f5634ca454dd9d294"
})
print(f"Estimated gas: {gas}")
curl -X POST "CHAINSTACK_NODE_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_estimateGas",
    "params": [{"from": "0x9729187D9E8Bbefa8295F39f5634cA454dd9d294", "to": "0x20c0000000000000000000000000000000000000", "data": "0x70a082310000000000000000000000009729187d9e8bbefa8295f39f5634ca454dd9d294"}],
    "id": 1
  }'

Body

application/json
jsonrpc
string
default:2.0
method
string
default:eth_estimateGas
params
any[]

Transaction call object

id
integer
default:1

Response

200 - application/json

The estimated gas

jsonrpc
string
id
integer
result
string

The estimated gas amount encoded as hexadecimal

Last modified on June 25, 2026