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.