Skip to content

Solana method

getSignaturesForAddress

Lists recent transaction signatures involving an address, newest first.

expensiveExpensive: scans a range or a large account set. Frequently restricted.Primary specification (opens in a new tab)

How each provider handles it

3 providers

Provider support for getSignaturesForAddress on Solana
ProviderStatusSuccessMedian
TatumNot measured0.0%—
Solana FoundationSupported99.9%21 ms
PublicNodeSupported99.9%28 ms

Success excludes calls the provider does not implement — an optional method a provider declines to offer is a capability fact, not a failure, and is never scored as one.

Over time

Median latency per day. Gaps are periods with no measurement, drawn as gaps rather than joined across — a line through missing data invents a measurement that was never taken.

Logarithmic scale — each gridline is ten times the one below it. Click a provider in the legend to hide it. 1 provider is not plotted: they returned no successful response in this window, so they have no latency.

When it degraded

A degradation is a bucket where a provider fell away from ITS OWN median for this method over the window, not from the cohort's. A provider that is consistently slower than its peers is not degraded — it is slower, which the ranking already says. Buckets with fewer than 20 samples are skipped, because a claim about a provider cannot rest on a handful of calls, and adjacent bad buckets are merged so one outage reads as one incident.

Solana Foundation

  • median rose to 47ms from a typical 17ms

    latency · 2026-09-09 00:00Z → 2026-09-10 00:00Z

  • median rose to 44ms from a typical 17ms

    latency · 2026-09-13 00:00Z

What it does

The backbone of every account history view. It returns signatures in reverse chronological order, with `before` and `until` cursors for paging.

It requires the node to maintain a secondary index by address, which not every node does. Providers that do not run the index answer with an error rather than an empty list.

Parameters

addressstringrequired
Account address, base-58.
configObjectoptional
limit (1–1000), before, until, commitment, minContextSlot.Default: limit defaults to 1000

Returns

Array of objects with signature, slot, err, memo, blockTime.

Try it

Runnable as written, against a keyless public endpoint. Nothing here needs an API key.

Request

curl -s https://api.mainnet-beta.solana.com \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"getSignaturesForAddress","params":["Vote111111111111111111111111111111111111111",{"limit":10}]}'

As JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getSignaturesForAddress",
  "params": [
    "Vote111111111111111111111111111111111111111",
    { "limit": 10 }
  ]
}

Response

{
  "jsonrpc": "2.0",
  "result": [
    {
      "signature": "5Nx8kQ2vRt7mYw3pL9dF...",
      "slot": 372145830,
      "err": null,
      "memo": null,
      "blockTime": 1755168000
    }
  ],
  "id": 1
}

Things that bite

  • The default limit of 1000 makes an unqualified call unexpectedly expensive. Always pass a limit.
  • How far back the index reaches is a provider decision, not a protocol one, and it varies from days to the full chain.

Why it is measured

It is the clearest test of whether a provider maintains the address index at all, which is a capability difference rather than a performance one.

Called every 600 seconds per endpoint, with jitter so the fleet does not hit a provider in lockstep.

30d window · generated 2026-10-08 18:19:03 UTC · 3 providers