Burning & Account Cleanup
How to Clean Up Your Solana Wallet: Closing Empty Token Accounts in Bulk
How to find and close every empty token account in a wallet at once and get back the rent deposit locked in each one.
If you've used more than a few Solana dApps or claimed a few airdrops, your wallet almost certainly has token accounts you've forgotten about. Most are empty, most hold tokens that are worth nothing, and each one is sitting on a small SOL deposit. This post shows how to find and close all of them in one go, without checking an explorer one account at a time.
Why wallets collect these
Every token you hold needs its own associated token account (ATA) under your wallet, an account that holds only that token's balance. You rarely create one on purpose. They appear when you receive an airdrop, try a swap once or mint an NFT. After a couple of years of casual use a wallet can have 50 or 100 of them, and most sit at zero for tokens you sold long ago or never wanted.
Is it safe to close them?
An empty token account is safe to close. Closing it:
- sends its rent deposit (about 0.0015 to 0.002 SOL, depending on when it was opened) back to you straight away
- doesn't touch the token's mint, its supply or anyone else's balance
- can be undone in practice, because if someone sends you that token again a new account is created for it
An account that still holds tokens can't be closed until you move or burn them. The token program rejects a close on an account with a balance, so you can't lose real tokens by closing the wrong one.
By hand or in bulk
By hand, you open an explorer, find every token account under your wallet, check each balance and send a closeAccount instruction for each empty one. That's fine for two or three accounts and tedious past a dozen. Solana's per-transaction limits also mean a wallet with 50 or more empty accounts needs several transactions whatever tool you use. A dedicated tool saves you the scanning and the batching. The close instruction itself is simple.
The steps
- If you want, check first. Paste any wallet address to see how much SOL its empty accounts hold. Nothing is connected or signed.
- Connect the wallet you want to clean up. The scan starts by itself.
- Look over what it found. Every token account at zero is counted, and they all close together. Accounts that still hold tokens are listed separately with their value, and nothing happens to them unless you tick them.
- You can also clear out dead tokens. Tick a token worth $0.50 or more and it's sold for SOL through Jupiter. Tick dust, spam or a token with no market and it's burned. Either way its account closes with the others.
- Approve. Each transaction closes up to 20 accounts, so a large cleanup takes very few wallet prompts.
- The SOL comes back to your wallet once every batch has landed: about 0.0015 to 0.002 SOL per closed account, plus anything the sales brought in. Solstack takes no fee.
Do it every few months
New empty accounts keep appearing as you use the wallet. Every airdrop and every one-off swap adds one, so this isn't a one-time job. Wallets that trade a lot of new tokens or claim many airdrops usually fill up again within a few months. A scan costs nothing, and it usually turns up SOL you can spend.
Rent Reclaim scans and closes in one flow, and Wallet Cleaner does the same across up to 1,000 throwaway wallets at once. The Rent Reclaim docs have the details, and Rent on Solana explains why this SOL is locked up in the first place.