Solana method
getAccountInfo
Returns an account's full contents, including its data.
How each provider handles it
| Provider | Status | Success | Median |
|---|---|---|---|
| Tatum | Degraded | 93.9% | 26 ms |
| PublicNode | Supported | 100.0% | 26 ms |
| Solana Foundation | Supported | 100.0% | 14 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 hour. 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.
Tatum
success fell to 85.2% from a typical 94.0%
availability · 2026-10-08 09:00Z
What it does
Where `getBalance` returns one number, this returns the whole account: owner program, lamports, rent epoch, executable flag, and the raw data.
The encoding parameter matters. `base64` is compact and universal; `jsonParsed` asks the node to decode known program accounts into readable JSON, which costs the node more and is not supported for every program.
Parameters
pubkeystringrequired- Account address, base-58 encoded.
configObjectoptionalencoding(base58,base64,base64+zstd,jsonParsed),commitment,dataSlice,minContextSlot.Default:encodingdefaults tobase58, which fails outright on accounts larger than 129 bytes
Returns
Object | null under result.value.
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":"getAccountInfo","params":["SysvarC1ock11111111111111111111111111111111",{"encoding":"base64"}]}'As JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "getAccountInfo",
"params": [
"SysvarC1ock11111111111111111111111111111111",
{ "encoding": "base64" }
]
}Response
{
"jsonrpc": "2.0",
"result": {
"context": { "slot": 372145830 },
"value": {
"data": ["ZgAAAAAAAAA...", "base64"],
"executable": false,
"lamports": 1169280,
"owner": "Sysvar1111111111111111111111111111111111111",
"rentEpoch": 18446744073709551615,
"space": 40
}
},
"id": 1
}Things that bite
- The default
base58encoding errors on accounts over 129 bytes. Always passbase64unless you know the account is tiny. rentEpochof 18446744073709551615 is u64 max and means the account is rent-exempt.dataSlicefetches part of a large account, which is the difference between a few hundred bytes and several megabytes.
Why it is measured
It exercises account fetch plus encoding, so it separates providers whose read path is fast from those whose serialisation is.
Called every 120 seconds per endpoint, with jitter so the fleet does not hit a provider in lockstep.
24h window · generated 2026-10-08 18:06:06 UTC · 3 providers