in-solana by Supanode

getSignaturesForAddress — Solana RPC Method

getSignaturesForAddress returns transaction signatures involving a given address, from newest to oldest. This is the primary method for building a transaction history for any Solana account.

Parameters

NameTypeRequiredDescription
addressstringYesBase-58 encoded account address.
commitmentstringNoconfirmed or finalized. processed is not supported. Default: finalized.
limitnumberNoMax signatures to return, 1 to 1000. Default: 1000.
beforestringNoStart searching backwards from this transaction signature (exclusive). For pagination.
untilstringNoStop searching when this signature is reached (exclusive).
minContextSlotnumberNoMinimum slot at which the request can be evaluated.

Request

curl -X POST https://api.mainnet-beta.solana.com \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getSignaturesForAddress",
    "params": [
      "Vote111111111111111111111111111111111111111",
      {"limit": 3}
    ]
  }'

TypeScript (@solana/kit)

import { createSolanaRpc, address } from "@solana/kit";

const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
const signatures = await rpc
  .getSignaturesForAddress(
    address("Vote111111111111111111111111111111111111111"),
    { limit: 10 }
  )
  .send();

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

Response

{
  "jsonrpc": "2.0",
  "result": [
    {
      "signature": "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRn...",
      "slot": 341199500,
      "err": null,
      "memo": null,
      "blockTime": 1729000000,
      "confirmationStatus": "finalized"
    }
  ],
  "id": 1
}
FieldTypeDescription
signaturestringBase-58 encoded transaction signature.
slotu64The slot the transaction was processed in.
errobject or nullError if the transaction failed, null if successful.
memostring or nullMemo associated with the transaction, if any.
blockTimei64 or nullEstimated Unix timestamp of the block.
confirmationStatusstringprocessed, confirmed, or finalized.

Results are ordered from newest to oldest.

Pagination

To page through results, take the last signature in the response and pass it as before in the next call:

const page1 = await rpc.getSignaturesForAddress(addr, { limit: 100 }).send();
const lastSig = page1[page1.length - 1].signature;
const page2 = await rpc.getSignaturesForAddress(addr, { limit: 100, before: lastSig }).send();

Common errors

  • processed not supported — use confirmed or finalized.
  • History too old — non-archival nodes only keep recent transaction history. Old signatures are not available.

Performance

The method scans the node’s transaction index for the given address. Active addresses with millions of transactions may produce slower responses. Use limit to control page size and before/until for efficient pagination.

FAQ

How far back does the transaction history go? On non-archival nodes, typically the last 2-4 days. Archival nodes may retain the full history. The availability depends on the RPC provider.

Does this return failed transactions? Yes. Failed transactions have a non-null err field. They still consumed the base fee and appear in the history.

Can I search by time range? Not directly. Use before and until with transaction signatures to define a range. You can find the signature closest to a timestamp by using block data.

What is the memo field? If the transaction included a Memo program instruction, the memo text appears here. Otherwise it is null.

How do I get the full transaction data? getSignaturesForAddress returns only metadata. To get the full transaction instructions and data, pass the signature to getTransaction.

Parameters

ParameterTypeRequiredDescriptionDefault
addressstringYesBase-58 encoded account address.—
commitmentstringNoconfirmed or finalized. processed is not supported.finalized
limitnumberNoMaximum number of signatures to return (1-1000).1000
beforestringNoStart searching backwards from this signature (exclusive).—
untilstringNoSearch until this signature is found (exclusive).—
minContextSlotnumberNoMinimum slot at which the request can be evaluated.—

Updated: