debug_traceCall on Immutable zkEVM
Measured 2026-10-11 by our weekly probe, which calls debug_traceCall through the same Immutable zkEVM endpoint customers use.
What debug_traceCall does
Executes a call against a block's state and returns its execution trace (with a tracer such as callTracer), without sending a transaction. It is the standard way to see what a call would do internally before you submit it.
debug_traceCall on Immutable zkEVM: what we measured
- Default Immutable zkEVM routing keeps state for roughly the last 1,000,000 blocks (about 23.1 days of Immutable zkEVM history). Tracing against a block older than that needs historical state. Add &archive=1 to send the request to archive upstreams (paid plans).
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":"debug_traceCall","params":[{"to":"0x0000000000000000000000000000000000000000","data":"0x"},"latest",{"tracer":"callTracer"}]}'import { createPublicClient, http } from "viem";
const client = createPublicClient({ transport: http("https://rpc.swiftnodes.io/rpc/immutable-zkevm?key=YOUR_API_KEY") });
// Any JSON-RPC method, typed loosely: debug_traceCall on Immutable zkEVM
const result = await client.request({
method: "debug_traceCall",
params: [{"to":"0x0000000000000000000000000000000000000000","data":"0x"},"latest",{"tracer":"callTracer"}],
});Other methods on Immutable zkEVM
- eth_blockNumberSupported
- eth_chainIdSupported
- eth_getBalanceSupported
- eth_getBlockByNumberSupported
- eth_getTransactionByHashSupported
- eth_getTransactionReceiptSupported
- eth_callSupported
- eth_estimateGasSupported
- eth_gasPriceSupported
- eth_maxPriorityFeePerGasSupported
- eth_sendRawTransactionSupported
- eth_getTransactionCountSupported
- eth_getCodeSupported
- eth_subscribeNot available
- eth_getLogsSupported
- eth_getBlockReceiptsSupported
- eth_feeHistorySupported
- eth_getProofSupported
- eth_createAccessListSupported
- trace_blockNot available
- trace_transactionNot available
debug_traceCall on other chains
Support differs by chain; the full measured table is on the debug_traceCall reference.
- Ethereum
- Base
- Arbitrum
- Optimism
- Polygon
- BNB Smart Chain
- Avalanche
- Sonic
- Linea
- Scroll
- zkSync Era
- Blast
- Mantle
- Gnosis
- Celo
- Berachain
- Monad
- Unichain
- Kaia
- PulseChain
- World Chain
- Ronin
- Abstract
- ApeChain
- MegaETH
- Fantom
- Lisk
- Hemi
- X Layer
- BOB
- Plasma
- Fraxtal
- Zora
- Story
- Soneium
- Sei
- Hyperliquid
- Taiko
- Morph
- Ink
- Katana
- Ethereum Classic
- opBNB
- Mode
- Flare
- Core
- Chiliz
- Telos EVM
- Tempo
- Cronos
- Manta Pacific
- Shibarium
- Boba Network
- Arbitrum Nova
Frequently asked questions
Does Immutable zkEVM support debug_traceCall?
Yes. debug_traceCall answered correctly on the SwiftNodes Immutable zkEVM endpoint in our weekly method probe (2026-10-11), which sends real requests through the customer path.
Are there limits on debug_traceCall on Immutable zkEVM?
Default Immutable zkEVM routing keeps state for roughly the last 1,000,000 blocks (about 23.1 days of Immutable zkEVM history). Tracing against a block older than that needs historical state. Add &archive=1 to send the request to archive upstreams (paid plans).
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.