TheDocumentation Index
Fetch the complete documentation index at: https://helius-auto-translations.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
getSignatureStatuses RPC method allows you to retrieve the processing and confirmation status of a list of transaction signatures. This is useful for determining if transactions have been processed, confirmed, or finalized by the network.
Unless the searchTransactionHistory option is enabled, this method primarily queries a recent status cache on the RPC node. For older transactions, enabling searchTransactionHistory is crucial.
Common Use Cases
- Confirming Transaction Finality: Verifying if a submitted transaction has reached a desired level of confirmation (e.g.,
confirmedorfinalized). - Batch Status Lookup: Efficiently checking the status of multiple transactions at once, for example, after a batch send.
- Updating UI based on Transaction State: Reflecting the real-time status of a transaction to the user.
- Error Checking: Identifying if any of a list of transactions failed and why.
Request Parameters
signatures(arrayofstring): (Required) An array of base-58 encoded transaction signatures. You can query up to 256 signatures in a single request.options(object, optional): An optional configuration object with the following field:searchTransactionHistory(boolean, optional): Iftrue, the RPC node will search its full transaction history for the signatures. Iffalse(the default), it only searches a recent status cache. For old or potentially dropped transactions, set this totrue.
Response Structure
Theresult field of the JSON-RPC response contains an object with two fields:
context(object): An object containing:slot(u64): The slot in which the RPC node processed this request.
value(arrayofobject|null): An array of status objects, corresponding to the order of signatures in the request. Each element can be:- An object with the following fields if the signature is found:
slot(u64): The slot in which the transaction was processed.confirmations(number|null): The number of blocks that have been confirmed since the transaction was processed.nullif the transaction is finalized (as finality implies it won’t be rolled back, so a specific confirmation count isn’t as relevant).err(object|null): An error object if the transaction failed (e.g.,{"InstructionError":[0,{"Custom":1}]}), ornullif it succeeded.status(object): An object indicating the transaction’s execution status. Usually{"Ok":null}for successful transactions or an object detailing the error for failed ones.confirmationStatus(string|null): The cluster’s confirmation status for the transaction (e.g.,processed,confirmed,finalized). Can benullif status is not available in the cache andsearchTransactionHistoryis false.
null: If a signature is not found in the status cache andsearchTransactionHistoryisfalse(or if it truly doesn’t exist even with history search).
- An object with the following fields if the signature is found:
Examples
1. Get Status for a List of Signatures (Recent Cache)
This example fetches the status for two signatures, relying on the node’s recent cache.2. Get Status with Transaction History Search
This example fetches the status for signatures and explicitly requests the node to search its transaction history.Developer Tips
searchTransactionHistory: Crucial for reliability. Iffalse(default), the method only checks a limited recent cache. If a transaction is old or was potentially dropped and not in this cache, it will returnnullfor that signature’s status. Always set totrueif you need to confirm the status of transactions that might not be very recent.- Signature Limit: You can query a maximum of 256 signatures per call.
nullStatus: Anullin thevaluearray for a given signature means its status was not found. This could be because it’s not in the recent cache (ifsearchTransactionHistoryis false), the transaction never landed, or it’s too old for the node’s history even withsearchTransactionHistory: true.confirmations: null: This usually means the transaction has reachedfinalizedstatus. At this point, the concept of a specific number of confirmations is less relevant because the block is considered irreversible.- Error Handling: Check the
errfield within each status object to see if a transaction failed. Thestatusfield will also provide details (e.g.,{"Err":...}).
getSignatureStatuses is an efficient way to monitor the state of multiple Solana transactions. Remember to use searchTransactionHistory: true for robust status checking.