eth_getCode on Sonic
Everything below was measured on 2026-10-13 by calling eth_getCode on Sonic through the same endpoint customers use, and is re-measured weekly.
What eth_getCode does
Returns the deployed bytecode at an address, or 0x if there is none. It is how tools tell a contract from a wallet and check that a contract they depend on exists on a chain before calling it.
Standard contracts on Sonic
We called eth_getCode on the address each of these contracts has on every chain where it is deployed.
| Multicall3 (0xcA11bd…CA11) | deployed, 3,808 bytes |
|---|---|
| Permit2 (0x000000…8BA3) | deployed, 9,152 bytes |
| Deterministic deployment proxy (0x4e59b4…956C) | deployed, 69 bytes |
| Safe singleton factory (0x914d7F…43d7) | deployed, 69 bytes |
| ERC-4337 EntryPoint v0.7 (0x000000…a032) | deployed, 16,035 bytes |
| ERC-4337 EntryPoint v0.6 (0x5FF137…2789) | deployed, 23,689 bytes |
| CreateX (0xba5Ed0…a5Ed) | deployed, 11,838 bytes |
What this means
All 7 are deployed, so Foundry deterministic deploys, viem multicall, Permit2 approvals and ERC-4337 smart accounts work on Sonic without extra setup.
Across the chains we measure
49 of 55 chains have all seven. Every one has Multicall3.
Example request
curl -s https://rpc.swiftnodes.io/rpc/sonic?key=YOUR_API_KEY \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_getCode","params":["0xcA11bde05977b3631167028862bE2a173976CA11","latest"]}'import { createPublicClient, http } from "viem";
const client = createPublicClient({
transport: http("https://rpc.swiftnodes.io/rpc/sonic?key=YOUR_API_KEY"),
});
const code = await client.getCode({ address });
const isContract = code !== undefined && code !== "0x";Other methods on Sonic
- 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_subscribeSupported
- eth_getLogsSupported
- eth_getBlockReceiptsSupported
- eth_feeHistorySupported
- eth_getProofSupported
- eth_createAccessListSupported
- debug_traceCallSupported
- trace_blockSupported
- trace_transactionSupported
eth_getCode on other chains
- Ethereum
- Base
- Arbitrum
- Optimism
- Polygon
- BNB Smart Chain
- Avalanche
- 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
- Immutable zkEVM
Frequently asked questions
Does Sonic support eth_getCode?
Yes. eth_getCode answered on the SwiftNodes Sonic endpoint when our weekly probe called it through the customer path (2026-10-13).
Is Permit2 deployed on Sonic?
Yes, at 0x000000000022D473030F116dDEE9F6B43aC78BA3 (checked 2026-10-13).
Does Sonic support ERC-4337?
The EntryPoint v0.7 contract is deployed at 0x0000000071727De22E5E9d8BAf0edAc6f37da032. You also need a bundler for Sonic.
Sonic endpoints, live block height and WebSocket status are on the Sonic RPC page.
One key covers every chain we serve, and SwiftNodes has a free tier.