Send Transactions
Use three steps for reliable submission. Simulate. Send. Confirm.
1. Simulate
Simulation catches account errors and compute budget problems before broadcast.
json
{
"jsonrpc": "2.0",
"id": "simulate",
"method": "simulateTransaction",
"params": [
"BASE64_TRANSACTION",
{
"encoding": "base64",
"commitment": "confirmed",
"replaceRecentBlockhash": true
}
]
}Check these result fields:
errlogsunitsConsumedreplacementBlockhash
2. Send
bash
curl https://api.mainnet-beta.solana.com \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"jsonrpc":"2.0",
"id":"send",
"method":"sendTransaction",
"params":[
"BASE64_TRANSACTION",
{
"encoding":"base64",
"skipPreflight":false,
"preflightCommitment":"confirmed",
"maxRetries":3
}
]
}'The result is the first transaction signature from the signed message.
3. Confirm
Poll getSignatureStatuses or subscribe with signatureSubscribe.
json
{
"jsonrpc": "2.0",
"id": "status",
"method": "getSignatureStatuses",
"params": [
["TRANSACTION_SIGNATURE"],
{
"searchTransactionHistory": true
}
]
}Failure rules
- Rebuild after the recent blockhash expires.
- Stop on a program error.
- Keep the same signature for network retries.
- Record simulation logs with the failed signature.
- Pick
confirmedfor user feedback andfinalizedfor settlement records.