Recover SOL
Convert Solana dust tokens to SOL
Price every leftover token balance in your wallet against SOL, sell the ones worth selling through Jupiter, and close each emptied account to reclaim its rent.
How it works
- 1
Connect and scan
Connect your wallet. SOLTidy reads every SPL Token and Token-2022 account with a balance and asks Jupiter for a quote to SOL for the full amount of each one.
- 2
Review the quotes
Each row shows the token, your balance, the estimated SOL out and the rent you get back. Tokens worth less than the network fee, or with no swap route, are hidden unless you turn on Show all.
- 3
Pick a slippage setting
Choose 1%, 3% or 5%. Dust usually trades in thin pools, so 3% is the default. The quote's minimum output is enforced on chain, so a swap cannot fill below it.
- 4
Sell one or sell all selected
Every token is one transaction: swap, close the token account, fee. Each transaction is simulated first, then your wallet asks for a signature. Sell all selected runs them one after another.
What are dust tokens on Solana, and why sell them?
Dust is the small change a wallet collects over time: 0.37 of a token left after a swap, a few cents of an airdrop, the remainder of a position you exited months ago. Each balance is too small to bother swapping by hand, so it stays. On Solana that has a second cost, because every balance sits in its own token account and every token account holds a rent-exempt deposit of about 0.00204 SOL that you only get back when the account is closed.
Selling dust therefore pays twice. The tokens themselves convert to a little SOL, and once the account is empty it can be closed, which returns the rent deposit. For many dust balances the rent is worth more than the tokens. A wallet with forty forgotten balances is holding roughly 0.08 SOL in deposits alone, before counting whatever the tokens fetch.
How the dust to SOL swap works
SOLTidy uses the Jupiter aggregator's public swap API. For each token it requests a quote for your full balance to SOL, then asks Jupiter for the raw swap instructions instead of a finished transaction. It composes its own versioned transaction from them: compute budget, Jupiter's setup and swap instructions, the wrapped SOL unwrap, a CloseAccount instruction for your now-empty token account under the correct token program, and one SOL transfer for the fee. Address lookup tables supplied by Jupiter keep the transaction under Solana's 1232-byte limit.
If a route is too large to fit alongside the close and the fee, the tool asks for a simpler route with fewer accounts, and as a last resort a direct single-pool route. Before your wallet ever opens, the finished transaction is simulated against current chain state. A failing simulation shows up as a message on that token's row, not as a confusing wallet error, and nothing is sent.
Slippage, thin liquidity and tokens with no route
Dust tokens often trade in small pools where a quote can move between the moment you see it and the moment the transaction lands. The slippage setting is the most you are willing to lose to that movement: at 3%, the swap fails on chain rather than deliver less than 97% of the quoted SOL. Nothing is lost when that happens except the network fee. If a sale fails on slippage, retry or move to 5%. The SOLTidy fee is calculated on the guaranteed minimum output, not the optimistic estimate.
Some tokens cannot be sold at all. Dead projects, scam airdrops and NFTs have no liquidity, so Jupiter returns no route. The tool marks these as No route. They still hold a rent deposit, and the way to recover it is to burn the balance and close the account in the Token Account Closer. The same applies to tokens worth less than the network fee of a swap: burning them costs less than selling them.
Token-2022 dust, transfer fees and accounts that will not close
The tool handles both the original SPL Token program and Token-2022, and always closes an account with the program that owns it. Token-2022 adds extensions that matter here. A token with a transfer fee withholds part of every transfer, so the quote you see is already net of it. An account that holds withheld fees from earlier incoming transfers cannot be closed until the issuer harvests them, and a frozen account cannot be sold at all.
SOLTidy deals with this through simulation. It first simulates the swap with the close. If only the close makes it fail, it rebuilds the transaction without the close, simulates again, and sends that: you still get the SOL from the sale, no rent fee is charged, and the row tells you the account was left open. If the swap itself cannot succeed, for example because the account is frozen or the wallet lacks the roughly 0.003 SOL needed temporarily for the wrapped SOL account, the row explains why.
Questions & answers
How much does it cost to sell dust tokens with SOLTidy?
The fee is 1% of the SOL you receive from each swap plus 5% of the rent reclaimed from the closed token account. It is a plain SOL transfer inside the same transaction as the swap, so there is no separate charge and nothing to pay if a sale fails or a token has no route. You also pay the normal Solana network fee for each transaction, which the tool caps at roughly 0.00006 SOL including the priority fee. The summary box shows the fee and the net amount before you sign.
Is it safe to sell dust tokens here? Do you hold my tokens?
No funds ever leave your control. The transaction is built in your browser, simulated, and signed in your own wallet; SOLTidy never sees a private key and never takes custody or a token approval. The swap runs through Jupiter's on-chain program with a minimum output enforced by the program itself, and the SOL lands directly in your wallet in the same transaction. You can read every instruction in your wallet's confirmation screen before approving.
Why is each token a separate transaction?
A Jupiter swap route touches many accounts, often thirty or more, and a Solana transaction is limited to 1232 bytes. One swap plus the account close and the fee transfer fills most of that, even with address lookup tables. Keeping one token per transaction also means one illiquid token that fails on slippage cannot block the others. Sell all selected simply runs the transactions in order and shows progress.
Why does a token show No route?
Jupiter could not find any pool that will buy that token for SOL at the size you hold. That is normal for abandoned projects, spam airdrops and NFTs. The token cannot be sold anywhere on chain, but its account still holds about 0.002 SOL of rent. Use the Token Account Closer to burn the balance and close the account, which returns that rent.
What slippage should I use for dust?
Start with the default of 3%. Small pools move more than major pairs, and with a balance worth a few cents the absolute difference between 1% and 3% is negligible, while a failed transaction still costs a network fee. Drop to 1% for liquid tokens such as stablecoins, and go to 5% only for thin tokens that keep failing. The on-chain minimum output always applies.
Can I undo a dust sale?
No. A swap is final once the transaction confirms, like any trade on a decentralised exchange. You can buy the token again later, and your wallet will open a fresh token account for it automatically, but you will pay the rent deposit and the market price at that time. Closing the empty account itself is harmless and fully repeatable.
Why are some of my tokens hidden from the list?
By default the list leaves out tokens whose swap value is lower than the network fee of selling them, and tokens with no route. Selling those would cost more than it returns. Turn on Show all to see every balance with its status. For the hidden ones, burning and closing in the Token Account Closer is the cheaper way to get the rent back.
Is there a fee?
SOLTidy charges 1% of the SOL received from each dust swap plus 5% of the rent reclaimed from the closed token account, taken inside the same transaction; tokens with no route cost nothing.
Guides that go deeper
Built and maintained by Jacob, a Solana trader who uses these tools daily. Content reviewed . Every transaction is built in your browser and signed in your own wallet — see the terms for fees.


