Skip to main content

eth_sendRawTransaction

Submits a raw transaction. You can create and sign a transaction externally using a library such as web3.js or ethers.js. For EIP-4844 transactions, the raw form must be the network form. This means it includes the blobs, KZG commitments, and KZG proofs. For EIP-7594 transactions, the raw format must be the network form. This means it includes the blobs, KZG commitments, and cell proofs. The logic for handling the new transaction during fork boundaries are 1. When receiving an encoded transaction with cell proofs before the PeerDAS fork activates, we reject it. Only blob proofs are accepted into the pool. 2. At the time of fork activation, the implementer could (not mandatory) - Drop all old-format transactions - Convert old proofs to new format (computationally expensive) - Convert only when including in a locally produced block 3. After the fork has activated, only txs with cell proofs are accepted via p2p relay. 4. On RPC (eth_sendRawTransaction), txs with blob proofs may still be accepted and will be auto-converted by the node. At implementer discretion, this facility can be deprecated later when users have switched to new client libraries that can create cell proofs.

Parameters (by position)

Transaction string required


Result

Transaction hash string

32 byte hex value

Match pattern: ^0x[0-9a-f]{64}$


Errors

Error code: -32000

  • code

    -32000

  • message

    Invalid input

Error code: -32001

  • code

    -32001

  • message

    Resource not found

Error code: -32002

  • code

    -32002

  • message

    Resource unavailable

Error code: -32003

  • code

    -32003

  • message

    Transaction rejected

Error code: -32004

  • code

    -32004

  • message

    Method not supported

Error code: -32005

  • code

    -32005

  • message

    Limit exceeded

Error code: -32006

  • code

    -32006

  • message

    JSON-RPC version not supported

Error code: -32700

  • code

    -32700

  • message

    Parse error

Error code: -32600

  • code

    -32600

  • message

    Invalid request

Error code: -32601

  • code

    -32601

  • message

    Method not found

Error code: -32602

  • code

    -32602

  • message

    Invalid params

Error code: -32603

  • code

    -32603

  • message

    Internal error

Error code: 800

  • code

    800

  • message

    Intrinsic gas too low / Intrinsic gas exceeds gas limit

  • x-error-category

    GAS_ERRORS

Error code: 801

  • code

    801

  • message

    Insufficient gas for floor data gas cost

  • x-error-category

    GAS_ERRORS

Error code: 802

  • code

    802

  • message

    Tx gas limit exceeds max block gas limit / intrinsic gas exceeds gas limit

  • x-error-category

    GAS_ERRORS

Error code: 803

  • code

    803

  • message

    Transaction gas limit too high

Error code: 804

  • code

    804

  • message

    Gas price below configured minimum gas price / transaction gas price below minimum

  • x-error-category

    GAS_ERRORS

Error code: 805

  • code

    805

  • message

    Insufficient funds for gas * price + value / Upfront cost exceeds account balance

  • x-error-category

    GAS_ERRORS

Error code: 806

  • code

    806

  • message

    Max priority fee per gas higher than max fee per gas

  • x-error-category

    GAS_ERRORS

Error code: 807

  • code

    807

  • message

    Tx fee exceeds the configured cap / Transaction fee cap exceeded

  • x-error-category

    GAS_ERRORS

Error code: 1

  • code

    1

  • message

    Nonce too low

  • x-error-category

    EXECUTION_ERRORS

Error code: 2

  • code

    2

  • message

    Nonce too high

  • x-error-category

    EXECUTION_ERRORS

Error code: 3

  • code

    3

  • message

    Execution reverted by REVERT Opcode

  • x-error-category

    EXECUTION_ERRORS

Error code: 4

  • code

    4

  • message

    Invalid opcode

  • x-error-category

    EXECUTION_ERRORS

Error code: 1000

  • code

    1000

  • message

    Transaction is already known to the transaction pool

  • x-error-category

    TXPOOL_ERRORS

Error code: 1001

  • code

    1001

  • message

    Replacement transaction is sent without the required price bump

  • x-error-category

    TXPOOL_ERRORS

Error code: 1002

  • code

    1002

  • message

    Oversized data: Transaction input data exceeds the allowed limit

  • x-error-category

    TXPOOL_ERRORS

Error code: 1003

  • code

    1003

  • message

    Only replay-protected (EIP-155) transactions allowed over RPC

  • x-error-category

    TXPOOL_ERRORS

Error code: 1004

  • code

    1004

  • message

    Transaction pool is full

  • x-error-category

    TXPOOL_ERRORS

Error code: 1005

  • code

    1005

  • message

    Transaction Data contains invalid RLP encoding

  • x-error-category

    TXPOOL_ERRORS

Error code: 1006

  • code

    1006

  • message

    Transaction sender is invalid

  • x-error-category

    TXPOOL_ERRORS

Error code: 1007

  • code

    1007

  • message

    Transaction with negative value

  • x-error-category

    TXPOOL_ERRORS

Error code: 1008

  • code

    1008

  • message

    Transaction sender is denylisted

  • x-error-category

    TXPOOL_ERRORS

Error code: 1009

  • code

    1009

  • message

    Transaction receiver is denylisted

  • x-error-category

    TXPOOL_ERRORS

Error code: 1010

  • code

    1010

  • message

    Transaction chain ID does not match the expected chain ID

  • x-error-category

    TXPOOL_ERRORS

Error code: 2000

  • code

    2000

  • message

    Not enough step counters to continue the execution

  • x-error-category

    ZK_EXECUTION_ERRORS

Examples

eth_sendRawTransaction example

Request

{
"params": [
"0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833"
]
}

Response

"0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"