getSignatureStatuses
Returns the current status for each supplied transaction signature. Each signature must be a txid, the first signature of a transaction.
Request
Send a JSON-RPC 2.0 POST request with method: "getSignatureStatuses". The params array takes a list of base-58 encoded transaction signatures and an optional configuration object.
curl · JSON-RPCjson
{ "jsonrpc": "2.0", "id": 1, "method": "getSignatureStatuses", "params": [ [ "4cdd1oX7cfVALfr26tP52BZ6cSzrgnNGtYD7BFhm6FFeZV5sPTnRvg6NRn8yC6DbEikXcrNChBM5vVJnTgKhGhVu" ], { "searchTransactionHistory": true } ]}@solana/kit
kit.tsts
import { createSolanaRpc, type Signature } from "@solana/kit"; const rpc_url = "https://rpc.openinfra.sh";const rpc = createSolanaRpc(rpc_url); let signatures = [ "4cdd1oX7cfVALfr26tP52BZ6cSzrgnNGtYD7BFhm6FFeZV5sPTnRvg6NRn8yC6DbEikXcrNChBM5vVJnTgKhGhVu" as unknown as Signature]; let config = { searchTransactionHistory: true}; let signatureStatus = await rpc.getSignatureStatuses(signatures, config).send(); console.log(signatureStatus);@solana/web3.js
web3.tsts
import { Connection, type SignatureStatusConfig} from "@solana/web3.js"; const connection = new Connection("https://rpc.openinfra.sh", "confirmed"); let signatures = [ "4cdd1oX7cfVALfr26tP52BZ6cSzrgnNGtYD7BFhm6FFeZV5sPTnRvg6NRn8yC6DbEikXcrNChBM5vVJnTgKhGhVu"]; let config: SignatureStatusConfig = { searchTransactionHistory: true}; let signatureStatus = await connection.getSignatureStatuses(signatures, config);console.log(signatureStatus);Rust
main.rsrs
use anyhow::Result;use solana_client::nonblocking::rpc_client::RpcClient;use solana_commitment_config::CommitmentConfig;use solana_sdk::signature::Signature;use std::str::FromStr; #[tokio::main]async fn main() -> Result<()> { let client = RpcClient::new_with_commitment( String::from("https://rpc.openinfra.sh"), CommitmentConfig::confirmed(), ); let signatures_str = [ "4cdd1oX7cfVALfr26tP52BZ6cSzrgnNGtYD7BFhm6FFeZV5sPTnRvg6NRn8yC6DbEikXcrNChBM5vVJnTgKhGhVu", ]; let signatures = signatures_str.map(|sig| Signature::from_str(sig).unwrap()); let signature_status = client .get_signature_statuses_with_history(&signatures) .await?; println!("{:#?}", signature_status); Ok(())}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| signatures | array | Yes | An array of transaction signatures to confirm, as base-58 encoded strings (up to a maximum of 256). |
| config | object | No | Optional configuration object. See fields below. |
| config.searchTransactionHistory | bool | No | Default: false. If true, a Solana node will search its ledger cache for any signatures not found in the recent status cache. |
Response
response.jsonjson
{ "jsonrpc": "2.0", "result": { "context": { "apiVersion": "3.1.8", "slot": 82 }, "value": [ { "slot": 48, "confirmations": null, "err": null, "status": { "Ok": null }, "confirmationStatus": "finalized" }, null ] }, "id": 1}The result is an RpcResponse object containing a context field and a value array. Each element in the array is either null or a transaction-status object.
context
| Field | Type | Description |
|---|---|---|
| slot | u64 | Slot at which the node evaluated this request. |
| apiVersion | string | RPC API version reported by the node. This field may be omitted by older nodes. |
value — transaction-status object
| Field | Type | Description |
|---|---|---|
| slot | u64 | Slot in which the transaction was processed. |
| confirmations | usize | null | Number of blocks since confirmation. null means the transaction is rooted and finalized by a supermajority of stake. |
| err | object | string | null | Error if the transaction failed. null if the transaction succeeded. When returned as an object it is a transaction error enum payload — see the error variant table below. |
| status | object | Deprecated legacy status object that mirrors err. See deprecated fields below. |
| confirmationStatus | string | null | Cluster confirmation status. When present the value is processed, confirmed, or finalized. |
err object — variant fields
| Field | Type | Description |
|---|---|---|
| <variantName> | array | object | string | null | Transaction error variant payload. Most variants serialize as strings. InstructionError serializes as [instructionIndex, instructionError]. |
status fields (deprecated)
| Field | Type | Description |
|---|---|---|
| Ok | null | Transaction succeeded. |
| Err | object | string | Transaction failed. Payload uses the same serialization as err. |