# sendTransaction

## sendTransaction RPC Method

> 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.<br>

````json
{"openapi":"3.0.3","info":{"title":"Solana RPC API - sendTransaction Method","version":"1.0.0"},"tags":[{"name":"Transaction Processing","description":"Methods related to transaction submission and processing. These methods allow\nsubmitting transactions to the Solana network and monitoring their execution status.\n"}],"servers":[{"url":"https://public.rpc.solanavibestation.com"},{"url":"https://basic.rpc.solanavibestation.com"},{"url":"https://ultra.rpc.solanavibestation.com"},{"url":"https://elite.rpc.solanavibestation.com"},{"url":"https://epic.rpc.solanavibestation.com"},{"url":"https://basic.swqos.solanavibestation.com"},{"url":"https://ultra.swqos.solanavibestation.com"},{"url":"https://elite.swqos.solanavibestation.com"}],"security":[{},{"AuthHeader":[]},{"URLParameter":[]}],"components":{"securitySchemes":{"AuthHeader":{"type":"apiKey","in":"header","name":"Authorization","description":"Authorization header for API key authentication.\n\n**Example:**\n```\nAuthorization: your-api-key-here\n```\n"},"URLParameter":{"type":"apiKey","in":"query","name":"api_key","description":"API key passed as a URL parameter for authentication.\n\n**Example:**\n```\nhttps://public.rpc.solanavibestation.com/?api_key=your-api-key-here\n```\n"}},"schemas":{"SendTransactionRequest":{"type":"object","required":["jsonrpc","id","method","params"],"properties":{"jsonrpc":{"type":"string","description":"JSON-RPC protocol version","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"number"}],"description":"Request identifier that will be returned in the response"},"method":{"type":"string","description":"The RPC method name","enum":["sendTransaction"]},"params":{"type":"array","description":"Method parameters:\n\n1. Signed transaction data (base58 or base64 encoded string) - required\n2. Configuration object (optional)\n","minItems":1,"maxItems":2,"items":{"oneOf":[{"type":"string","description":"Fully signed transaction data (base58 or base64 encoded) - REQUIRED PARAMETER"},{"$ref":"#/components/schemas/SendTransactionOptions"}]}}}},"SendTransactionOptions":{"type":"object","description":"Configuration options for the sendTransaction request","properties":{"encoding":{"type":"string","description":"Encoding format used for the transaction data:\n- `base58`: Default encoding format, compact and human-readable - `base64`: Alternative encoding format, more efficient for large transactions\n","enum":["base58","base64"],"default":"base58"},"skipPreflight":{"type":"boolean","description":"When true, skip the preflight transaction checks. Preflight checks simulate the transaction against the current state to catch errors before submission. Skipping these checks can speed up submission but may result in failed transactions that consume fees.\n","default":false},"preflightCommitment":{"type":"string","description":"Commitment level for preflight transaction checks:\n- `processed`: Use the most recent block which has reached 1 confirmation - `confirmed`: Use the most recent block having reached maximum lockout - `finalized`: Use the most recent block confirmed by supermajority of the cluster\n","enum":["processed","confirmed","finalized"],"default":"finalized"},"maxRetries":{"type":"integer","description":"Maximum number of times for the RPC node to retry sending the transaction to the leader. If this parameter is not provided, the RPC node will retry the transaction until it is finalized or the blockhash expires.\n","minimum":0,"maximum":10,"default":5},"minContextSlot":{"type":"integer","description":"Set the minimum slot that the request can be evaluated at. This can be useful for ensuring consistency when making multiple related requests.\n","minimum":0}}},"SendTransactionResponse":{"type":"object","description":"RPC response containing the transaction signature or error information","required":["jsonrpc","id"],"properties":{"jsonrpc":{"type":"string","description":"JSON-RPC protocol version","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"number"}],"description":"Request identifier matching the original request"},"result":{"type":"string","description":"Transaction signature (base58 encoded) that uniquely identifies the submitted transaction. This signature can be used to track the transaction status and retrieve transaction details.\n","pattern":"^[1-9A-HJ-NP-Za-km-z]{87,88}$"},"error":{"$ref":"#/components/schemas/RpcError"}}},"RpcError":{"type":"object","description":"Standard JSON-RPC error object","required":["code","message"],"properties":{"code":{"type":"integer","description":"Numeric error code following JSON-RPC 2.0 specification:\n- `-32700`: Parse error\n- `-32600`: Invalid request  \n- `-32601`: Method not found\n- `-32602`: Invalid params\n- `-32603`: Internal error\n- `-32005`: Too Many Requests\n- `-32003`: Unauthorized\n- `-32003`: Transaction signature verification failure\n"},"message":{"type":"string","description":"Human-readable error message"},"data":{"type":"object","description":"Additional structured error information containing specific transaction failure details such as InsufficientFundsForFee, SignatureFailure, or other transaction-specific errors.\n","additionalProperties":true,"properties":{"err":{"type":"string","description":"Specific error type that caused the transaction to fail"}}}}}}},"paths":{"/":{"post":{"summary":"sendTransaction RPC Method","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","operationId":"sendTransaction","tags":["Transaction Processing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendTransactionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendTransactionResponse"}}}},"401":{"description":"Unauthorized","content":{"text/plain":{"schema":{"type":"string"}}}},"403":{"description":"Forbidden","content":{"text/plain":{"schema":{"type":"string"}}}},"429":{"description":"Too Many Requests","content":{"text/plain":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error","content":{"text/plain":{"schema":{"type":"string"}}}}}}}}}
````
