Skip to main content

getSignaturesForAddress

Returns signatures for confirmed transactions that include the given address in their accountKeys list. Returns signatures backwards in time from the provided signature or most recent confirmed block

Common use cases
Display Wallet Transaction HistoryFetch paginated transaction signatures for a user's wallet to populate activity feeds, showing recent transactions with timestamps, amounts, and success/failure status. Combine with getTransaction to display detailed information for each signature.
Audit Address ActivityRetrieve complete signature history for compliance monitoring, forensic analysis, or account auditing by paginating through all historical transactions using the before parameter until exhausting the address's transaction log.
Monitor Incoming TransactionsPoll for new signatures periodically (e.g., every 5-10 seconds) to detect incoming payments, token transfers, or program interactions without maintaining persistent WebSocket connections. Query with limit=100 and confirmed commitment for near-real-time monitoring.
Recover Transaction StateAfter application restarts or network interruptions, fetch recent signatures to synchronize local state with on-chain activity, using minContextSlot to avoid processing transactions from earlier than the last known checkpoint.
Filter Transactions by Time RangeUse before and until parameters with blockTime filtering to extract transactions within specific date ranges for reporting, analytics, or historical data export without fetching the entire signature history.

Parameters

address (string, required)

Account address as base-58 encoded string

config (object, optional)

Configuration object containing the following fields:

Fields:

  • commitment (string): The commitment describes how finalized a block is at that point in time. See Configuring State Commitment.
  • minContextSlot (number): The minimum slot that the request can be evaluated at
  • limit (number): Maximum transaction signatures to return (between 1 and 1,000). Default: 1000
  • before (string): Start searching backwards from this transaction signature. If not provided the search starts from the top of the highest max confirmed block.
  • until (string): Search until this transaction signature, if found before limit reached

Request

curl https://solana-mainnet.api.syndica.io/api-key/YOUR_API_KEY \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSignaturesForAddress",
"params": [
"Vote111111111111111111111111111111111111111",
{
"commitment": "finalized",
"limit": 1
}
]
}'
Network Selection

Replace mainnet with devnet in the URL to query devnet instead.

Response

{
"jsonrpc": "2.0",
"result": [
{
"signature": "5h6xBEauJ3PK6SWCZ1PGjBvj8vDdWG3KpwATGy1ARAXFSDwt8GFXM7W5Ncn16wmqokgpiKRLuS83KUxyZyv2sUYv",
"slot": 114,
"err": null,
"memo": null,
"blockTime": null,
"confirmationStatus": "finalized"
}
],
"id": 1
}

Response Fields

Return value: array

An array of transaction signature information objects, ordered from newest to oldest transaction, containing:

FAQ and Troubleshooting

Why does getSignaturesForAddress return empty results for an active address?

RPC providers have varying transaction history retention policies with no standard guarantee. Some retain only recent transactions (e.g., last 90 days). Use archival RPC endpoints or run your own node for complete history.

How do I fetch more than 1000 transaction signatures?

Use pagination with the before parameter. After each call, pass the last signature from the results as before in the next call until fewer than 1000 results return, indicating you've reached the end of history.

Does getSignaturesForAddress include SPL token transfers?

No. It returns signatures for transactions where the specified address is a signer or writable account, but does not automatically include token account activity. To track token transfers, query the token account address (not the wallet address) or parse transactions for token program interactions.

What's the difference between before and until parameters?

before starts searching backwards from a specific signature (exclusive), while until stops searching when it reaches a signature (exclusive). Use before for forward pagination (newest first) and until to fetch only signatures newer than a known point.

Why is blockTime null for some signatures?

blockTime is an estimated production time and may be null for very recent transactions (still propagating) or transactions from older slots where timing data wasn't recorded. Use slot number as a fallback for ordering when blockTime is unavailable.

getSignatureStatuses
Verify confirmation status and commitment level of signatures returned by getSignaturesForAddress. Use to filter confirmed/finalized transactions or check if specific signatures have reached target commitment.

getTransaction
Fetch complete transaction details including accounts, logs, and metadata for individual signatures. Developers typically call getSignaturesForAddress first to obtain signature list, then getTransaction for detailed information on relevant transactions.

signatureSubscribe (WebSocket)
WebSocket subscription for real-time signature updates. Use for live monitoring of address activity instead of polling getSignaturesForAddress repeatedly; fetch historical signatures with getSignaturesForAddress on initial load, then maintain with signatureSubscribe.

sendTransaction
Submit signed transactions to the network. Creates transaction signatures that will later appear in getSignaturesForAddress results for relevant addresses. Use getSignaturesForAddress after sending to monitor transaction propagation and confirmation.

getAccountInfo
Check account existence and current state before querying signatures. Addresses that don't exist return empty arrays from getSignaturesForAddress; verify account exists with getAccountInfo to distinguish between no-transaction-history and nonexistent-account cases.

External Resources