Skip to main content
POST
/
0615fdf3c9eaf0681469e61a4308ea09
eth_sendRawTransactionSync
curl --request POST \
  --url https://polygon-mainnet.core.chainstack.com/0615fdf3c9eaf0681469e61a4308ea09 \
  --header 'Content-Type: application/json' \
  --data '
{
  "jsonrpc": "2.0",
  "method": "eth_sendRawTransactionSync",
  "params": [
    "0xf86c808504a817c80082520894ab5db0e98b8ea6b7f9d8ad8e8ed0bc8fba0d1a2f870de0b6b3a764000080821b9f",
    "0x1388"
  ],
  "id": 1
}
'
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "transactionHash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
    "blockHash": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd",
    "blockNumber": "0x12345",
    "gasUsed": "0x5208",
    "status": "0x1"
  }
}

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.

Polygon API method that submits a signed transaction and blocks until the transaction receipt is returned or the timeout expires. This is a synchronous version of 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.
Hex-encoded timeoutPolygon’s Bor client predates EIP-7966, and its timeout parameter is typed as hexutil.Uint64. You must pass the timeout as a hex-encoded value (e.g., "0x1388" for 5000 ms), not as a decimal integer like on Base, Ethereum, or other EIP-7966-conformant implementations. Passing a decimal integer returns invalid argument 1: json: cannot unmarshal non-string into Go value of type hexutil.Uint64.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.

Parameters

  • signedTransactionData — the signed transaction data in hexadecimal format. Includes nonce, gas price, gas limit, recipient address, value, data, and signature.
  • timeout (optional) — maximum wait time in milliseconds, passed as a hex-encoded uint64 string (e.g., "0x1388" for 5000 ms). If omitted, the node uses its configured default.

Response

  • result — the full transaction receipt object once the transaction is included in a block, with the same fields as eth_getTransactionReceipt. If the timeout expires before inclusion, the node returns an error.

eth_sendRawTransactionSync code examples

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: ethers.parseEther("0"),
    chainId: 137,
  };

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

  // Send synchronously — Bor expects a HEX-encoded timeout
  const receipt = await provider.send(
    "eth_sendRawTransactionSync",
    [signedTx, "0x1388"] // 5000 ms in hex
  );
  console.log(`Confirmed in block: ${receipt.blockNumber}`);
  console.log(`Status: ${receipt.status}`);
};

sendTransactionSync();

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 (payments, bots, simulations).
  • 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.

Cross-chain note

Other Chainstack chains expose the same method but with different parameter conventions. Per EIP-7966, the timeout should be a decimal integer; Polygon’s Bor is the exception because the method existed in Bor before the EIP standardized the encoding. See the Ethereum equivalent for the EIP-7966 form.

Body

application/json
jsonrpc
string
default:2.0
required
method
string
default:eth_sendRawTransactionSync
required
id
integer
default:1
required
params
string[]
required
Required array length: 1 - 2 elements

Response

200 - application/json

Successful transaction submission with receipt

jsonrpc
string
Example:

"2.0"

id
integer
Example:

1

result
object
Last modified on May 1, 2026