SOLSTACKBlog
← All guides

Burning & Account Cleanup

How to Clean Up Your Solana Wallet: Closing Empty Token Accounts in Bulk

A practical walkthrough for finding and closing every empty token account in a wallet at once, recovering the rent deposit locked in each.

2026-09-27·5 min read·Verified against mainnet-beta

If you've used more than a handful of Solana dApps or claimed a few airdrops, your wallet almost certainly has token accounts you don't remember — mostly empty, mostly worthless, each quietly holding a small SOL deposit. Here's how to actually find and clear all of them in one pass, instead of hunting through an explorer account by account.

Why a wallet accumulates these

Every token needs its own associated token account (ATA) per wallet — a dedicated account holding just that token's balance for that address. You don't create these deliberately most of the time; they're a side effect of receiving an airdrop, trying a swap once, or minting an NFT. Two years of casual use can leave a wallet holding 50, 100, or more of these accounts, the overwhelming majority sitting at a zero balance for tokens you no longer hold, or never wanted in the first place.

Confirming it's safe before you close anything

Only a zero-balance token account is safe to close outright — closing one:

  • Returns its rent deposit (~0.002 SOL) to you immediately
  • Does not touch the token's mint, supply, or any other holder's balance
  • Is effectively reversible in outcome: if you're ever sent that token again, a fresh account is created automatically

A nonzero-balance account can't be closed without first moving or burning what's in it — the protocol itself rejects a close instruction against an account that still holds tokens, so there's no risk of accidentally closing your way into losing a real balance.

Doing it manually vs. in bulk

Manually, this means opening an explorer, finding every token account tied to your wallet, checking each balance, and issuing a closeAccount instruction one at a time — workable for two or three accounts, painful past a dozen. Each close is its own instruction, and Solana's per-transaction account limits mean a wallet with 50+ empty accounts needs several batched transactions regardless of tooling, so the real value of a dedicated tool is in the scanning and batching, not the close instruction itself.

The actual steps

  1. Connect the wallet you want to clean up.
  2. Scan for empty accounts — every token account sitting at a zero balance gets listed automatically; nonzero-balance accounts are excluded from the list entirely, so there's nothing to double-check manually.
  3. Select which to close — everything, or a specific subset if you want to keep a particular account around for some reason (some dApps expect a token account to already exist and will otherwise recreate it themselves next time anyway).
  4. Sign each batch — one signature per batch of closes, rather than one per account.
  5. SOL lands back in your wallet — roughly 0.002 SOL per account closed, all at once once every batch has landed.

Worth doing periodically, not just once

Because new empty accounts accumulate passively — every airdrop, every one-off swap — this isn't a one-time cleanup. Wallets that interact with a lot of new tokens (actively trading, frequently claiming airdrops) tend to build up dust again within a few months. Running a scan every so often costs nothing and typically recovers real, spendable SOL that would otherwise sit idle indefinitely.

Rent Reclaim does the scan-and-batch-close in one flow — full details in the Rent Reclaim docs, and the underlying mechanics of why this SOL is locked up in the first place are in Rent on Solana.