Taiko
eth_sendRawTransaction
eth_sendRawTransaction submits a fully-signed transaction to the network. It's the only way to produce a state change through a stateless RPC endpoint — every wallet, every contract deployment, every token transfer goes through this method.
The one-line summary
You sign the transaction off-the-wire with the sender's private key, RLP-encode it, prefix with 0x, and hand it to eth_sendRawTransaction. The provider doesn't see the key — only the signed payload.
Parameter
| Name | Type | Description |
|---|---|---|
signedTx | string | Hex-encoded, RLP-encoded signed transaction with a 0x prefix. Always a single string. |
Building a signed transaction
You don't sign by hand. Use a library:
For EIP-1559 transactions, set maxFeePerGas and maxPriorityFeePerGas instead of legacy gasPrice. Most modern wallets do this by default.
Response shape
The result is the transaction hash:
The hash is final the instant the call returns — but the transaction is not yet on-chain. It's in the mempool. To wait for inclusion, poll eth_getTransactionReceipt with the returned hash, or subscribe via eth_subscribe.
Common failure modes
nonce too low/nonce too high— the nonce in the signed payload doesn't match the sender's current nonce. Fetch it fresh viaeth_getTransactionCountand rebuild.insufficient funds for gas * price + value— the sender doesn't have enough native-token balance forgas × maxFeePerGas + value.replacement transaction underpriced— you tried to replace a pending tx (same nonce) but with a fee that's not high enough above the original. Most providers require ≥10% bump on bothmaxFeePerGasandmaxPriorityFeePerGas.execution reverted— the EVM rejected the call. The revert reason is decoded by your library; if you got it from a raw RPC response, parseerror.datawith the contract ABI.
After submission
The tx hash lets you track the lifecycle:
- Pending — visible via
eth_getTransactionByHash, no receipt yet. - Mined —
eth_getTransactionReceiptreturns a receipt withstatus: "0x1"(success) or"0x0"(revert with gas consumed). - Finalised — receipt's
blockNumberis now ≤ the chain'sfinalizedtag. Reorg-safe from this point.
See also
- eth_getTransactionReceipt — wait for inclusion + check status.
- eth_estimateGas — get a gas limit before signing.
- eth_call — simulate the call read-only before paying gas.
Parameters
Hex-encoded signed transaction (0x-prefixed)