# getSignatureStatuses – Solana

{% hint style="success" %}
The getSignatureStatuses RPC Solana method checks the status of a list of transaction signatures (txid).
{% endhint %}

By default, it only searches **the recent status cache**, which includes all active slots plus `MAX_RECENT_BLOCKHASHES` rooted slots. However, enabling the **searchTransactionHistory** parameter allows a deeper search in the node's ledger.

This method is valuable for applications that need to verify whether a block contains a given transaction and determine its confirmation level using Solana’s Core API.

### Supported Networks

This method is available on the following API endpoints:

* Mainnet

### Parameters

#### Required Parameters

* **`array`** (required): An array of transaction signatures, provided as base-58 encoded strings.
  * Maximum: 256 signatures.

#### Optional Parameters

* **`object`** (optional): A configuration object containing:
  * **searchTransactionHistory** (`bool`, optional): If `true`, searches the node's ledger for signatures not found in the recent status cache.

### Result

The response returns an array of RpcResponse objects, each containing:

* `null`: If the transaction is unknown.
* `object`:
  * `slot` (`u64`): The slot in which the transaction was processed.
  * `confirmations` (`usize`|`null`): The number of blocks since the transaction was confirmed.
    * `null` if finalized by the supermajority.
  * `err` (`object`|`null`): If the transaction failed, contains an error object. Otherwise, null.
  * `confirmationStatus` (`string`|`null`): The transaction’s cluster confirmation status.
    * Possible value: `processed`, `confirmed`, `finalized`.
  * DEPRECATED: `status` (`object`):
    * { `"Ok": null` } if the transaction was successful.
    * { `"Err": <ERR>` } if the transaction failed with an error.

### Request Example

#### API Endpoints

```json
https://go.getblock.io/<ACCESS-TOKEN>/
```

#### cURL Example

{% tabs %}
{% tab title="curl" %}

```json
curl --location "https://go.getblock.io/<ACCESS-TOKEN>/" -XPOST \
--header "Content-Type: application/json" \
--data '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getSignatureStatuses",
    "params": [
      [
        "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW"
      ],
      {
        "searchTransactionHistory": true
      }
    ]
}'
```

{% endtab %}
{% endtabs %}

### Response

A successful request returns transaction status details.

#### Example Response

```json
{
  "jsonrpc": "2.0",
  "result": {
    "context": {
      "slot": 82
    },
    "value": [
      {
        "slot": 48,
        "confirmations": null,
        "err": null,
        "status": {
          "Ok": null
        },
        "confirmationStatus": "finalized"
      },
      null
    ]
  },
  "id": 1
}
```

### Error Handling

Common getSignatureStatuses error scenarios:

* Invalid transaction signature: If the provided signature is not a valid txid.
* Network errors: Connectivity issues with the Solana JSON-RPC API endpoints.
* Malformed request: Incorrectly structured JSON requests.

#### Example Error Response

```json
{
  "jsonrpc": "2.0",
  "error": {
    "code": -32602,
    "message": "Invalid transaction signature format"
  },
  "id": 1
}
```

### Use Cases

The Solana **getSignatureStatuses** method is useful for:

* **dApp developers**: Monitoring transaction confirmations and finality;
* **Web3 analytics tools**: Tracking transaction status trends;
* **Validators and node operators**: Checking the status of processed transactions;
* **Blockchain explorers**: Displaying transaction history and confirmations.

### Code getSignatureStatuses Example – Web3 Integration

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

const url = "https://go.getblock.io/<ACCESS-TOKEN>/"; 
const headers = { "Content-Type": "application/json" };

const payload = {
  jsonrpc: "2.0",
  id: 1,
  method: "getSignatureStatuses",
  params: [
    [
      "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW"
    ],
    { searchTransactionHistory: true }
  ]
};

const fetchSignatureStatuses = async () => {
  try {
    const response = await axios.post(url, payload, { headers });

    if (response.status === 200 && response.data.result?.value) {
      const statuses = response.data.result.value;
      statuses.forEach((status, index) => {
        if (status) {
          console.log(`Signature ${index + 1}:`);
          console.log(`  Slot: ${status.slot}`);
          console.log(`  Confirmations: ${status.confirmations}`);
          console.log(`  Status: ${status.confirmationStatus}`);
          console.log(`  Err: ${status.err || "No error"}`);
        } else {
          console.log(`Signature ${index + 1}: Not found`);
        }
      });
    } else {
      console.error("Unexpected response:", response.data);
    }
  } catch (error) {
    console.error("getSignatureStatuses error:", error.response?.data || error.message);
  }
};

fetchSignatureStatuses();

```

{% endtab %}
{% endtabs %}

### Integration with Web3

By integrating Web3 **getSignatureStatuses** into Solana’s Core API, developers can verify transaction statuses in real time, track block confirmations, and ensure efficient request handling. This JSON-RPC method is essential for decentralized applications, validators, and blockchain explorers that require up-to-date transaction insights.


---

# 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.getblock.io/api-reference/solana-sol/getsignaturestatuses-solana.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.
