TriportRPC

getSignaturesForAddress

POSThttps://api.triport.io/v1/sol

Returns the signatures of confirmed transactions that include the given address, newest first.

Solanasol_read_rpcfree+ — 20 / 60 / 200 / 600 RPS (free / basic / pro / business)

getSignaturesForAddress returns a list of transaction signatures that reference the given account, ordered from newest to oldest (reverse chronological). It is the primary building block for reconstructing an account's transaction history: page through the signatures here, then fetch the full transactions with getTransaction for each one you care about.

Each entry is a lightweight SignatureInfo record — the signature itself plus the slot, success/failure status, optional memo, block time, and confirmation status. It does not include the transaction payload, so this call stays cheap even on busy accounts.

Results are paginated by signature, not by offset. A single call returns at most limit entries (default and maximum 1000). To walk further back in history, pass the oldest signature you received as before on the next call; to bound a scan to transactions newer than a known point, pass that signature as until.

Parameters

JSON-RPC params is a positional array: [address, config?].

addressstring (base-58)required
The account public key to query, as a base-58 Pubkey. Must match ^[1-9A-HJ-NP-Za-km-z]{32,44}$.
configobjectoptional
Optional configuration object (see below).
limitintegeroptional
Maximum number of signatures to return. Default and maximum 1000.
beforestring (base-58)optional
Start searching backwards from this signature (exclusive). Used for pagination.
untilstring (base-58)optional
Stop searching once this signature is reached (exclusive). Bounds the scan to newer transactions.
commitmentstringoptional
Commitment level: processed, confirmed, or finalized.
minContextSlotintegeroptional
Minimum slot the request must be evaluated at.

Response

Response fields

result is an array of SignatureInfo objects, ordered newest-first.

FieldTypeDescription
signaturestring (base-58)The transaction signature. Pass to getTransaction to fetch the full transaction.
slotintegerThe slot that contains the transaction.
errobject | nullnull if the transaction succeeded; otherwise the transaction error object describing why it failed.
memostring | nullThe memo associated with the transaction, or null if there was none.
blockTimeinteger | nullEstimated production time as a Unix timestamp (seconds), or null if unavailable.
confirmationStatusstringConfirmation level of the transaction: processed, confirmed, or finalized.

Errors

Errors are returned in the standard JSON-RPC error envelope. See the shared errors reference for the full envelope shape and shared codes.

CodeMeaningWhen it happens
-32602Invalid paramsaddress is missing or not a valid base-58 pubkey, limit exceeds 1000, or config is malformed.
-32003Rate limitedMore than your tier's RPS for sol_read_rpc (20 / 60 / 200 / 600). Returned with HTTP 429.
401UnauthorizedMissing or invalid Authorization: Bearer key.

Examples

JavaScript (fetch)

const res = await fetch("https://api.triport.io/v1/sol", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.TRIPORT_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "getSignaturesForAddress",
    params: ["Vote111111111111111111111111111111111111111", { limit: 100 }],
  }),
});


const { result } = await res.json();
for (const sig of result) {
  console.log(`${sig.signature} @ slot ${sig.slot}${sig.err ? " (failed)" : ""}`);
}

TypeScript SDK (@triport/sdk)

import { TriportClient } from "@triport/sdk";


const client = new TriportClient({ apiKey: process.env.TRIPORT_API_KEY });


const signatures = await client.solana.getSignaturesForAddress(
  "Vote111111111111111111111111111111111111111",
  { limit: 100, commitment: "finalized" }
);


for (const { signature, slot, err } of signatures) {
  console.log(`${signature} @ slot ${slot}${err ? " (failed)" : ""}`);
}

Python (triport-sdk)

import os
from triport import TriportClient


client = TriportClient(api_key=os.environ["TRIPORT_API_KEY"])


signatures = client.solana.get_signatures_for_address(
    "Vote111111111111111111111111111111111111111",
    limit=100,
    commitment="finalized",
)


for sig in signatures:
    status = " (failed)" if sig["err"] else ""
    print(f"{sig['signature']} @ slot {sig['slot']}{status}")

Notes

  • Pagination: results never exceed limit (max 1000). To page backwards, take the signature of the last entry returned and pass it as before on the next request. Repeat until you receive fewer than limit entries.
  • Bounded scans: pass a previously-seen signature as until to fetch only transactions newer than that point — useful for polling an account for new activity without re-reading old history.
  • Failed transactions are included: entries with a non-null err represent transactions that were confirmed on-chain but failed during execution. Check err before treating a signature as a successful action.
  • Resolving full transactions: this method returns only signatures and metadata. Pass each signature to getTransaction to retrieve the decoded instructions, balances, and logs.
  • Related methods: getSignatureStatuses to check the confirmation state of specific signatures, and getTransaction to fetch transaction bodies.