in-solana by Supanode

getLargestAccounts — Solana RPC Method

getLargestAccounts returns the 20 largest accounts on the network by lamport balance. You can filter results to show only circulating or non-circulating accounts.

Parameters

NameTypeRequiredDescription
commitmentstringNoprocessed, confirmed, or finalized. Default: finalized.
filterstringNocirculating or nonCirculating. If omitted, returns all accounts regardless of status.

Request

curl -X POST https://api.mainnet-beta.solana.com \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getLargestAccounts",
    "params": []
  }'

TypeScript (@solana/kit)

import { createSolanaRpc } from "@solana/kit";

const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
const largest = await rpc.getLargestAccounts().send();

for (const account of largest.value) {
  const sol = Number(account.lamports) / 1_000_000_000;
  console.log(`${account.address}: ${sol.toLocaleString()} SOL`);
}

Response

{
  "jsonrpc": "2.0",
  "result": {
    "context": { "slot": 341200000, "apiVersion": "2.2.4" },
    "value": [
      {
        "address": "mvines9iiHiQTysrwkJjGf2gb9Ex9jXJX8ns3qwf2kN",
        "lamports": 500000000000000000
      },
      {
        "address": "4Rf9mGD7FeYknun5JczX5nGLTfQuS1GRjNVfkEMKE92b",
        "lamports": 250000000000000000
      }
    ]
  },
  "id": 1
}
FieldTypeDescription
addressstringBase-58 encoded public key of the account.
lamportsu64Account balance in lamports.

The array always contains up to 20 entries, sorted by balance descending.

Common errors

  • Invalid filter — the filter value must be exactly circulating or nonCirculating. Any other value returns an error.

Performance

getLargestAccounts scans the entire account index, which can be slow on large clusters. Some RPC providers cache the result. This method may have higher latency (1-5 seconds) compared to simpler queries. Avoid polling frequently — the top accounts change slowly.

FAQ

What is the difference between circulating and non-circulating? Circulating accounts are regular accounts whose SOL is freely transferable. Non-circulating accounts are locked or reserved, such as foundation accounts, grant accounts, or accounts with lockup restrictions.

Why are there only 20 results? The method is designed to return the top 20 by balance. There is no pagination. For broader analysis of account balances, use getProgramAccounts with filters or an indexer.

Does this include token accounts? No. This returns accounts by their SOL (lamport) balance, not SPL token balances. Token accounts appear only if they hold significant SOL for rent exemption.

How often should I call this method? The largest accounts change infrequently. Calling once per hour or less is sufficient for most use cases. The method can be slow and some providers rate-limit it.

Parameters

ParameterTypeRequiredDescriptionDefault
commitmentstringNoCommitment level: processed, confirmed, or finalized.finalized
filterstringNoFilter by circulating or nonCirculating status.—

Updated: