Key takeaways
- Dust tokens on Solana are leftover balances too small to bother trading, and each one keeps a token account open holding 0.00148844 SOL, or 0.00203928 SOL if it was opened before Solana lowered rent.
- Selling dust and closing the emptied account returns two things: the SOL the tokens fetch and the account's rent deposit, which for most dust is worth more than the tokens.
- A token with no Jupiter route, or one worth less than the network fee of a swap, is better burned and closed: that still returns the rent, 0.00141 to 0.00194 SOL after SOLTidy's 5% fee.
- SOLTidy's Sell Dust for SOL tool quotes every balance through Jupiter, hides those worth under 0.000025 SOL, and sells each token in its own transaction with the account close and a 5% fee inside it.
- For a single balance worth more than a few thousandths of a SOL, a normal wallet swap is cheaper in fees; Phantom charges 0.85% per swap, after which you close the empty account separately.
The short answer
Dust tokens are leftover token balances too small to bother trading: the 0.37 of a memecoin left after a swap, a few cents of an airdrop, the remainder of a position you exited. On Solana every one of them keeps a token account open, and each account holds a rent deposit of 0.00148844 SOL, or 0.00203928 SOL if it was opened before Solana lowered rent. Selling the dust through a swap aggregator like Jupiter and closing the emptied account returns both the tokens' value and that deposit; dust with no market, or worth less than a network fee, should be burned and closed instead, which still returns the rent.
What counts as dust on Solana?
A dust token is a balance whose market value is so small that trading it by hand does not feel worth the effort, typically well under a cent to a few cents. It comes from ordinary use:
- Swap leftovers. Selling "max" in some interfaces, or selling a fixed amount, leaves a few base units behind.
- Rounding. Wallets round tiny balances to 0 or hide them, so you think a position is gone when it is not.
- Airdrops and promotions. Small amounts of real tokens sent to many wallets.
- Old positions. Tokens that collapsed in price after you stopped paying attention.
Dust is not the same as address poisoning. Address poisoning is an attack in which someone sends a tiny SOL or token transfer from an address that looks like one you use, hoping you copy it from your history later. The tiny SOL needs no cleanup at all, because SOL sits in your main account and opens nothing. How that attack works and what to do with its fake tokens is in address poisoning on Solana. This post is about your own leftovers.
Why is dust worth clearing?
Dust is worth clearing because the balance is usually not where the value is; the account holding it is. A token account is the separate Solana account that stores your balance of one token, and it must hold a rent-exempt deposit for as long as it exists. The token program only lets you close it, with the CloseAccount instruction, when the balance is exactly zero. A dust balance of a few base units therefore locks the whole deposit:
| Account | Deposit locked | Typical dust value |
|---|---|---|
| SPL token account opened after rent was lowered | 0.00148844 SOL | often under 0.0001 SOL |
| SPL token account opened before | 0.00203928 SOL | often under 0.0001 SOL |
| Token-2022 associated account (typical) | 0.00151384 to 0.00207408 SOL | often under 0.0001 SOL |
Forty forgotten dust balances hold roughly 0.06 to 0.08 SOL in deposits, before counting whatever the tokens fetch. The per-account arithmetic and how to count your accounts are covered in how much SOL you can recover from token accounts, so I will not repeat them here. If you want to keep a token and only recover the overpaid part of an old deposit, that is a different operation, explained in getting SOL back without closing token accounts.
When is dust worth selling instead of burning?
Dust is worth selling when the SOL the swap pays you is clearly larger than the network fee of the swap transaction; otherwise burn the balance and close the account. Both routes close the account and return the rent, so the only question is whether the tokens add enough SOL to pay for their own transaction.
The two routes cost different amounts:
- Sell and close. One transaction per token: the Jupiter swap, the close and the fee. The network fee is the 5,000-lamport base fee plus a priority fee. SOLTidy caps the swap's priority fee at 50,000 lamports and uses 25,000 lamports (0.000025 SOL) as its working estimate.
- Burn and close.
BurnCheckeddestroys the balance, thenCloseAccountreturns the rent. Because no swap route is involved, SOLTidy's Token Account Closer packs up to 12 accounts into one transaction, so each account carries only a fraction of a network fee.
So the break-even is roughly where the tokens' SOL, after any fee on them, covers 0.00003 to 0.00006 SOL of network fees. Below that, burning nets more. Above it, selling nets more, and the gap grows with the value.
What does each choice return? A decision table with worked numbers
The table below uses SOLTidy's actual fee rules: 5% of the guaranteed minimum swap output (the quote after slippage, here 3%) plus 5% of the rent reclaimed, and 5% of rent for burn and close. Lamport figures are exact; the network fee is the 0.000025 SOL estimate.
| Dust value (Jupiter quote) | Account | Best action | Sell and close returns | Burn and close returns |
|---|---|---|---|---|
| No route | newer, 0.00148844 SOL | Burn and close | not possible | 0.00141402 SOL |
| No route | older, 0.00203928 SOL | Burn and close | not possible | 0.00193732 SOL |
| 0.00002 SOL | newer | Burn and close | about 0.00141 SOL, slightly less than burning | 0.00141402 SOL |
| 0.0001 SOL | newer | Either; selling edges ahead | about 0.00148 SOL | 0.00141402 SOL |
| 0.0005 SOL | newer | Sell | about 0.00186 SOL | 0.00141402 SOL |
| 0.01 SOL | older | Sell | about 0.01143 SOL | 0.00193732 SOL |
The 0.0005 SOL row worked out in lamports:
- Quote 500,000 lamports; at 3% slippage the guaranteed minimum is 485,000.
- Fee on the swap: 5% of 485,000 is 24,250. Fee on the rent: 5% of 1,488,440 is 74,422. Total fee 98,672.
- Into the wallet: 500,000 + 1,488,440 - 98,672 = 1,889,768 lamports, about 0.00189 SOL, minus roughly 25,000 lamports of network fee, about 0.00186 SOL.
- Burning instead: 1,488,440 - 74,422 = 1,414,018 lamports, 0.00141 SOL, minus a small share of a batched network fee.
Two patterns stand out. First, for typical dust the rent is most of the return; a 0.0005 SOL token adds only about a third on top of its deposit. Second, the sale only beats burning by meaningful amounts once the tokens are worth more than about a ten-thousandth of a SOL.
When not to use a dust tool at all. If one balance is worth more than a few thousandths of a SOL, it is not really dust, and a normal swap in your wallet costs less in fees. Phantom's swap fee is 0.85% for most swaps, against SOLTidy's 5% of the SOL received. On a 0.01 SOL balance that difference is about 0.0004 SOL. Swap it in your wallet, then close the empty account with any closer or the spl-token CLI. A dust tool earns its fee when there are many small balances to price, sell and close.
Why can't some dust be sold?
Some dust cannot be sold because there is no buyer at any price, or because the token program blocks the transfer. The common cases:
| Cause | What you see | What to do |
|---|---|---|
| No liquidity: dead project, spam airdrop, NFT | Jupiter returns no route | Burn and close for the rent |
| Amount too small to produce any output | No route, or a quote of a few lamports | Burn and close |
| Price moved during the sale | Slippage error, transaction fails | Retry, or raise slippage from 3% to 5% |
| Frozen token account | Simulation fails, account is frozen | Nothing; a frozen account cannot be sold, burned or closed until the issuer thaws it |
| Token-2022 transfer fee | Quote already net of the fee | Sell as normal; expect a little less |
| Token-2022 withheld fees in your account | Sale works, close fails | Sell, and close later once fees are harvested |
| Wallet holds almost no SOL | Swap fails on insufficient lamports | Add about 0.003 SOL temporarily for the wrapped SOL account |
A transfer fee is a Token-2022 extension that withholds a percentage of every transfer in the recipient's account, and an account holding withheld fees cannot be closed until they are harvested to the mint. The details of each close error, including frozen accounts and close authorities, are in can't close a Solana token account.
How do Phantom, Solflare and Jupiter handle dust?
As of November 2026, none of them documents a one-click "sell all dust" feature; you swap one token at a time and close accounts separately. What each does:
- Phantom. The built-in swap sells one token per swap, at a 0.85% fee for most swaps. Its help center notes that Phantom may find no route when liquidity is low or the amount is below a minimum, and that "fixed costs like gas and bridge fees take up a large share of very small swaps." Selling all of a token removes it from your list, but closing the emptied account is not something Phantom's cleanup options cover.
- Solflare. Swaps one token at a time in the wallet and lets you burn unwanted tokens, which is free beyond network fees for a single item. I could not find a swap fee percentage on Solflare's own help pages, so check the swap screen before you confirm.
- Jupiter. The Portfolio dashboard lets a connected wallet trade a token and reclaim SOL from empty token accounts, and Jupiter Wallet can reclaim rent from empty accounts and excess rent from ones you keep. Neither page describes a bulk sale of small balances. Jupiter's Ultra API offered gasless swaps, but its docs list a minimum trade of about 10 USD and say Ultra "is no longer actively maintained and has been superseded by Swap V2," so it does not help with dust (source).
For one or two balances, the wallet route is perfectly good. For a list of thirty, pricing each token, swapping it and then closing its account by hand is where people give up.
How does SOLTidy's Sell Dust tool work?
I built Sell Dust for SOL to do the whole sequence per token in one transaction. This is what the code does today:
- Scan and price. It reads every SPL Token and Token-2022 account with a non-zero balance, skips wrapped SOL, and asks Jupiter's public swap API for an ExactIn quote of the full balance to SOL, four tokens at a time.
- Filter. Tokens quoted below 25,000 lamports (0.000025 SOL), its estimate of one sale's network fee, are hidden, as are tokens with no route. A Show all switch reveals them. Worthwhile tokens start selected.
- Slippage. You choose 1%, 3% or 5%; 3% is the default. The quote's minimum output is enforced on chain by Jupiter's program, so a sale fails rather than fill below it.
- Build. It requests Jupiter's raw swap instructions rather than a finished transaction, then composes one versioned transaction: compute budget, Jupiter's setup and swap, the wrapped SOL unwrap,
CloseAccountfor your emptied account under the program that owns it, and one SOL transfer for the fee. If the route is too large for Solana's 1,232-byte limit, it re-quotes with at most 24 accounts, then a direct single-pool route. - Simulate. The transaction is simulated before your wallet opens. If only the close makes it fail, as with Token-2022 withheld fees, it rebuilds without the close, charges no rent fee, and the row tells you the account was left open.
- Sign. One wallet prompt per token. Sell all selected runs them in order; a token that fails is marked with the reason and the rest continue, and rejecting a prompt stops the run.
The fee is 5% of the guaranteed minimum SOL from the swap plus 5% of the rent from the closed account, inside the same transaction. A token with no route or a sale that fails costs nothing beyond a network fee. Every swap is final once it confirms.
How does the home cleanup handle dust you cannot sell?
The all-in-one wallet cleanup on the home page quotes your leftover balances the same way and splits them into two groups in its "Sell or burn leftovers" step:
- Sellable: quoted at 0.000025 SOL or more. These are sold exactly as on the tool page, one transaction per token at 3% slippage, with the close and fee inside.
- Burnable: no route, a failed quote, or a quote below 0.000025 SOL. These are labeled "No market" or "Worth less than the network fee" and offered for burn and close, valued at their rent minus the 5% fee. They are burned and closed through the Token Account Closer's batched transactions.
Nothing in this step is preselected. Sales and burns are permanent, so you pick each item and confirm. NFTs, frozen accounts, and accounts whose close authority is someone else are left out of the dust list. If you only want to burn, the closer does it directly: tick a non-empty account and it runs BurnChecked and CloseAccount together. The separate Burn Tokens tool charges a flat 0.005 SOL per burn and is meant for reducing a supply you hold, not for dust, where it costs more than the rent it frees.
How do you clear dust from a Solana wallet?
Clear dust by pricing every balance, selling those worth more than a swap's network fee, and burning and closing the rest:
- Open the wallet cleanup or Sell Dust for SOL and connect your wallet. The scan is read-only and signs nothing.
- Wait for the quotes. Check the token names and amounts, and untick anything you want to keep, including tokens you expect to recover in price.
- Keep 3% slippage unless a token repeatedly fails, then try 5%.
- Read the summary: estimated SOL, rent back, fee and net to your wallet.
- Sell. Approve one prompt per token and check your wallet's preview shows SOL arriving and only that token leaving.
- For tokens with no route, select burn and close in the home cleanup, or tick them in the Token Account Closer, and confirm the burn warning.
- Anything left open, such as Token-2022 accounts with withheld fees, can be closed later once the issue is resolved.
Bottom line
Dust tokens are your own leftover balances, and on Solana each one keeps a token account open holding 0.00148844 or 0.00203928 SOL. Selling dust that is worth more than a swap's network fee, roughly 0.00003 to 0.00006 SOL, returns the tokens' value plus the deposit; burning and closing the rest returns the deposit alone, 0.00141 to 0.00194 SOL after a 5% fee. For one larger balance, a plain wallet swap is cheaper. For a wallet full of small ones, Sell Dust for SOL prices, sells and closes each in one transaction, and the home cleanup offers the unsellable remainder for burn and close in the same run.
Questions & answers
What are dust tokens on Solana?
Dust tokens are small leftover balances of a token, usually worth a fraction of a cent to a few cents: the remainder after a swap, rounding from a partial sell, or a tiny airdrop. On Solana each one sits in its own token account, which holds a rent deposit of 0.00148844 SOL, or 0.00203928 SOL for accounts opened before rent was lowered. The account cannot be closed and the deposit cannot be recovered until the balance is gone.
Should I sell or burn my dust tokens?
Sell when the tokens are worth clearly more than the network fee of a swap, roughly 0.00003 to 0.00006 SOL; you get the tokens' SOL plus the rent back. Burn and close when there is no swap route or the value is below that fee; you still get the rent back. In both cases the account is closed, which is where most of the SOL comes from for typical dust.
Why can't I sell some of my dust tokens?
Usually because there is no market. Jupiter returns no route for abandoned tokens, spam airdrops and NFTs, or for amounts too small to produce any output. Other causes are a frozen token account, which the token program will not let you transfer from, and Token-2022 transfer hooks or fees that make a route fail. A token with no route can still be burned and its account closed for the rent.
How much does SOLTidy charge to sell dust?
Sell Dust for SOL charges 5% of the guaranteed minimum SOL from each swap plus 5% of the rent reclaimed from the closed account, paid as a SOL transfer inside the same transaction. A sale that fails or a token with no route costs nothing beyond any network fee. On a token quoted at 0.0005 SOL in a newer account, the fee is 98,672 lamports and you keep about 0.00186 SOL after the network fee.
Does Phantom or Jupiter have a sell-all-dust button?
Not that their documentation describes, as of November 2026. Phantom and Solflare swap one token at a time through their built-in swap. Jupiter's Portfolio and Jupiter Wallet can trade a token and reclaim rent from empty accounts, but their docs describe no bulk dust sale. A dust tool sells each balance and closes the account for you, one transaction per token.
Is dust the same as address poisoning?
No. Dust in the wallet-cleanup sense is your own leftovers from trading. Address poisoning is an attack in which someone sends you a tiny amount from a look-alike address so it shows in your history and you copy the wrong address later. Poisoning dust in SOL opens no account and needs no cleanup; fake tokens from it can be burned and closed for their rent.