# sendTransaction

## sendTransaction — Submit a signed transaction

> Submits a signed transaction to the cluster for processing and returns the transaction signature if successful. This is the primary method for executing transactions on the Solana network. The transaction must be fully signed and serialized before submission. The method provides various options for controlling transaction processing behavior, including preflight checks, retry logic, and encoding formats. Transactions that fail preflight checks or network validation will return detailed error information.\
> \*\*Parameters\*\*\
> \
> 0\. \`transaction\` (required) — Fully-signed transaction encoded per the chosen \`encoding\` (base-58 by default, base-64 recommended).\
> 1\. \`config\` (optional) — Optional configuration object. Every field is optional; omit the entire object to use defaults.<br>

```json
{"openapi":"3.0.3","info":{"title":"Solana RPC: sendTransaction","version":"1.0.0"},"tags":[{"name":"Transactions","description":"Solana RPC transactions method."}],"servers":[{"url":"https://public.rpc.solanavibestation.com","description":"Public endpoint (rate-limited, no auth)"},{"url":"https://lite.rpc.solanavibestation.com","description":"Lite tier"},{"url":"https://basic.rpc.solanavibestation.com","description":"Basic tier"},{"url":"https://ultra.rpc.solanavibestation.com","description":"Ultra tier"},{"url":"https://elite.rpc.solanavibestation.com","description":"Elite tier"},{"url":"https://epic.rpc.solanavibestation.com","description":"Epic tier"},{"url":"https://basic.swqos.solanavibestation.com","description":"Basic tier with Stake-Weighted QoS"},{"url":"https://ultra.swqos.solanavibestation.com","description":"Ultra tier with Stake-Weighted QoS"},{"url":"https://elite.swqos.solanavibestation.com","description":"Elite tier with Stake-Weighted QoS"}],"security":[{},{"AuthHeader":[]},{"URLParameter":[]}],"components":{"securitySchemes":{"AuthHeader":{"type":"apiKey","in":"header","name":"Authorization","description":"Pass `Authorization: <api-key>` on each request."},"URLParameter":{"type":"apiKey","in":"query","name":"api_key","description":"Pass `?api_key=<api-key>` on the URL."}},"schemas":{"Commitment":{"type":"string","enum":["processed","confirmed","finalized"],"default":"finalized","description":"How finalized a block is at query time:\n- `processed`: most recent block, may be skipped\n- `confirmed`: block confirmed by supermajority of cluster\n- `finalized`: block finalized by the cluster (>2/3 stake)"},"Encoding":{"type":"string","enum":["json","jsonParsed","base58","base64","base64+zstd"],"description":"Encoding for transaction or account data."},"JsonRpcEnvelope":{"type":"object","required":["jsonrpc","id"],"description":"Base envelope of every JSON-RPC 2.0 response.","properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"integer"}],"description":"Echoed request id."}}},"JsonRpcErrorResponse":{"type":"object","required":["jsonrpc","id","error"],"description":"JSON-RPC 2.0 error response.","properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"error":{"$ref":"#/components/schemas/JsonRpcError"}}},"JsonRpcError":{"type":"object","required":["code","message"],"description":"Structured JSON-RPC error.","properties":{"code":{"type":"integer","description":"Numeric error code per JSON-RPC 2.0 spec. Common values:\n- `-32700` Parse error\n- `-32600` Invalid Request\n- `-32601` Method not found\n- `-32602` Invalid params\n- `-32603` Internal error\n- `-32003` Unauthorized\n- `-32005` Too Many Requests\n- `-32015` Transaction version not supported\n"},"message":{"type":"string"},"data":{"type":"object","additionalProperties":true}}}},"responses":{"UnauthorizedError":{"description":"Authentication required or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcErrorResponse"}}}},"ForbiddenError":{"description":"Insufficient permissions for the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcErrorResponse"}}}},"TooManyRequestsError":{"description":"Rate limit exceeded for this tier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcErrorResponse"}}}},"InternalServerError":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcErrorResponse"}}}}}},"paths":{"/":{"post":{"operationId":"sendTransaction","summary":"sendTransaction — Submit a signed transaction","tags":["Transactions"],"description":"Submits a signed transaction to the cluster for processing and returns the transaction signature if successful. This is the primary method for executing transactions on the Solana network. The transaction must be fully signed and serialized before submission. The method provides various options for controlling transaction processing behavior, including preflight checks, retry logic, and encoding formats. Transactions that fail preflight checks or network validation will return detailed error information.\n**Parameters**\n\n0. `transaction` (required) — Fully-signed transaction encoded per the chosen `encoding` (base-58 by default, base-64 recommended).\n1. `config` (optional) — Optional configuration object. Every field is optional; omit the entire object to use defaults.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","id","method","params"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"description":"JSON-RPC protocol version."},"id":{"oneOf":[{"type":"string"},{"type":"integer"}],"description":"Request identifier echoed back in the response."},"method":{"type":"string","enum":["sendTransaction"],"description":"Must be `sendTransaction`."},"params":{"type":"array","description":"Positional parameters. Each item below corresponds to one position in the array, in order.","minItems":1,"maxItems":2,"items":{"anyOf":[{"title":"transaction","type":"string","description":"Fully-signed encoded transaction."},{"title":"config (optional)","type":"object","description":"Optional configuration object. Every field is optional; omit the entire object to use defaults.","properties":{"commitment":{"$ref":"#/components/schemas/Commitment"},"minContextSlot":{"type":"integer","format":"int64","description":"Minimum slot at which the request can be evaluated. The RPC node will reject the request with a `MinContextSlotNotReached` error if its current root is below this value. Use this for read-after-write consistency in multi-step workflows."},"skipPreflight":{"type":"boolean","description":"If true, skip the preflight transaction simulation that verifies signature, blockhash, and account state before submission. Default false.","default":false},"preflightCommitment":{"$ref":"#/components/schemas/Commitment"},"encoding":{"$ref":"#/components/schemas/Encoding"},"maxRetries":{"type":"integer","format":"int64","description":"Maximum number of retries when forwarding to the leader. Default unlimited (until blockhash expires)."}}}]}}}}}}},"responses":{"200":{"description":"Successful `sendTransaction` response.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/JsonRpcEnvelope"},{"type":"object","required":["result"],"properties":{"result":{"type":"string","description":"Transaction signature, base-58."}}}]}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"429":{"$ref":"#/components/responses/TooManyRequestsError"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.solanavibestation.com/developers/solana-rpc/http-methods/sendtransaction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
