Solana method
getVoteAccounts
Returns the current and delinquent vote accounts, with their stake and commission.
How each provider handles it
| Provider | Status | Success | Median |
|---|---|---|---|
| Tatum | Degraded | 93.0% | 78 ms |
| Solana Foundation | Supported | 99.9% | 58 ms |
| PublicNode | Supported | 100.0% | 65 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
configObjectoptionalcommitment,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
activatedStakeis 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:45:13 UTC · 3 providers