Skip to main content

starknet_estimateFee RPC Method

Estimates the resources required by a given sequence of transactions when applied on a given state. If one of the transactions reverts or fails due to any reason (e.g. validation failure or an internal error), a TRANSACTION_EXECUTION_ERROR is returned. For v0-2 transactions the estimate is given in wei, and for v3 transactions it is given in fri.

Updated on
Mar 18, 2024

Parameters

request
array
REQUIRED

The request object which contains one of the following objects:

BROADCASTED_INVOKE_TXN_V3
object

The broadcasted invoke transaction v3 object which contains the following fields:

type
string
REQUIRED

The type of declare. It can take only one value - 'INVOKE'

sender_address
string
REQUIRED

The sender address

calldata
array
REQUIRED

The parameters passed to the constructor

version
string
REQUIRED

The version of the transaction scheme

signature
string
REQUIRED

The signature associated with the transaction

nonce
string
REQUIRED

The nonce value

resource_bounds
object
REQUIRED

The resource bounds for the transaction execution

l1_gas
object
REQUIRED

The max amount and max price per unit of L1 gas used in this tx

max_amount
string
REQUIRED

The max amount of the resource that can be used in the tx

max_price_per_unit
string
REQUIRED

The max price per unit of this resource for this tx

l1_data_gas
object
REQUIRED

The max amount and max price per unit of L1 data gas used in this tx

max_amount
string
REQUIRED

The max amount of the resource that can be used in the tx

max_price_per_unit
string
REQUIRED

The max price per unit of this resource for this tx

l2_gas
object
REQUIRED

The max amount and max price per unit of L2 gas used in this tx

max_amount
string
REQUIRED

The max amount of the resource that can be used in the tx

max_price_per_unit
string
REQUIRED

The max price per unit of this resource for this tx

tip
string
REQUIRED

The tip for the transaction

paymaster_data
array
REQUIRED

The data needed to allow the paymaster to pay for the transaction in native tokens

account_deployment_data
array
REQUIRED

The data needed to deploy the account contract from which this tx will be initiated

nonce_data_availability_mode
string
REQUIRED

The storage domain of the account's nonce (an account has a nonce per DA mode). It can be one of 'L1' or 'L2'

fee_data_availability_mode
string
REQUIRED

The storage domain of the account's balance from which fee will be charged. It can be one of 'L1' or 'L2'

BROADCASTED_DECLARE_TXN_V3
object

The broadcasted declare transaction v3 object which contains the following fields:

type
string
REQUIRED

The type of declare. It can take only one value - 'DECLARE'

sender_address
string
REQUIRED

The address of the account contract sending the declaration transaction

compiled_class_hash
string
REQUIRED

The hash of the Cairo assembly resulting from the Sierra compilation

version
string
REQUIRED

The version of the transaction scheme

signature
string
REQUIRED

The signature associated with the transaction

nonce
string
REQUIRED

The nonce value

contract_class
object
REQUIRED

The class to be declared

sierra_program
array
REQUIRED

The list of Sierra instructions of which the program consists

contract_class_version
string
REQUIRED

The version of the contract class object. Currently, the Starknet OS supports version 0.1.0

entry_points_by_type
object
REQUIRED

The entry points by type object which contains the following fields:

CONSTRUCTOR
array
REQUIRED

The list of Sierra instructions of which the program consists

selector
string
REQUIRED

A unique identifier of the entry point (function) in the program

function_idx
integer
REQUIRED

The index of the function in the program

EXTERNAL
array
REQUIRED

The list of Sierra instructions of which the program consists

selector
string
REQUIRED

A unique identifier of the entry point (function) in the program

function_idx
integer
REQUIRED

The index of the function in the program

L1_HANDLER
array
REQUIRED

The list of Sierra instructions of which the program consists

selector
string
REQUIRED

A unique identifier of the entry point (function) in the program

function_idx
integer
REQUIRED

The index of the function in the program

abi
string

The class ABI, as supplied by the user declaring the class

resource_bounds
object
REQUIRED

The resource bounds for the transaction execution

l1_gas
object
REQUIRED

The max amount and max price per unit of L1 gas used in this tx

max_amount
string
REQUIRED

The max amount of the resource that can be used in the tx

