Skip to main content

linea_estimateGas

info

linea_estimateGas is only fully compatible with endpoints using the Besu client with the linea-sequencer plugin enabled. See our node running guides to set one up.

If you prefer to use Geth, linea_estimateGas is only available if you redirect your request through an Infura endpoint.

We recommend using linea_estimateGas rather than alternatives, such as eth_gasPrice. linea_estimateGas returns estimates with greater accuracy, minimizing the risk of transactions being priced incorrectly and failing as a result.

Generates and returns an estimate of how much gas is necessary to allow the transaction to complete and be published on Ethereum. The transaction will not be added to the blockchain.

See more information about estimating gas, and how this API formulates the transaction costs.

The priorityFeePerGas returned by this method includes the cost of submitting the transaction to Ethereum, which can vary based on the size of the calldata.

note

linea_estimateGas uses the same inputs as the standard eth_estimateGas, but returns the recommended gas limit, the base fee per gas, and the priority fee per gas. We recommend using linea_estimateGas for more accurate results.

Parameters​

  • TRANSACTION CALL OBJECT [required]
    • from: [optional] 20 bytes - The address the transaction is sent from.

    • to: [optional] 20 bytes - The address the transaction is directed to.

    • gas: [optional] Hexadecimal value of the gas provided for the transaction execution. linea_estimateGas consumes zero gas, but this parameter may be needed by some executions.

    • gasPrice: [optional] Hexadecimal value of the gas price used for each paid gas.

    • maxPriorityFeePerGas: [optional] Maximum fee, in wei, the sender is willing to pay per gas above the base fee.

    • maxFeePerGas: [optional] Maximum total fee (base fee + priority fee), in wei, the sender is willing to pay per gas.

    • value: [optional] Hexadecimal value of the value sent with this transaction.

    • data: [optional] Hash of the method signature and encoded parameters. See the Ethereum contract ABI specification.

    • block number: [optional] A string representing a block number, or one of the string tags latest, earliest, pending, or finalized.

      note

      A finalized block is a block on an L2 blockchain (Linea) that has been confirmed and validated by the L1 blockchain (Ethereum).

Returns​

Hexadecimal values representing the recommended gas limit, the base fee per gas, and the priority fee per gas.

Example​

tip

You can also call the API using Infura's supported Linea endpoints.

Request​

curl https://rpc.linea.build \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0","method": "linea_estimateGas","params": [{"from": "0x971e727e956690b9957be6d51Ec16E73AcAC83A7","gas":"0x21000"}],"id": 53}'

Response​

{
"jsonrpc": "2.0",
"id": 53,
"result": {
"baseFeePerGas": "0x7",
"gasLimit": "0xcf08",
"priorityFeePerGas": "0x43a82a4"
}
}

Where:

  • baseFeePerGas - Uses the Linea base fee which is set at 7 wei.
  • gasLimit - Uses the standard eth_estimateGas API calculation.
  • priorityFeePerGas - Calculates the fee required to prioritize a transaction by considering factors such as the compressed transaction size, layer 1 verification costs and capacity, gas price ratio between layer 1 and layer 2, the transaction's gas usage, the minimum gas price on layer 2, and a minimum margin (for error) for gas price estimation.
note

The result of the request returns hexadecimal equivalent integers of gas prices in wei. Convert the hexadecimal value into decimals to get the wei value. You can use any hexadecimal to decimal converter such as RapidTables.