> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chainstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# eth_sendRawTransactionSync | Tempo

> Tempo-specific API method that sends a signed transaction to the network and blocks until the transaction receipt is returned. On Tempo.

Tempo-specific API method that sends a signed transaction to the network and blocks until the transaction receipt is returned. This is a synchronous version of [`eth_sendRawTransaction`](/reference/tempo-eth-sendrawtransaction) — instead of returning just the transaction hash, it waits for the transaction to be included in a block and returns the full receipt.

<Info>
  This method is particularly useful on Tempo because of its \~500ms finality. The synchronous wait adds minimal latency while eliminating the need to poll for receipts.
</Info>

## Parameters

* `signedTransaction` — the signed transaction data as a hex string

## Response

* `result` — the full transaction receipt object, returned once the transaction is included in a block. Contains the same fields as the response from [`eth_getTransactionReceipt`](/reference/tempo-eth-gettransactionreceipt), including Tempo-specific fields like `feeToken` and `feePayer`.

## `eth_sendRawTransactionSync` code examples

<CodeGroup>
  ```javascript ethers.js theme={"system"}
  const ethers = require('ethers');
  const NODE_URL = "CHAINSTACK_NODE_URL";
  const provider = new ethers.JsonRpcProvider(NODE_URL);

  const sendTransactionSync = async () => {
      const wallet = new ethers.Wallet("YOUR_PRIVATE_KEY", provider);

      const tx = {
        to: "0xRecipientAddress",
        value: 0,
        data: "0x..." // TIP-20 transfer calldata
      };

      // Sign the transaction
      const signedTx = await wallet.signTransaction(tx);

      // Send synchronously — blocks until receipt is returned
      const receipt = await provider.send("eth_sendRawTransactionSync", [signedTx]);
      console.log(`Confirmed in block: ${receipt.blockNumber}`);
      console.log(`Status: ${receipt.status}`);
    };

  sendTransactionSync();
  ```

  ```python web3.py theme={"system"}
  from web3 import Web3

  node_url = "CHAINSTACK_NODE_URL"
  web3 = Web3(Web3.HTTPProvider(node_url))

  account = web3.eth.account.from_key("YOUR_PRIVATE_KEY")
  tx = {
      'nonce': web3.eth.get_transaction_count(account.address),
      'to': "0xRecipientAddress",
      'value': 0,
      'gas': 21000,
      'gasPrice': web3.eth.gas_price,
      'chainId': 4217  # Tempo mainnet (use 42431 for testnet)
  }

  signed = account.sign_transaction(tx)

  # Send synchronously — blocks until receipt is returned
  receipt = web3.provider.make_request(
      "eth_sendRawTransactionSync",
      [signed.raw_transaction.hex()]
  )
  print(f"Receipt: {receipt['result']}")
  ```

  ```bash cURL theme={"system"}
  curl -X POST "CHAINSTACK_NODE_URL" \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc": "2.0", "method": "eth_sendRawTransactionSync", "params": ["SIGNED_TX_DATA"], "id": 1}'
  ```
</CodeGroup>

## When to use

Use `eth_sendRawTransactionSync` instead of `eth_sendRawTransaction` when:

* You need the receipt immediately and want to avoid polling with `eth_getTransactionReceipt`
* You are building synchronous request/response flows (like payment APIs)
* You want to simplify transaction submission logic by getting the result in a single call

For fire-and-forget scenarios or when submitting many transactions in parallel, use [`eth_sendRawTransaction`](/reference/tempo-eth-sendrawtransaction) instead.


## OpenAPI

````yaml openapi/tempo_node_api/tempo_specific/eth_sendRawTransactionSync.json POST /
openapi: 3.0.0
info:
  title: eth_sendRawTransactionSync Tempo example
  version: 1.0.0
  description: This is an API example for eth_sendRawTransactionSync for Tempo.
servers:
  - url: https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf
security: []
paths:
  /:
    post:
      tags:
        - Tempo specific
      summary: eth_sendRawTransactionSync
      operationId: tempo-eth-sendRawTransactionSync
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_sendRawTransactionSync
                params:
                  type: array
                  items: {}
                  default:
                    - >-
                      0xf867808502540e841e825208949729187d9e8bbefa8295f39f5634ca454dd9d294808083014b9da00602a6c9850068ac6667c098f65cf061e5e90d7030a63d13396dc6d0522fe517a07a0f9c9455612fcacfce60fba7c6e305728148f3ec345661535d0230f872f224
                  description: Signed transaction data
                id:
                  type: integer
                  default: 1
      responses:
        '200':
          description: The transaction receipt
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
                    nullable: true
                    description: >-
                      The transaction receipt object, returned once the
                      transaction is included in a block

````