Request
Fully signed transaction in
FULLY_SIGNED state.Optional. Controls the confirmation target used when monitoring submission. Defaults to
COMMITMENT_LEVEL_CONFIRMED.Response
Transaction signature. Use this value with MonitorTransaction to track on-chain status. Present even for some failure cases.
Whether the transaction was accepted for broadcast. See the SubmissionResult table below.
Human-readable error description if submission failed. Empty on success.
Structured error for programmatic handling. Present when submission failed or the result is indeterminate. See Error Reference for
TransactionErrorCode values.SubmissionResult Values
| Result | Value | Meaning |
|---|---|---|
SUBMISSION_RESULT_UNSPECIFIED | 0 | Not set. |
SUBMISSION_RESULT_SUBMITTED | 1 | Transaction broadcast to the network. Not a confirmation. Use MonitorTransaction to track. |
SUBMISSION_RESULT_FAILED_VALIDATION | 2 | Pre-submission validation failed. The transaction was not sent. |
SUBMISSION_RESULT_FAILED_NETWORK_ERROR | 3 | Network or RPC error prevented submission. The transaction was likely not sent. |
SUBMISSION_RESULT_FAILED_INSUFFICIENT_FUNDS | 4 | Fee payer has insufficient SOL. The transaction was not sent. |
SUBMISSION_RESULT_FAILED_INVALID_SIGNATURE | 5 | Signature validation failed. The transaction was not sent. |
SUBMISSION_RESULT_INDETERMINATE | 6 | Unknown state. Check structured_error.certainty and structured_error.blockhash_expiry_slot to determine the recovery strategy. |
For
SUBMISSION_RESULT_INDETERMINATE: wait until after blockhash_expiry_slot, then query the blockchain. If the transaction is not found on-chain by then, it is safe to recompile and resubmit. See Error Reference for TransactionSubmissionCertainty handling guidance.