RPC method

eth_sendRawTransaction on Ethereum Classic

Supported on SwiftNodes

Everything below was measured on 2026-10-13 by calling eth_sendRawTransaction on Ethereum Classic 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 Ethereum Classic 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 accounttransaction type not supported: type 2 rejected, pool not yet in London
Legacy transaction signed without a chain ID (pre-EIP-155)only replay-protected (EIP-155) transactions allowed over RPC
Truncated bytes ("0x02f8")rlp: value size exceeds available input length

How to read them

Ethereum Classic's nodes refuse transactions without a chain ID ("only replay-protected (EIP-155) transactions allowed over RPC"), 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/etc?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/etc?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 Ethereum Classic

eth_sendRawTransaction on other chains

Frequently asked questions

Does Ethereum Classic support eth_sendRawTransaction?

Yes. eth_sendRawTransaction answered on the SwiftNodes Ethereum Classic endpoint when our weekly probe called it through the customer path (2026-10-13).

Does Ethereum Classic accept transactions without a chain ID?

No. It answered "only replay-protected (EIP-155) transactions allowed over RPC".

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.