I'm trying to get a full list of all funded Solana addresses. I have a synced validator node and tried running

solana-ledger-tool accounts -l ledger --no-account-data

I do get a list of addresses, but inspecting the list with random funded SOL addresses I took from explorers, it looks like the list is not complete (these are addresses that were funded before I ran the solana-ledger-tool).

Two basic questions please:

  1. Is it possible to get a complete list of all funded addresses? I'm only interested in non-token accounts, so top level accounts.

  2. Is it possible to get a complete list of all addresses that have any transaction history (so, even if current balance is 0 SOL).

Thanks in advance.

2 Answers 2


Gathering a complete list of all funded Solana addresses or all addresses with any transaction history is a task that comes with significant technical and resource considerations. However, I can guide you through what's possible and the limitations you might face:

1. Complete List of All Funded Addresses

  • Using solana-ledger-tool: The solana-ledger-tool provides a snapshot of the ledger at a specific point in time. While it can list accounts, including those with balances (--no-account-data minimizes output size by excluding account data), it's important to note that this tool reflects the state of the ledger based on the last snapshot or epoch processed by your validator. If your node was not fully caught up or if there were issues during the sync, some accounts might not appear.

  • Limitations: Even under ideal conditions, getting a complete list at any given moment is practically challenging due to the continuous state changes within the blockchain. Accounts can be created, funded, and emptied in moments, making any list potentially outdated very quickly.

  • Alternative Approaches: For more comprehensive data, consider using Solana's RPC API, specifically the getProgramAccounts call with the Solana Token Program ID filtered for SOL balances. However, this requires significant processing and might not be feasible to run against a public RPC endpoint due to rate limits and response size limits.

2. Complete List of All Addresses with Any Transaction History

  • Direct Method: There isn't a direct method using solana-ledger-tool or straightforward RPC calls to retrieve all addresses that have ever been involved in a transaction. This would require analyzing the entire transaction history of the blockchain.

  • Blockchain Analysis Tools: For this purpose, more sophisticated blockchain analysis tools and databases are typically used. These tools index and store transaction data in a queryable form, allowing for complex queries like listing all addresses that have ever been involved in a transaction.

  • Developing Your Solution: If you have a specific and ongoing need for this data, you might consider developing a custom solution that indexes transactions as they occur, tracking the involvement of different addresses. This is a non-trivial task that requires significant resources for data storage and processing.

Solutions and Considerations

  • Practicality: For practical purposes, especially if you're looking at this data for analysis or research, consider narrowing your criteria or focusing on subsets of data that are most relevant to your needs.

  • Third-Party Services: Look into third-party Solana analytics platforms that might have already indexed this data. Services like Solscan, Solana Beach, or others may offer APIs or data dumps that meet your needs, though they might not cover all addresses historically.

  • Custom Indexing: For the most comprehensive and tailored results, setting up a custom indexer that processes blockchain data to extract and store the specific information you need (e.g., funded accounts, accounts with transactions) might be the best approach. This is complex and requires ongoing data management but offers the most flexibility and immediacy in data retrieval.

In summary, while obtaining a complete and up-to-date list of all funded addresses or addresses with any transaction history on Solana is challenging due to the dynamic nature of blockchains and technical limitations, there are strategies and tools that can help approximate or narrow down this data for specific purposes.

  1. Complete List of Funded Addresses (Non-Token Accounts):

It's not straightforward to obtain a complete list of all funded addresses (non-token accounts) on the Solana blockchain due to its distributed nature and the vast number of addresses. However, you can approximate this list by querying Solana node RPC endpoints or utilizing Solana blockchain explorers' APIs to retrieve top-level accounts with non-zero balances. Keep in mind that this approach may not capture every funded address, and the accuracy of the data may vary depending on factors such as node sync status and explorer coverage.

  1. Complete List of Addresses with Transaction History:

Similarly, obtaining a complete list of all addresses that have any transaction history, including those with a current balance of 0 SOL, is challenging. You can attempt to retrieve transaction history by scanning Solana transaction logs or querying Solana node RPC endpoints such as getConfirmedSignaturesForAddress2. However, be aware that scanning transaction logs or querying historical data for every address on the blockchain can be resource-intensive and may not be feasible for large-scale analysis. Additionally, while you can identify addresses that have participated in transactions, the transaction history may not be exhaustive or may not provide insights into the specific types of transactions (e.g., token transfers, program interactions). https://www.quicknode.com/docs/solana

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.