MEVSwap is live - The first MEV DEX
mevswap.com
merkle
Dashboard
  • What is merkle
  • Private pool
    • What is Private mempool
    • What is MEV
      • Arbitrage
      • Backruns
      • Sandwiches
    • Wallets
      • Send transactions via RPC
      • Cancel a transaction
      • Transaction status
      • Send transactions via API
      • Programmable privacy
      • Transaction boost
      • Send Solana transaction
      • Solana Transaction Status
      • Solana Boost
    • Searchers
      • Bid on transactions
      • MEVBlocker websocket
      • Bid status
      • Send bundles
    • User Cashback
      • Implementation Guide
      • Dashboard
    • Mempool Explorer
  • MEVSwap
    • What is MEVSwap
    • MEV Bids
    • Swap Signatures
  • Pools
  • MEV Protected Free RPC
    • Ethereum RPC
    • BSC RPC
  • Snapshots
    • Ethereum RETH Snapshots
Powered by GitBook

© merkle 2023-2025

On this page
  • eth_sendRawTransaction
  • eth_sendPrivateTransaction
  • eth_sendRawPrivateTransaction
  • eth_getTransactionByHash
  • eth_getTransactionCount

Was this helpful?

  1. Private pool
  2. Wallets

Send transactions via RPC

PreviousWalletsNextCancel a transaction

Last updated 1 month ago

Was this helpful?

Your custom RPC endpoint can be found in the

We recommend integrating the following 3 RPC methods:

  • eth_sendRawTransaction: Send transactions to the mempool.

  • eth_getTransactionByHash: Fetch the transaction details.

  • eth_getTransactionCount: Get the pending nonce for an account.

Contact or use your dedicated Telegram support channel to get help.

eth_sendRawTransaction

This is the recommended way to send transactions.

Example of a request:

{
    "id": 1,
    "jsonrpc": "2.0",
    "method": "eth_sendRawTransaction",
    "params": [
        "0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833",
     // "customer-123" -> optional source tag for cashback
    ],
}

Example of a response:

{
    "id": 1,
    "jsonrpc": "2.0",
    // the hash of the transaction
    "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}

eth_sendPrivateTransaction

Not recommended. Only available for backward compatibility.

This RPC is similar to eth_sendRawTransaction. The only extra feature is the support for maxBlockNumber.

Example of a request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_sendPrivateTransaction",
  "params": [
    {
      "tx": "0x1111ddddd...",
      "maxBlockNumber": "0x00000", // if the transaction is not mined
                                   // by this block, it will be considered 
                                   // "expired" and dropped
      "source": "customer-123", // optional source tag
      "preferences": {
        "fast": true, // not used, backward compatibility
      }
    }
  ]
}

The response is similar to eth_sendRawTransaction

{    
    "id": 1,
    "jsonrpc": "2.0",
    "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}

eth_sendRawPrivateTransaction

Not recommended. Only available for backward compatibility.

This RPC is the same as eth_sendPrivateTransaction. The only extra feature is the support for maxBlockNumber.

Example of a request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_sendRawPrivateTransaction",
  "params": [
    {
      "tx": "0x1111ddddd...",
      "maxBlockNumber": "0x00000", // if the transaction is not mined
                                   // by this block, it will be considered 
                                   // "expired" and dropped
      "source": "customer-123", // optional source tag
      "preferences": {
        "fast": true, // not used, backward compatibility
      }
    }
  ]
}

The response is similar to eth_sendRawTransaction

{    
    "id": 1,
    "jsonrpc": "2.0",
    "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}

eth_getTransactionByHash

This RPC method mimics the standard eth_getTransactionByHash for private transactions.

Example of a request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_getTransactionByHash",
  "params": [
    "0x..." // transaction hash
  ]
}

Our transaction response closely follows the format of the standard eth_getTransactionByHash method used in Ethereum. However, in our response, the fields gasPrice, v, r, and s are set to "0x0". These fields are not applicable in our context, and this notation ensures clarity and consistency with the standard format without introducing ambiguity.

{
   "id" : 1,
   "jsonrpc" : "2.0",
   "result" : {
      "blockHash" : "0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35",
      "blockNumber" : "0x5bad55",
      "chainId" : "0x1",
      "from" : "0x398137383b3d25c92898c656696e41950e47316b",
      "gas" : "0x1d45e",
      "gasPrice" : "0x0",
      "hash" : "0xbb3a336e3f823ec18197f1e13ee875700f08f03e2cab75f0d0b118dabb44cba0",
      "input" : "0xf7d8c88300000000000000000000000000000000000000000000000000000000000cee6100000000000000000000000000000000000000000000000000000000000ac3e1",
      "nonce" : "0x18",
      "r" : "0x0",
      "s" : "0x0",
      "to" : "0x0",
      "transactionIndex" : "0x11",
      "type" : "0x0",
      "v" : "0x0",
      "value" : "0x1c6bf526340000"
   }
}

eth_getTransactionCount

This method implements the standard eth_getTransactionCount. If using the pending parameter instead of a block number, the private mempool will automatically compute the next nonce using both private transactions and public transactions.

Example of request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_getTransactionCount",
  "params": [
    "0x...", // address
    "pending", // query pending hash
  ]
}
merkle dashboard.
support