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.
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
- Connect the wallet you want to clean up.
- 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.
- 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).
- Sign each batch — one signature per batch of closes, rather than one per account.
- 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.