RPC method

eth_estimateGas on Immutable zkEVM

Supported on SwiftNodes

Everything below was measured on 2026-10-13 by calling eth_estimateGas on Immutable zkEVM through the same endpoint customers use, and is re-measured weekly.

What eth_estimateGas does

Runs a transaction against current state and returns the gas it would use, so you can set a gas limit. If the transaction would revert or the sender cannot pay, the node returns an error instead of a number.

eth_estimateGas on Immutable zkEVM: what we measured

Zero-value IMX transfer to an EOA21,000 gas
Same on Ethereum21,000 gas
1 wei from an empty accountfailed with 50000000 gas: insufficient funds for gas * price + value: address 0xA5A59197d5F105FF101Db33F7C731aB043d2a791 have 0 want 1

What the numbers mean

A plain transfer estimates at exactly 21,000 gas on Immutable zkEVM, as on Ethereum. Contract calls vary with state, so estimate those rather than hard-coding a limit.

An estimate for a sender that cannot pay fails with: "failed with 50000000 gas: insufficient funds for gas * price + value: address 0xA5A59197d5F105FF101Db33F7C731aB043d2a791 have 0 want 1". Your app sees this text when a user's balance is too low, so match on it to show a clear message.

Chains where a transfer is not 21,000 gas

Of the 53 chains we measure, 6 estimate a plain transfer at something other than 21,000 gas.

Example request

curl -s https://rpc.swiftnodes.io/rpc/immutable-zkevm?key=YOUR_API_KEY \
  -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0x0000000000000000000000000000000000000000","to":"0x000000000000000000000000000000000000dEaD","value":"0x0"}]}'
import { createPublicClient, http } from "viem";

const client = createPublicClient({
  transport: http("https://rpc.swiftnodes.io/rpc/immutable-zkevm?key=YOUR_API_KEY"),
});

const gas = await client.estimateGas({ account: from, to, value });
// Add headroom: state can change between estimate and inclusion
const gasLimit = (gas * 120n) / 100n;

Other methods on Immutable zkEVM

eth_estimateGas on other chains

Frequently asked questions

Does Immutable zkEVM support eth_estimateGas?

Yes. eth_estimateGas answered on the SwiftNodes Immutable zkEVM endpoint when our weekly probe called it through the customer path (2026-10-13).

How much gas does a plain transfer use on Immutable zkEVM?

eth_estimateGas returned 21,000 for a plain transfer on 2026-10-13.

What does "insufficient funds for gas * price + value" mean from eth_estimateGas on Immutable zkEVM?

The sender's balance cannot cover the value plus the gas. Fund the account or lower the value; the have and want figures in the message are in wei.

Immutable zkEVM endpoints, live block height and WebSocket status are on the Immutable zkEVM RPC page.

One key covers every chain we serve, and SwiftNodes has a free tier.