If you've been active on Solana — swapping tokens, interacting with DeFi protocols, or collecting airdrops — your wallet has accumulated token accounts and potentially granted permissions that you've forgotten about. Cleaning these up is a simple security practice that also recovers SOL.
This guide explains how Solana's token account model works, why revoking approvals matters, and how to clean up your wallet using the best available tools.
How Solana Token Accounts Work (It's Different From Ethereum)
On Ethereum, when you approve a token for trading on a DEX, you grant an "allowance" — permission for a smart contract to spend your tokens up to a specified amount. These allowances persist forever unless you explicitly revoke them. A compromised or malicious contract can drain your tokens through an old approval.
Solana works differently. Solana uses an account-based model for tokens:
- Each token you hold requires a token account — a small on-chain account that stores your balance for that specific token
- Token accounts require rent — approximately 0.00203 SOL each, reserved when the account is created
- When you swap on Jupiter or interact with DeFi, the protocol uses delegate authority on your token account during the transaction, but this is typically temporary
- Most Solana DeFi interactions don't create persistent approvals the way Ethereum does
What This Means in Practice
Solana users generally have fewer persistent approval risks than Ethereum users. However, there are still security concerns:
- Delegate authority: Some protocols set a delegate on your token account that persists after the transaction. This delegate can transfer tokens from your account
- Token accounts for scam tokens: Airdropped scam tokens create token accounts in your wallet. While the accounts themselves aren't dangerous, interacting with the scam token (trying to sell it) can lead you to malicious sites
- Rent-locked SOL: Every token account holds ~0.00203 SOL in rent. If you have hundreds of token accounts from old swaps and airdrops, that's significant SOL locked up
Why You Should Clean Up Your Wallet
Reason 1: Recover Rent SOL
Every SPL token account costs ~0.00203 SOL in rent. Active Solana users easily accumulate hundreds of token accounts:
| Token Accounts | Locked SOL |
|---|
| 50 | ~0.10 SOL |
| 100 | ~0.20 SOL |
| 250 | ~0.51 SOL |
| 500 | ~1.02 SOL |
By closing token accounts you no longer need (empty balances, tokens you'll never use), you recover this rent SOL back to your wallet.
Reason 2: Remove Delegate Authority
If any protocol has set persistent delegate authority on your token accounts, revoking that delegate removes their ability to transfer your tokens. This is the Solana equivalent of revoking an EVM token approval.
Reason 3: Clean Up Scam Tokens
Airdropped scam tokens clutter your wallet and can be confusing. Closing their token accounts removes them from your wallet view and recovers the rent SOL.
Reason 4: Reduce Attack Surface
Fewer active token accounts and zero outstanding delegates mean fewer potential vectors for exploitation. It's basic security hygiene.
How to Revoke Delegates and Close Token Accounts
Method 1: Using Phantom Wallet
Phantom has built-in token account management:
To close empty token accounts (recover rent):
- Open Phantom
- Go to Settings (gear icon)
- Look for "Close Empty Token Accounts" or similar option under Account Settings
- Phantom will list all token accounts with zero balance
- Select the ones to close (or close all)
- Confirm — the rent SOL is returned to your wallet
To hide/remove scam tokens:
- Find the scam token in your token list
- Long press or click the options menu
- Select "Hide Token" or "Burn Token"
- This removes it from your view (hiding) or destroys the token and closes the account (burning)
To check for delegates:
Phantom doesn't have a dedicated delegate revocation UI, but you can use the Solana CLI or third-party tools (see below).
Method 2: Using Solflare Wallet
Solflare offers similar functionality:
- Navigate to your token list
- Look for tokens with zero balance or scam tokens
- Use the "Close Account" option to close empty accounts and recover rent
- Solflare also supports hiding unwanted tokens
Method 3: Using Solscan
Solscan provides a comprehensive view of your token accounts:
- Go to solscan.io and search for your wallet address
- Click on "Token Accounts" or "SPL Tokens"
- View all token accounts, including:
- Current balance
- Delegate authority (if any)
- Rent amount
- Identify accounts with delegates you don't recognize
- Use the Solana CLI or wallet tools to revoke delegates on specific accounts
Method 4: Using Solana CLI (Advanced)
For full control, the Solana CLI lets you manage token accounts directly:
Close an empty token account:
spl-token close <TOKEN_ACCOUNT_ADDRESS>
Revoke delegate authority:
spl-token revoke <TOKEN_ACCOUNT_ADDRESS>
List all token accounts:
spl-token accounts
Burn unwanted tokens and close account:
spl-token burn <TOKEN_ACCOUNT_ADDRESS> <AMOUNT>
spl-token close <TOKEN_ACCOUNT_ADDRESS>
This method gives you the most control but requires familiarity with the command line and Solana CLI setup.
What to Revoke and What to Keep
Safe to Close/Revoke
- Zero-balance token accounts: You swapped out of the token and have nothing left. Close the account and recover rent
- Airdropped scam tokens: Tokens you didn't ask for from unknown sources. Burn the tokens and close the account
- Old tokens you'll never use: Memecoins you traded months ago, wrapped tokens you no longer need
- Unknown delegates: If a token account has a delegate you don't recognize, revoke it
Be Careful With
- Active DeFi positions: If you have tokens deposited in a lending protocol or LP position, don't close or revoke related accounts — this could break your position
- Staking-related accounts: SOL stake accounts are different from token accounts. Don't close these unless you've fully unstaked
- Recently used accounts: If you traded a token recently and might trade it again, keep the account open to avoid paying rent again when you re-create it
Don't Touch
- SOL (native): Your SOL balance isn't in a token account (wSOL is, but your native SOL isn't)
- Active LP tokens: If you're providing liquidity, your LP token account is needed
- Receipt tokens: Tokens from lending protocols (like cTokens or similar) represent your deposited funds
Dealing With Scam Token Airdrops
Scam token airdrops are extremely common on Solana. You'll find random tokens in your wallet that you never bought. Here's how to handle them:
The Golden Rule: Never Interact With Unknown Token Links
Some scam tokens have descriptions or names that include URLs (e.g., "Visit claim-rewards.xyz to claim"). Never visit these URLs. They're phishing sites designed to trick you into signing a malicious transaction.
Safe Ways to Remove Scam Tokens
Option 1: Burn and close in your wallet.
Most wallets let you burn tokens and close the account. This is safe — you're interacting with your own wallet, not the scam token's contract.
Option 2: Ignore them.
Scam tokens sitting in your wallet with zero interaction are harmless. They're annoying but not dangerous unless you interact with them. You can simply hide them in your wallet UI.
Option 3: Close the account via CLI.
Burn the token balance and close the account using spl-token burn and spl-token close.
What NOT to Do
- Don't try to swap/sell them on a DEX. Some scam tokens have malicious metadata that redirects you to phishing sites
- Don't visit any URLs in the token's metadata. These are always phishing attempts
- Don't connect your wallet to unknown sites to "claim" the airdrop. If you didn't expect the airdrop and don't recognize the project, it's a scam
How Often Should You Clean Up?
A good cadence:
- Monthly: Close empty token accounts and recover rent SOL. This is quick and purely beneficial
- After active trading periods: If you've been trading memecoins for a week and have 50 new token accounts, clean up afterward
- When you notice scam airdrops: Remove them promptly so they don't clutter your wallet or tempt you to investigate
- Before tax season: A clean wallet with only relevant token accounts makes tax reporting easier
Checking Your Current Status
To see how many token accounts you have and how much rent is locked:
- Go to Solscan and enter your wallet address
- Check the "Token Accounts" section
- Count total accounts and identify zero-balance ones
- Multiply zero-balance accounts by 0.00203 SOL to see your recoverable rent
Alternatively, Step Finance shows your full portfolio including token accounts, making it easy to identify cleanup opportunities.
Common Questions
Will closing token accounts affect my transaction history?
No. Blockchain history is permanent. Closing a token account doesn't erase any transaction records — it only removes the on-chain account that holds your balance for that token.
Can I get my tokens back after closing an account?
If you close an account with a zero balance, there's nothing to recover. If you accidentally close an account with tokens in it (via burn + close), those tokens are gone permanently. Always verify the balance before closing.
Do I need to revoke approvals on Solana like on Ethereum?
Solana's model is inherently safer than Ethereum's approval model. Most DeFi interactions don't create persistent approvals. However, checking for and revoking delegates is still good practice, especially if you've interacted with less reputable protocols.
How much SOL can I really recover?
It depends on your activity level. Light users might recover 0.05-0.1 SOL. Heavy memecoin traders or long-time users with hundreds of token accounts can recover 0.5-2+ SOL. It's free money — just from closing accounts you don't need.
Disclaimer: Always verify token account balances before closing accounts. Closing an account with tokens in it results in permanent loss. This guide is for educational purposes only. Exercise caution when interacting with any on-chain tools or services.