Skip to content

Solana method

getVoteAccounts

Returns the current and delinquent vote accounts, with their stake and commission.

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 getVoteAccounts on Solana
ProviderStatusSuccessMedian
PublicNodeSupported100.0%65 ms
Solana FoundationSupported99.9%58 ms
TatumDegraded93.0%78 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.

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 204ms from a typical 53ms

    latency · 2026-09-09 00:00Z

Tatum

  • success fell to 70.3% from a typical 95.3%

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

What it does

The validator set as the cluster sees it. Each entry carries the vote account, the node identity behind it, activated stake, commission, and recent epoch credits.

Validators are split into `current` and `delinquent`. Delinquent means the validator has not voted recently enough — it is still staked, but it is not participating.

Parameters

configObjectoptional
commitment, votePubkey, keepUnstakedDelinquents, delinquentSlotDistance.

Returns

Object with current and delinquent arrays.

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":"getVoteAccounts","params":[{"commitment":"finalized"}]}'

As JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getVoteAccounts",
  "params": [{ "commitment": "finalized" }]
}

Response

{
  "jsonrpc": "2.0",
  "result": {
    "current": [
      {
        "votePubkey": "3ZT31jkAGhUaw8jsy4bTknwBMP8i4Eueh52By4zXcsVw",
        "nodePubkey": "B97CCUW3AEZFGy6uUg6zUdnNYvnVq5VG8PUtb2HayTDD",
        "activatedStake": 42583231275960,
        "commission": 8,
        "epochVoteAccount": true,
        "lastVote": 372145829,
        "rootSlot": 372145798
      }
    ],
    "delinquent": []
  },
  "id": 1
}

Things that bite

  • activatedStake is in lamports and routinely exceeds 2^53, so parsing it as a JavaScript number silently loses precision. Use a BigInt.
  • Roughly 300 KB, and disabled on a number of providers.
  • A validator can be delinquent and still hold large stake. The two are independent.

Why it is measured

It is the authoritative source for the Solana validator set indexed on this site, correlated with getClusterNodes on the node identity.

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

30d window · generated 2026-10-08 17:59:02 UTC · 3 providers