eth_chainId on Ethereum Classic
Everything below was measured on 2026-10-13 by calling eth_chainId on Ethereum Classic through the same endpoint customers use, and is re-measured weekly.
What eth_chainId does
Returns the chain ID (EIP-155) as a hex string. Wallets and libraries check it before signing, and the signature commits to it, so a transaction signed for one chain cannot be replayed on another.
Ethereum Classic chain ID, as measured
net_version (1) differs from the chain ID (61) on Ethereum Classic. net_version is the network ID, an older and separate number; always use eth_chainId for signing and wallet checks.
We sent Ethereum Classic a legacy transaction signed without a chain ID (pre-EIP-155). Its nodes refused it: "only replay-protected (EIP-155) transactions allowed over RPC". Sign with chain ID 61; every mainstream library does this by default.
| eth_chainId | 0x3d (61) |
|---|---|
| net_version | 1 |
Example request
curl -s https://rpc.swiftnodes.io/rpc/etc?key=YOUR_API_KEY \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'// Check you are on Ethereum Classic before signing
import { createPublicClient, http } from "viem";
const client = createPublicClient({
transport: http("https://rpc.swiftnodes.io/rpc/etc?key=YOUR_API_KEY"),
});
const id = await client.getChainId(); // 61
if (id !== 61) throw new Error(`wrong chain: ${id}`);
// Add Ethereum Classic to a browser wallet
await window.ethereum.request({
method: "wallet_addEthereumChain",
params: [{
chainId: "0x3d",
chainName: "Ethereum Classic",
nativeCurrency: { name: "ETC", symbol: "ETC", decimals: 18 },
rpcUrls: ["https://rpc.swiftnodes.io/rpc/etc?key=YOUR_API_KEY"],
}],
});Other methods on Ethereum Classic
- eth_blockNumberSupported
- 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
- debug_traceCallSupported
- trace_blockSupported
- trace_transactionSupported
eth_chainId 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
- ApeChain
- MegaETH
- Fantom
- Lisk
- Hemi
- X Layer
- BOB
- Plasma
- Fraxtal
- Zora
- Story
- Soneium
- Sei
- Hyperliquid
- Taiko
- Morph
- Ink
- Katana
- opBNB
- Mode
- Flare
- Core
- Chiliz
- Telos EVM
- Tempo
- Cronos
- Manta Pacific
- Shibarium
- Boba Network
- Arbitrum Nova
- Immutable zkEVM
Frequently asked questions
Does Ethereum Classic support eth_chainId?
Yes. eth_chainId answered on the SwiftNodes Ethereum Classic endpoint when our weekly probe called it through the customer path (2026-10-13).
What is the Ethereum Classic chain ID?
61 in decimal, 0x3d in hex, as returned by eth_chainId on 2026-10-13.
How do I add Ethereum Classic to MetaMask?
Call wallet_addEthereumChain with chainId 0x3d, the native currency ETC with 18 decimals, and your RPC URL; the example on this page has the full object.
Ethereum Classic endpoints, live block height and WebSocket status are on the Ethereum Classic RPC page.
One key covers every chain we serve, and SwiftNodes has a free tier.