Denim activated on Base Sepolia on October 21, 2026, replacing Flashblocks with canonical 200ms blocks. Flashblocks subscriptions and the "pending" block tag no longer provide preconfirmation data on Sepolia. Use canonical blocks and state instead. Base Mainnet continues to use Flashblocks until its own Denim activation, which is targeting November 2026.
See the Denim migration steps.
Parameters
- transactionobjectREQUIRED
The transaction call object:
- fromstring
The address from which the transaction is sent
- tostringREQUIRED
The address to which the transaction is addressed
- gasinteger
The integer of gas provided for the transaction execution
- gasPriceinteger
The integer of gasPrice used for each paid gas encoded as hexadecimal
- valueinteger
The integer of value sent with this transaction encoded as hexadecimal
- datastring
The hash of the method signature and encoded parameters. For more information, see the Contract ABI description in the Solidity documentation.
- blockNumberstring
The block number in hexadecimal format or the string latest, earliest, pending, safe or finalized
Returns
- quantity
The estimated amount of gas used
1curl -X POST "https://docs-demo.base-mainnet.quiknode.pro/" \2-H "Content-Type: application/json" \3-d '{4"jsonrpc": "2.0",5"method": "eth_estimateGas",6"params": [7{8"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",9"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",10"value": "0x186a0"11}12],13"id": 114}'
1curl -X POST "https://docs-demo.base-mainnet.quiknode.pro/" \2-H "Content-Type: application/json" \3-d '{4"jsonrpc": "2.0",5"method": "eth_estimateGas",6"params": [7{8"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",9"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",10"value": "0x186a0"11}12],13"id": 114}'
1import { ethers } from "ethers";23async function main() {4const provider = new ethers.JsonRpcProvider("https://docs-demo.base-mainnet.quiknode.pro/");5const response = await provider.send("eth_estimateGas", [6{7"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",8"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",9"value": "0x186a0"10}11]);12console.log(response);13}1415main();
1import { ethers } from "ethers";23async function main() {4const provider = new ethers.JsonRpcProvider("https://docs-demo.base-mainnet.quiknode.pro/");5const response = await provider.send("eth_estimateGas", [6{7"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",8"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",9"value": "0x186a0"10}11]);12console.log(response);13}1415main();
1from web3 import Web3, HTTPProvider2w3 = Web3(HTTPProvider('https://docs-demo.base-mainnet.quiknode.pro/'))3response = w3.provider.make_request("eth_estimateGas", [{"from":"0x8D97689C9818892B700e27F316cc3E41e17fBeb9","to":"0xd3CdA913deB6f67967B99D67aCDFa1712C293601","value":"0x186a0"}])4print(response)
1from web3 import Web3, HTTPProvider2w3 = Web3(HTTPProvider('https://docs-demo.base-mainnet.quiknode.pro/'))3response = w3.provider.make_request("eth_estimateGas", [{"from":"0x8D97689C9818892B700e27F316cc3E41e17fBeb9","to":"0xd3CdA913deB6f67967B99D67aCDFa1712C293601","value":"0x186a0"}])4print(response)
1import { createPublicClient, http } from 'viem'23async function main() {4const client = createPublicClient({5transport: http('https://docs-demo.base-mainnet.quiknode.pro/')6})78const result = await client.request({9method: 'eth_estimateGas',10params: [11{12"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",13"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",14"value": "0x186a0"15}16]17})1819console.log(result)20}2122main()
1import { createPublicClient, http } from 'viem'23async function main() {4const client = createPublicClient({5transport: http('https://docs-demo.base-mainnet.quiknode.pro/')6})78const result = await client.request({9method: 'eth_estimateGas',10params: [11{12"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",13"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",14"value": "0x186a0"15}16]17})1819console.log(result)20}2122main()
1import { QuicknodeSdk } from '@quicknode/sdk'23const qn = new QuicknodeSdk({})45const result = await qn.rpc.call(6'eth_estimateGas',7[8{9"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",10"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",11"value": "0x186a0"12}13],14undefined,15'https://docs-demo.base-mainnet.quiknode.pro/'16)1718console.log(result)
1import { QuicknodeSdk } from '@quicknode/sdk'23const qn = new QuicknodeSdk({})45const result = await qn.rpc.call(6'eth_estimateGas',7[8{9"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",10"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",11"value": "0x186a0"12}13],14undefined,15'https://docs-demo.base-mainnet.quiknode.pro/'16)1718console.log(result)
1import asyncio2from quicknode_sdk import QuicknodeSdk, SdkFullConfig34async def main():5qn = QuicknodeSdk(SdkFullConfig(api_key=None))6result = await qn.rpc.call(7"eth_estimateGas",8[9{10"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",11"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",12"value": "0x186a0"13}14],15endpoint_url="https://docs-demo.base-mainnet.quiknode.pro/",16)17print(result)1819asyncio.run(main())
1import asyncio2from quicknode_sdk import QuicknodeSdk, SdkFullConfig34async def main():5qn = QuicknodeSdk(SdkFullConfig(api_key=None))6result = await qn.rpc.call(7"eth_estimateGas",8[9{10"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",11"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",12"value": "0x186a0"13}14],15endpoint_url="https://docs-demo.base-mainnet.quiknode.pro/",16)17print(result)1819asyncio.run(main())
1require "quicknode_sdk"23qn = QuicknodeSdk::SDK.from_config(api_key: nil)45result = qn.rpc.call(6method: "eth_estimateGas",7params: [8{9"from" => "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",10"to" => "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",11"value" => "0x186a0"12}13],14endpoint_url: "https://docs-demo.base-mainnet.quiknode.pro/"15)1617puts result
1require "quicknode_sdk"23qn = QuicknodeSdk::SDK.from_config(api_key: nil)45result = qn.rpc.call(6method: "eth_estimateGas",7params: [8{9"from" => "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",10"to" => "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",11"value" => "0x186a0"12}13],14endpoint_url: "https://docs-demo.base-mainnet.quiknode.pro/"15)1617puts result
1use quicknode_sdk::{QuicknodeSdk, SdkFullConfig};23#[tokio::main]4async fn main() -> Result<(), Box<dyn std::error::Error>> {5let qn = QuicknodeSdk::new(&SdkFullConfig::keyless())?;6let result = qn7.rpc8.call(9"eth_estimateGas",10Some(serde_json::json!([11{12"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",13"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",14"value": "0x186a0"15}16])),17None,18Some("https://docs-demo.base-mainnet.quiknode.pro/".into()),19)20.await?;2122println!("{result}");23Ok(())24}
1use quicknode_sdk::{QuicknodeSdk, SdkFullConfig};23#[tokio::main]4async fn main() -> Result<(), Box<dyn std::error::Error>> {5let qn = QuicknodeSdk::new(&SdkFullConfig::keyless())?;6let result = qn7.rpc8.call(9"eth_estimateGas",10Some(serde_json::json!([11{12"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",13"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",14"value": "0x186a0"15}16])),17None,18Some("https://docs-demo.base-mainnet.quiknode.pro/".into()),19)20.await?;2122println!("{result}");23Ok(())24}
1const body = {2jsonrpc: '2.0',3method: 'eth_estimateGas',4params: [{"from":"0x8D97689C9818892B700e27F316cc3E41e17fBeb9","to":"0xd3CdA913deB6f67967B99D67aCDFa1712C293601","value":"0x186a0"}],5id: 16}78async function main() {9const response = await fetch('https://docs-demo.base-mainnet.quiknode.pro/', {10method: 'POST',11headers: {'Content-Type': 'application/json'},12body: JSON.stringify(body)13})14const data = await response.json()15console.log(data)16}1718main()
1const body = {2jsonrpc: '2.0',3method: 'eth_estimateGas',4params: [{"from":"0x8D97689C9818892B700e27F316cc3E41e17fBeb9","to":"0xd3CdA913deB6f67967B99D67aCDFa1712C293601","value":"0x186a0"}],5id: 16}78async function main() {9const response = await fetch('https://docs-demo.base-mainnet.quiknode.pro/', {10method: 'POST',11headers: {'Content-Type': 'application/json'},12body: JSON.stringify(body)13})14const data = await response.json()15console.log(data)16}1718main()
1import requests2import json34url = "https://docs-demo.base-mainnet.quiknode.pro/"56payload = json.dumps({7"jsonrpc": "2.0",8"method": "eth_estimateGas",9"params": [10{11"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",12"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",13"value": "0x186a0"14}15],16"id": 117})18headers = {19'Content-Type': 'application/json'20}2122response = requests.request("POST", url, headers=headers, data=payload)2324print(response.text)
1import requests2import json34url = "https://docs-demo.base-mainnet.quiknode.pro/"56payload = json.dumps({7"jsonrpc": "2.0",8"method": "eth_estimateGas",9"params": [10{11"from": "0x8D97689C9818892B700e27F316cc3E41e17fBeb9",12"to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",13"value": "0x186a0"14}15],16"id": 117})18headers = {19'Content-Type': 'application/json'20}2122response = requests.request("POST", url, headers=headers, data=payload)2324print(response.text)
1require "uri"2require "json"3require "net/http"45uri = URI("https://docs-demo.base-mainnet.quiknode.pro/")67payload = {8jsonrpc: "2.0",9id: 1,10method: "eth_estimateGas",11params: [{"from":"0x8D97689C9818892B700e27F316cc3E41e17fBeb9","to":"0xd3CdA913deB6f67967B99D67aCDFa1712C293601","value":"0x186a0"}]12}1314request = Net::HTTP::Post.new(uri)15request["Content-Type"] = "application/json"16request.body = JSON.generate(payload)1718response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|19http.request(request)20end2122puts response.body
1require "uri"2require "json"3require "net/http"45uri = URI("https://docs-demo.base-mainnet.quiknode.pro/")67payload = {8jsonrpc: "2.0",9id: 1,10method: "eth_estimateGas",11params: [{"from":"0x8D97689C9818892B700e27F316cc3E41e17fBeb9","to":"0xd3CdA913deB6f67967B99D67aCDFa1712C293601","value":"0x186a0"}]12}1314request = Net::HTTP::Post.new(uri)15request["Content-Type"] = "application/json"16request.body = JSON.generate(payload)1718response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|19http.request(request)20end2122puts response.body
1{2"jsonrpc": "2.0",3"id": 1,4"result": "0x5208"5}
1{2"jsonrpc": "2.0",3"id": 1,4"result": "0x5208"5}