> For the complete documentation index, see [llms.txt](https://docs.triton.one/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.triton.one/solana/rpc-methods/historical-data/gettransactionsforaddress.md).

# getTransactionsForAddress

Returns an address's transaction signatures or full transactions in one call, with filters, sort order and pagination. Not a standard Solana method.

`getTransactionsForAddress` is designed for workloads that would otherwise require calling `getSignaturesForAddress` followed by `getTransaction` for every returned signature.

That standard two-step pattern works, but it creates an N+1 request flow: one request to discover signatures, then one additional request per transaction to fetch details. It also pushes filtering, pagination management, token-account expansion, and result assembly onto the client.

This method combines those steps into a single address-history query. It can return either signature-level results or full transaction payloads, apply filters server-side, preserve a single pagination cursor, and optionally include token-account activity owned by the requested address.

`getTransactionsForAddress` is a custom RPC method. It is not part of the standard Solana JSON-RPC API, but it follows the same JSON-RPC request and response envelope style as standard Solana RPC methods.

## Request

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

```bash
curl "https://<your-endpoint>.mainnet.rpcpool.com/<your-token>" -s -X POST \
  -H "Content-Type: application/json" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactionsForAddress",
  "params": [
    "AddressBase58",
    {
      "transactionDetails": "signatures",
      "sortOrder": "desc",
      "limit": 100,
      "paginationToken": null,
      "filters": {
        "slot": { "gte": 250000000 },
        "status": "any",
        "tokenAccounts": "none"
      }
    }
  ]
}'
```

{% endtab %}
{% endtabs %}

## Parameters

| Parameter | Type   | Required | Description                              |
| --------- | ------ | -------- | ---------------------------------------- |
| `address` | string | Yes      | Base58 Solana account address to search. |
| `options` | object | No       | Query options and filters.               |

## Options

| Option                           | Type                                   | Default                           | Description                                                                                                                                                                                                                                                 |
| -------------------------------- | -------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `transactionDetails`             | signatures \| full                     | signatures                        | Controls response detail.                                                                                                                                                                                                                                   |
| `sortOrder`                      | asc \| desc                            | desc                              | Sort by slot and transaction position.                                                                                                                                                                                                                      |
| `limit`                          | number                                 | 1000 for signatures, 100 for full | Maximum number of results. Larger values are capped at the default; `0` returns error `-32602`.                                                                                                                                                             |
| `paginationToken`                | string                                 | null                              | Token returned from a previous response.                                                                                                                                                                                                                    |
| `commitment`                     | processed \| confirmed \| finalized    | finalized                         | Commitment level.                                                                                                                                                                                                                                           |
| `minContextSlot`                 | number                                 | none                              | Fails if the node has not reached this slot.                                                                                                                                                                                                                |
| `encoding`                       | json \| jsonParsed \| base58 \| base64 | json                              | Used when transactionDetails is full.                                                                                                                                                                                                                       |
| `maxSupportedTransactionVersion` | number                                 | none                              | Used when transactionDetails is full. Set `1` to accept every version (legacy, 0 and 1). If a page holds a newer version than this value, the request fails with error `-32015`. `base58` encoding with a value of `1` or higher fails with error `-32602`. |
| `filters`                        | object                                 | none                              | Optional filters.                                                                                                                                                                                                                                           |

## Filters

| Filter          | Type                          | Description                                                          |
| --------------- | ----------------------------- | -------------------------------------------------------------------- |
| `slot`          | comparison object             | Filter by slot. Supports gte, gt, lte, lt.                           |
| `blockTime`     | comparison object             | Filter by block time. Supports gte, gt, lte, lt, eq.                 |
| `signature`     | comparison object             | Filter by transaction signature position. Supports gte, gt, lte, lt. |
| `status`        | any \| succeeded \| failed    | Filter by transaction status.                                        |
| `tokenAccounts` | none \| balanceChanged \| all | Include token-owner activity for the address.                        |

Comparison object example:

```json
{
  "gte": 250000000,
  "lt": 260000000
}
```

`beforeSlot` and `untilSlot` are accepted as options too, as aliases for `filters.slot.lt` and `filters.slot.gt`. An alias can't be combined with a same-side slot filter (`lt`/`lte` for `beforeSlot`, `gt`/`gte` for `untilSlot`).

## Token account filtering

`tokenAccounts` controls whether token-account activity owned by the requested address is included.

| Value            | Behavior                                                                  |
| ---------------- | ------------------------------------------------------------------------- |
| `none`           | Only transactions where the address appears directly.                     |
| `all`            | Also include transactions involving token accounts owned by the address.  |
| `balanceChanged` | Include owned token-account transactions only when token balance changed. |

Token-owner activity is derived from transaction pre/post token balance metadata.

## Response

{% tabs %}
{% tab title="Signatures" %}
When `transactionDetails` is `signatures`, each result contains transaction metadata.

```json
{
  "jsonrpc": "2.0",
  "result": {
    "data": [
      {
        "signature": "TransactionSignatureBase58",
        "slot": 250000001,
        "transactionIndex": 12,
        "err": null,
        "memo": null,
        "blockTime": 1700000000,
        "confirmationStatus": "finalized"
      }
    ],
    "paginationToken": "XHLKq2uNiGAJs3YhjnmnwT7LuJoTkGDqf1k4WJsnUd4A6e9bfB26vHr4dKLfMqwZuPmuXDHih4RaojCSt61os33"
  },
  "id": 1
}
```

{% endtab %}

{% tab title="Full Transactions" %}
When `transactionDetails` is `full`, each result contains the encoded transaction and its metadata, plus its `version` when you set `maxSupportedTransactionVersion`. The example is trimmed.

```json
{
  "jsonrpc": "2.0",
  "result": {
    "data": [
      {
        "slot": 250000001,
        "transactionIndex": 12,
        "blockTime": 1700000000,
        "transaction": {
          "signatures": ["5wHu1qwD4kLpXnR7e8oP..."],
          "message": { "recentBlockhash": "..." }
        },
        "meta": { "err": null, "fee": 5000 },
        "version": 0
      }
    ],
    "paginationToken": "250000001:12"
  },
  "id": 1
}
```

{% endtab %}
{% endtabs %}

## Pagination

`paginationToken` is an opaque cursor that marks where the page ended. It's currently either a signature or a `slot:position` string (for example `250000001:12`), and the form can change, so pass it back unchanged in the next request to continue scanning. It's `null` when the page is empty.

```json
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "getTransactionsForAddress",
  "params": [
    "AddressBase58",
    {
      "limit": 100,
      "paginationToken": "XHLKq2uNiGAJs3YhjnmnwT7LuJoTkGDqf1k4WJsnUd4A6e9bfB26vHr4dKLfMqwZuPmuXDHih4RaojCSt61os33"
    }
  ]
}
```

## Example: successful transactions only

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactionsForAddress",
  "params": [
    "AddressBase58",
    {
      "filters": {
        "status": "succeeded"
      }
    }
  ]
}
```

## Example: token balance changes

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactionsForAddress",
  "params": [
    "OwnerAddressBase58",
    {
      "filters": {
        "tokenAccounts": "balanceChanged"
      }
    }
  ]
}
```

## Example: slot range

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactionsForAddress",
  "params": [
    "AddressBase58",
    {
      "filters": {
        "slot": {
          "gte": 250000000,
          "lt": 251000000
        }
      }
    }
  ]
}
```

***

<i class="fa-life-ring">:life-ring:</i> Contact support by clicking the chat icon in your [customer dashboard](https://customers.triton.one)\ <i class="fa-briefcase">:briefcase:</i> Sales questions? [Contact us](https://triton.one/contact)\ <i class="fa-sparkles">:sparkles:</i> AI agent? Read [llms.txt](https://docs.triton.one/llms.txt)\ <i class="fa-rss">:rss:</i> Follow updates: [Blog](https://blog.triton.one) · [X](https://x.com/triton_one) · [YouTube](https://www.youtube.com/@triton_one_ltd) · [Telegram](https://t.me/tritonone) · [GitHub](https://github.com/rpcpool)
