eth_chainId on Linea
Everything below was measured on 2026-10-13 by calling eth_chainId on Linea 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.
Linea chain ID, as measured
net_version returns the same number as decimal text. Older tools read net_version; use eth_chainId, which is the value signatures commit to.
We sent Linea a legacy transaction signed without a chain ID (pre-EIP-155). Its nodes refused it: "Invalid transaction: transaction up-front cost 0x36cc4aab4a9 exceeds transaction sender account balance 0x0 for sender 0xcf33a1979c9bc5469340813fafdbe33f1fac3618". Sign with chain ID 59144; every mainstream library does this by default.
| eth_chainId | 0xe708 (59,144) |
|---|---|
| net_version | 59144 |
Example request
curl -s https://rpc.swiftnodes.io/rpc/linea?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 Linea before signing
import { createPublicClient, http } from "viem";
const client = createPublicClient({
transport: http("https://rpc.swiftnodes.io/rpc/linea?key=YOUR_API_KEY"),
});
const id = await client.getChainId(); // 59144
if (id !== 59144) throw new Error(`wrong chain: ${id}`);
// Add Linea to a browser wallet
await window.ethereum.request({
method: "wallet_addEthereumChain",
params: [{
chainId: "0xe708",
chainName: "Linea",
nativeCurrency: { name: "ETH", symbol: "ETH", decimals: 18 },
rpcUrls: ["https://rpc.swiftnodes.io/rpc/linea?key=YOUR_API_KEY"],
}],
});Other methods on Linea
- 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_subscribeSupported
- 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
- 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 Linea support eth_chainId?
Yes. eth_chainId answered on the SwiftNodes Linea endpoint when our weekly probe called it through the customer path (2026-10-13).
What is the Linea chain ID?
59144 in decimal, 0xe708 in hex, as returned by eth_chainId on 2026-10-13.
How do I add Linea to MetaMask?
Call wallet_addEthereumChain with chainId 0xe708, the native currency ETH with 18 decimals, and your RPC URL; the example on this page has the full object.
Linea endpoints, live block height and WebSocket status are on the Linea RPC page.
One key covers every chain we serve, and SwiftNodes has a free tier.