eth_sendRawTransaction on Linea
Everything below was measured on 2026-10-13 by calling eth_sendRawTransaction on Linea through the same endpoint customers use, and is re-measured weekly.
What eth_sendRawTransaction does
Submits a signed transaction to the network and returns its hash. The node checks the signature, chain ID, nonce and balance first, and returns an error string instead of a hash when any check fails, which is the text your app has to handle.
Errors Linea returns, word for word
We submitted three transactions that must fail, signed by a new, empty key (nothing was spent). These are the messages your app receives in those situations.
| EIP-1559 transfer from an empty account | Invalid transaction: transaction up-front cost 0x36cc4aab4a9 exceeds transaction sender account balance 0x0 for sender 0xcf33a1979c9bc5469340813fafdbe33f1fac3618 |
|---|---|
| Legacy transaction signed without a chain ID (pre-EIP-155) | Invalid transaction: transaction up-front cost 0x36cc4aab4a9 exceeds transaction sender account balance 0x0 for sender 0xcf33a1979c9bc5469340813fafdbe33f1fac3618 |
| Truncated bytes ("0x02f8") | rlp: value size exceeds available input length |
How to read them
Linea's nodes refuse transactions without a chain ID ("Invalid transaction: transaction up-front cost 0x36cc4aab4a9 exceeds transaction sender account balance 0x0 for sender 0xcf33a1979c9bc5469340813fafdbe33f1fac3618"), so old signing code that omits it fails here.
Send the same signed bytes again only if you never got a hash back: a second submission of an accepted transaction returns an "already known" style error, not a second transaction, and a transaction with the same nonce but a higher fee replaces it.
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_sendRawTransaction","params":["0x02f8..."]}'import { createPublicClient, http } from "viem";
const client = createPublicClient({
transport: http("https://rpc.swiftnodes.io/rpc/linea?key=YOUR_API_KEY"),
});
try {
const hash = await client.sendRawTransaction({ serializedTransaction: signed });
const receipt = await client.waitForTransactionReceipt({ hash });
} catch (e) {
const msg = String(e?.details ?? e?.message);
if (/insufficient funds/i.test(msg)) { /* ask the user to top up */ }
else if (/nonce too low|already known/i.test(msg)) { /* already sent: look up by hash */ }
else throw e;
}Other methods on Linea
- eth_blockNumberSupported
- eth_chainIdSupported
- eth_getBalanceSupported
- eth_getBlockByNumberSupported
- eth_getTransactionByHashSupported
- eth_getTransactionReceiptSupported
- eth_callSupported
- eth_estimateGasSupported
- eth_gasPriceSupported
- eth_maxPriorityFeePerGasSupported
- eth_getTransactionCountSupported
- eth_getCodeSupported
- eth_subscribeSupported
- eth_getLogsSupported
- eth_getBlockReceiptsSupported
- eth_feeHistorySupported
- eth_getProofSupported
- eth_createAccessListSupported
- debug_traceCallSupported
- trace_blockSupported
- trace_transactionSupported
eth_sendRawTransaction 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_sendRawTransaction?
Yes. eth_sendRawTransaction answered on the SwiftNodes Linea endpoint when our weekly probe called it through the customer path (2026-10-13).
Does Linea accept transactions without a chain ID?
No. It answered "Invalid transaction: transaction up-front cost 0x36cc4aab4a9 exceeds transaction sender account balance 0x0 for sender 0xcf33a1979c9bc5469340813fafdbe33f1fac3618".
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.