- A Solana wallet can control many separate token accounts, so the tokens visible in a wallet interface are not necessarily a complete account inventory.
- Solana RPC provides
getTokenAccountsByOwnerfor finding token accounts associated with a wallet owner. - Token accounts can belong to the original Token Program or Token-2022, so a complete scan may need to consider both programs.
- Finding an account with a zero token balance does not by itself prove that it should be closed.
- For cleanup, inspect the actual account state, token amount, lamport balance, authority, and program before approving a close operation.
A Solana wallet can accumulate many token accounts over time.
Some hold tokens you actively use. Others may have a zero token balance but remain open on-chain. Some may not even be obvious in your wallet's normal asset list.
If you want to understand your wallet—or find unused accounts that may contain reclaimable SOL—the first step is identifying the underlying token accounts rather than relying only on the tokens displayed by a wallet app.
You can do this with Solana RPC, explorers and developer tools, or an automated wallet scanner.
Why does a wallet have separate token accounts?
Your main Solana wallet account holds SOL, but fungible token balances are represented through accounts managed by Solana token programs.
A simplified wallet can look like this:
Wallet address
├── SOL
├── Token account for Token A
├── Token account for Token B
├── Token account for Token C
└── Token account for Token D
For common token workflows, an Associated Token Account (ATA) is used as the expected token account for a particular wallet owner and token mint.
This means your wallet address and your token-account addresses are not the same thing.
If you have interacted with many tokens, you can therefore have many separate token accounts.
Why can't you just look at your wallet's token list?
A wallet interface is designed to present assets conveniently. It is not necessarily intended to expose every underlying account.
Depending on the wallet, it may:
- hide zero-balance tokens;
- filter spam or suspicious assets;
- group assets by mint;
- omit accounts from the main token list; or
- simplify technical account information.
So a clean-looking wallet interface does not necessarily mean that no unused token accounts remain on-chain.
To find the actual accounts, query the blockchain using your wallet address as the owner.
Method 1: Use Solana RPC
For developers, the most direct method is the Solana RPC method:
getTokenAccountsByOwner
It returns token accounts associated with a specified owner, subject to the filter and configuration supplied in the request.
A request can filter by a token program ID.
For example, conceptually:
{
"method": "getTokenAccountsByOwner",
"params": [
"YOUR_WALLET_ADDRESS",
{
"programId": "TOKEN_PROGRAM_ID"
},
{
"encoding": "jsonParsed"
}
]
}
Using jsonParsed makes common token-account fields easier to inspect without manually decoding the raw account data.
The exact RPC response should be treated as on-chain data, while any UI labels or cleanup recommendations are interpretations built on top of it.
What information should you inspect?
Finding the account addresses is only the beginning.
For each token account, useful information includes:
| Field | Why it matters |
|---|---|
| Account address | Identifies the token account itself |
| Owner wallet | Shows which wallet controls the account relationship |
| Token program | Identifies the program governing the account |
| Mint | Identifies the token |
| Token amount | Shows whether tokens remain |
| Decimals | Helps interpret the displayed token amount |
| Lamports | Shows the SOL-denominated balance held by the account |
| Account state | Helps determine how the account can be used |
| Authority information | Matters when determining whether an operation can be authorized |
For cleanup purposes, you should not reduce this to a single rule such as:
token amount = 0 → close account
A zero balance is useful information, but closure eligibility still needs to be verified.
Method 2: Use a Solana explorer
A Solana block explorer can help you inspect a wallet address and the accounts or token holdings associated with it.
This approach is useful when you want to investigate individual accounts manually without writing code.
A typical process is:
- Copy your public Solana wallet address.
- Open a trusted Solana explorer.
- Search for the wallet address.
- Review its token holdings and account information.
- Open individual token-account details when more information is needed.
- Check the token mint, owner, program, token amount, and lamport balance.
- Verify account details before deciding whether any cleanup action is appropriate.
Explorer interfaces vary, so the exact labels and tabs may differ.
Also remember that viewing an account and proving it is safe to close are separate tasks.
Method 3: Use Solana CLI or developer tooling
If you work with Solana development tools, command-line utilities and SDKs can also query token-account information.
This can be useful when you want to:
- inspect accounts programmatically;
- compare many accounts;
- automate wallet analysis;
- verify RPC results; or
- build your own cleanup workflow.
The underlying goal remains the same: identify the token accounts owned by the wallet and inspect their actual state.
For most ordinary wallet users, however, raw RPC responses and command-line output can be unnecessarily technical.
Method 4: Use a wallet scanner
A wallet scanner can automate the account-discovery process and present the results in a more understandable form.
Your Free SOL Wallet Cleanup scans public on-chain information associated with the connected wallet and presents cleanup candidates for review.
This avoids requiring you to manually copy account addresses or interpret raw RPC data.
A typical workflow is:
- Connect your Solana wallet.
- Let the tool scan the wallet's public on-chain token-account data.
- Review the accounts and assets it identifies.
- Check which accounts are empty or otherwise presented as cleanup candidates.
- Review any reclaimable SOL and applicable fees.
- Select only the accounts or assets you intend to clean up.
- Review the transaction in your wallet before approving it.
Connecting a wallet should not require sharing your seed phrase or private key.
Your Free SOL is non-custodial, and transactions require wallet approval.
You can review How It Works and Security before using the tool.
How do you identify an empty token account?
For ordinary token accounts, one important signal is a token amount of zero.
Conceptually:
Token account A
Token amount: 42
→ Not empty
Token account B
Token amount: 0
→ Empty token balance
But an empty token balance does not mean the Solana account has disappeared.
The account may still be open and hold lamports.
For a standard 165-byte SPL Token Account, the current rent-exempt minimum is:
2,039,280 lamports
= 0.00203928 SOL
That value is useful for understanding standard token accounts, but it is not a universal balance for every token account.
Account size and structure can differ, particularly with Token-2022 extensions.
Read What Are Empty Token Accounts on Solana? for the full explanation.
How can you check the SOL held by a token account?
The account's lamport balance is part of its on-chain account data.
Remember:
1 SOL = 1,000,000,000 lamports
If an account contains:
2,039,280 lamports
that equals:
0.00203928 SOL
However, you should inspect the account's actual lamport balance instead of assuming it contains exactly the rent-exempt minimum.
A scanner that estimates reclaimable SOL should therefore derive the amount from the accounts it actually finds.
Do you need to scan both Token Program and Token-2022?
For a more complete token-account inventory, yes.
Solana has the original Token Program as well as Token-2022.
Token-2022 supports extensions that can add functionality and can affect account structure and size.
That matters for two reasons:
- a scanner that queries only one token program can miss accounts governed by the other; and
- assumptions based on the standard 165-byte account size should not automatically be applied to extended Token-2022 accounts.
Can one token have more than one account?
It is possible for a wallet owner to be associated with token accounts beyond the canonical associated token account pattern.
That is another reason to query accounts rather than simply construct one expected ATA address per mint and assume the job is finished.
For wallet cleanup, the object you ultimately need to evaluate is the actual account found on-chain.
How do you know whether a found account can be closed?
Finding an account is not the same as determining closure eligibility.
A scanner should separately answer questions such as:
Does the account exist?
↓
Which token program owns it?
↓
Does it still hold tokens?
↓
What is its state?
↓
Who can authorize closure?
↓
Is closure valid and intended?
Only then should an account be treated as a potential close candidate.
The next article, Can You Close a Solana Token Account?, covers that distinction in detail.
What if the token account still contains tokens?
Do not treat it as an ordinary empty-account closure candidate.
If the account contains tokens you want to keep, closing it is not the appropriate cleanup action.
If it contains unwanted tokens, you first need to decide what you want to do with those assets.
Depending on the token and your intent, options can include transferring or burning them.
If you deliberately want to permanently destroy unwanted tokens, see the Burn workflow.
Burning a token and closing its account are separate operations, so an account may still need to be evaluated after its token balance reaches zero.
How do you find accounts with reclaimable rent?
A practical search for reclaimable rent is narrower than simply finding every token account.
You are looking for accounts that:
- exist on-chain;
- are associated with your wallet;
- have an appropriate state for closure;
- satisfy the relevant token-account requirements;
- are no longer needed; and
- contain lamports that will be released when validly closed.
The actual amount should come from the account's lamport balance.
If your goal is specifically to recover SOL from eligible empty token accounts, you can also use the Claim workflow.
For the underlying process, see How to Reclaim SOL Rent on Solana.
Is scanning a wallet dangerous?
Reading public blockchain data does not require control of the wallet.
Your public wallet address and its on-chain accounts are already visible on Solana.
The sensitive step comes later if you choose to perform a transaction.
When a cleanup transaction is prepared, review it in your wallet before signing.
For more information about the Your Free SOL workflow, see Security, FAQ, and Fees.
Explorer, RPC, or wallet scanner: which should you use?
It depends on what you are trying to accomplish.
| Method | Best for | Main tradeoff |
|---|---|---|
| Explorer | Manual inspection | Slower for many accounts |
| Solana RPC | Developers and precise programmatic queries | Requires technical implementation |
| CLI / SDK | Development and automation | More technical |
| Wallet scanner | Convenient account discovery and cleanup review | Requires evaluating the tool and transaction |
These methods are not mutually exclusive.
For example, you can use a wallet scanner to identify an account and then independently inspect that account with an explorer before approving a transaction.
The simple answer
The most direct technical way to find token accounts associated with a Solana wallet is to query the blockchain for token accounts owned by that wallet, commonly using getTokenAccountsByOwner.
For a complete inventory, account for both the original Token Program and Token-2022 rather than assuming every token uses the same program.
Once the accounts are found, inspect their token amounts, lamport balances, program ownership, authorities, and state.
A token amount of zero can identify an empty token balance, but it does not by itself prove that the account should be closed.
If you want the next step—determining when closure is actually valid—continue with Can You Close a Solana Token Account?.