eth_call on ApeChain
Everything below was measured on 2026-10-13 by calling eth_call on ApeChain through the same endpoint customers use, and is re-measured weekly.
What eth_call does
Executes a call against a block's state without creating a transaction, and returns the output bytes. Every contract read (balanceOf, quotes, view functions) is an eth_call. It costs nothing on-chain but still runs the EVM on the node.
eth_call on ApeChain: what we measured
| Multicall3 at 0xcA11…CA11 | deployed (3,808 bytes) |
|---|---|
| block.number seen inside a call | 26,183,766 |
| eth_blockNumber at the same time | 51,944,995 |
| State override (third parameter) | supported |
| Call with gas 0xffffffffffffffff | accepted (capped by the node) |
| Block given by hash (EIP-1898) | accepted |
What this means on ApeChain
Inside a contract call, block.number returned 26,183,766, while eth_blockNumber returned 51,944,995. On ApeChain, the NUMBER opcode returns the Ethereum (L1) block number, not the L2 one. Contracts that time things in blocks count L1 blocks (about 12 s each), and you need ArbSys(0x64).arbBlockNumber() for the L2 number.
State overrides work: you can replace an account's code, balance or storage for one call. That lets you simulate a transaction from an address with no funds, or test a contract change before deploying it.
Multicall3 is deployed at the standard address, so viem's client.multicall and ethers' multicall helpers batch many reads into one eth_call here without configuration.
Example request
curl -s https://rpc.swiftnodes.io/rpc/apechain?key=YOUR_API_KEY \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0xcA11bde05977b3631167028862bE2a173976CA11","data":"0x42cbb15c"},"latest"]}'import { createPublicClient, erc20Abi, http } from "viem";
const client = createPublicClient({
transport: http("https://rpc.swiftnodes.io/rpc/apechain?key=YOUR_API_KEY"),
});
const balance = await client.readContract({
address: token, abi: erc20Abi, functionName: "balanceOf", args: [owner],
});
// Many reads in one eth_call (Multicall3 is deployed on ApeChain)
const [name, symbol, supply] = await client.multicall({
contracts: ["name", "symbol", "totalSupply"].map((functionName) => ({ address: token, abi: erc20Abi, functionName })),
allowFailure: false,
});
// Simulate with a state override: pretend the sender holds 10 APE
await client.call({ account: sender, to, data, stateOverride: [{ address: sender, balance: 10n * 10n ** 18n }] });Other methods on ApeChain
- eth_blockNumberSupported
- eth_chainIdSupported
- eth_getBalanceSupported
- eth_getBlockByNumberSupported
- eth_getTransactionByHashSupported
- eth_getTransactionReceiptSupported
- eth_estimateGasSupported
- eth_gasPriceSupported
- eth_maxPriorityFeePerGasSupported
- eth_sendRawTransactionSupported
- eth_getTransactionCountSupported
- eth_getCodeSupported
- eth_subscribeSupported
- eth_getLogsSupported
- eth_getBlockReceiptsSupported
- eth_feeHistorySupported
- eth_getProofSupported
- eth_createAccessListSupported
- debug_traceCallSupported
- trace_blockNot available
- trace_transactionNot available
eth_call on other chains
- 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
- 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
- Immutable zkEVM
Frequently asked questions
Does ApeChain support eth_call?
Yes. eth_call answered on the SwiftNodes ApeChain endpoint when our weekly probe called it through the customer path (2026-10-13).
Is Multicall3 deployed on ApeChain?
Yes, at 0xcA11bde05977b3631167028862bE2a173976CA11 (3,808 bytes of code, checked 2026-10-13).
Does eth_call support state overrides on ApeChain?
Yes. The third parameter accepts code, balance and storage overrides.
ApeChain endpoints, live block height and WebSocket status are on the ApeChain RPC page.
One key covers every chain we serve, and SwiftNodes has a free tier.