sendTransaction
Submits a fully-signed, serialised transaction to the cluster. Returns the transaction signature.
Options
| Option | Default | Description |
|---|---|---|
| encoding | base58 | base58 or base64. Use base64 for large transactions. |
| skipPreflight | false | Skip simulation before submission. Not recommended. |
| preflightCommitment | finalized | Commitment for preflight simulation. |
| maxRetries | node default | Number of times the node retries on network error. |
| minContextSlot | – | Minimum slot to evaluate preflight simulation. |
Raw request
{ "jsonrpc": "2.0", "id": 1, "method": "sendTransaction", "params": [ "<base64-encoded signed transaction>", { "encoding": "base64", "skipPreflight": false, "preflightCommitment": "confirmed", "maxRetries": 5 } ]}Using an SDK
import { Connection, Transaction, sendAndConfirmTransaction } from "@solana/web3.js"; const conn = new Connection("https://rpc.openinfra.sh", "confirmed"); // Build and sign your transaction first...const sig = await sendAndConfirmTransaction(conn, transaction, [payer], { commitment: "confirmed", maxRetries: 5,});console.log("Confirmed:", sig);Confirming after submission
sendTransaction returns a signature immediately — confirmation is asynchronous. Poll getSignatureStatuses or subscribe via WebSocket signatureSubscribe to track finality.
- Transactions expire after ~90 seconds (150 blocks). Re-fetch a fresh blockhash and retry if not confirmed.
- OpenInfra nodes forward to leaders over the private fabric, reducing propagation latency.
- Enable skipPreflight only if you've already simulated and trust the transaction is valid.