> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.galleon8.com/api-reference/node-api/ethereum/api-endpoints/standard-api/eth-estimate-gas/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.galleon8.com/_mcp/server. # eth_estimateGas POST https://node-api-docs-proxy.galleon8.workers.dev Content-Type: application/json Generates and returns an estimate of how much gas is necessary to allow the transaction to complete. Reference: https://docs.galleon8.com/api-reference/node-api/ethereum/api-endpoints/standard-api/eth-estimate-gas ## Request ### Body (application/json) This endpoint expects an object. - `transaction` (TransactionRequest, required) — Transaction request to estimate. - `block` (any, optional) — Optional block number or tag used as the execution context. ## Response ### 200 Estimated gas amount encoded as a hexadecimal quantity. - `string` ## Types ### TransactionRequest Transaction request object used for gas estimation. - `from` (string, optional) — 20-byte EVM address. - `to` (string, optional, nullable) — 20-byte EVM address. - `gas` (string, optional) — Hex-encoded integer quantity. - `gasPrice` (string, optional) — Hex-encoded integer quantity. - `value` (string, optional) — Hex-encoded integer quantity. - `data` (string, optional) — Hex-encoded byte data. - `input` (string, optional) — Hex-encoded byte data. - `maxFeePerGas` (string, optional) — Hex-encoded integer quantity. - `maxPriorityFeePerGas` (string, optional) — Hex-encoded integer quantity. - `accessList` (list of AccessListItems, optional) — EIP-2930 access list. ### AccessListItems - `address` (string, required) — 20-byte EVM address. - `storageKeys` (list of string, required) ## Examples **Request** ```json [ { "from": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", "to": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "value": "0x0", "data": "0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e0000000000000000000000000000000000000000000000000000000005f5e100" }, "latest" ] ``` **Response** ```json { "jsonrpc": "2.0", "id": "1", "result": "0xc350" } ``` **SDK Code** ```python import requests url = "https://node-api-docs-proxy.galleon8.workers.dev/" payload = [ { "from": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", "to": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "value": "0x0", "data": "0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e0000000000000000000000000000000000000000000000000000000005f5e100" }, "latest" ] headers = {"Content-Type": "application/json"} response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://node-api-docs-proxy.galleon8.workers.dev/'; const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '[{"from":"0x742d35Cc6634C0532925a3b844Bc454e4438f44e","to":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","value":"0x0","data":"0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e0000000000000000000000000000000000000000000000000000000005f5e100"},"latest"]' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://node-api-docs-proxy.galleon8.workers.dev/" payload := strings.NewReader("[\n {\n \"from\": \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\",\n \"to\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"value\": \"0x0\",\n \"data\": \"0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e0000000000000000000000000000000000000000000000000000000005f5e100\"\n },\n \"latest\"\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(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://node-api-docs-proxy.galleon8.workers.dev/") 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 {\n \"from\": \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\",\n \"to\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"value\": \"0x0\",\n \"data\": \"0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e0000000000000000000000000000000000000000000000000000000005f5e100\"\n },\n \"latest\"\n]" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://node-api-docs-proxy.galleon8.workers.dev/") .header("Content-Type", "application/json") .body("[\n {\n \"from\": \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\",\n \"to\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"value\": \"0x0\",\n \"data\": \"0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e0000000000000000000000000000000000000000000000000000000005f5e100\"\n },\n \"latest\"\n]") .asString(); ``` ```php request('POST', 'https://node-api-docs-proxy.galleon8.workers.dev/', [ 'body' => '[ { "from": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", "to": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "value": "0x0", "data": "0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e0000000000000000000000000000000000000000000000000000000005f5e100" }, "latest" ]', 'headers' => [ 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://node-api-docs-proxy.galleon8.workers.dev/"); var request = new RestRequest(Method.POST); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "[\n {\n \"from\": \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\",\n \"to\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"value\": \"0x0\",\n \"data\": \"0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e0000000000000000000000000000000000000000000000000000000005f5e100\"\n },\n \"latest\"\n]", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Content-Type": "application/json"] let parameters = [ [ "from": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", "to": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "value": "0x0", "data": "0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e0000000000000000000000000000000000000000000000000000000005f5e100" ], "latest" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://node-api-docs-proxy.galleon8.workers.dev/")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```