max_price_per_unit
string
REQUIRED

The max price per unit of this resource for this tx

l1_data_gas
object
REQUIRED

The max amount and max price per unit of L1 data gas used in this tx

max_amount
string
REQUIRED

The max amount of the resource that can be used in the tx

max_price_per_unit
string
REQUIRED

The max price per unit of this resource for this tx

l2_gas
object
REQUIRED

The max amount and max price per unit of L2 gas used in this tx

max_amount
string
REQUIRED

The max amount of the resource that can be used in the tx

max_price_per_unit
string
REQUIRED

The max price per unit of this resource for this tx

tip
string
REQUIRED

The tip for the transaction

paymaster_data
array
REQUIRED

The data needed to allow the paymaster to pay for the transaction in native tokens

account_deployment_data
array
REQUIRED

The data needed to deploy the account contract from which this tx will be initiated

nonce_data_availability_mode
string
REQUIRED

The storage domain of the account's nonce (an account has a nonce per DA mode). It can be one of 'L1' or 'L2'

fee_data_availability_mode
string
REQUIRED

The storage domain of the account's balance from which fee will be charged. It can be one of 'L1' or 'L2'

BROADCASTED_DEPLOY_ACCOUNT_TXN_V3
object

The broadcasted deploy account transaction v3 object which contains the following fields:

type
string
REQUIRED

The type of declare. It can take only one value - 'DEPLOY_ACCOUNT'

version
string
REQUIRED

The version of the transaction scheme

signature
string
REQUIRED

The signature associated with the transaction

nonce
string
REQUIRED

The nonce value

contract_address_salt
string
REQUIRED

The salt for the address of the deployed contract

constructor_calldata
array
REQUIRED

The parameters passed to the constructor

class_hash
string
REQUIRED

The hash of the deployed contract's class

resource_bounds
object
REQUIRED

The resource bounds for the transaction execution

l1_gas
object
REQUIRED

The max amount and max price per unit of L1 gas used in this tx

max_amount
string
REQUIRED

The max amount of the resource that can be used in the tx

max_price_per_unit
string
REQUIRED

The max price per unit of this resource for this tx

l1_data_gas
object
REQUIRED

The max amount and max price per unit of L1 data gas used in this tx

max_amount
string
REQUIRED

The max amount of the resource that can be used in the tx

max_price_per_unit
string
REQUIRED

The max price per unit of this resource for this tx

l2_gas
object
REQUIRED

The max amount and max price per unit of L2 gas used in this tx

max_amount
string
REQUIRED

The max amount of the resource that can be used in the tx

max_price_per_unit
string
REQUIRED

The max price per unit of this resource for this tx

tip
string
REQUIRED

The tip for the transaction

paymaster_data
array
REQUIRED

The data needed to allow the paymaster to pay for the transaction in native tokens

nonce_data_availability_mode
string
REQUIRED

The storage domain of the account's nonce (an account has a nonce per DA mode). It can be one of 'L1' or 'L2'

fee_data_availability_mode
string
REQUIRED

The storage domain of the account's balance from which fee will be charged. It can be one of 'L1' or 'L2'

simulation_flags
array
REQUIRED

It describes what parts of the transaction should be executed. It can take a value as 'SKIP_VALIDATE'

block_id
string
REQUIRED

The hash of the requested block, the block number (height) of the requested block, or a block tag (latest, pre_confirmed, or l1_accepted)

Returns

result
array

Array of fee estimation results

l1_data_gas_consumed
string

The amount of Layer 1 data gas consumed by the transaction

l1_data_gas_price
string

The price per unit of Layer 1 data gas (in WEI)

l1_gas_consumed
string

The amount of Layer 1 execution gas consumed by the transaction

l1_gas_price
string

The price per unit of Layer 1 execution gas (in WEI)

l2_gas_consumed
string

The amount of Layer 2 gas consumed by the transaction

l2_gas_price
string

The price per unit of Layer 2 gas (in WEI)

overall_fee
string

The total estimated fee for the transaction in WEI, computed using all gas consumed and respective prices

unit
string

The unit in which the overall fee is expressed

Request
Don't have an account yet?
Create your Quicknode endpoint in seconds and start building
Get started for free