Takes about three minutes
Every token you have ever held made your wallet open a token account, and each one holds a deposit of about 0.00204 SOL. Selling the token does not return it. This is how you get all of it back, from the first paste to the SOL landing in your balance.
Copy your Solana address, the one you share when somebody sends you tokens. In Phantom or Solflare it is at the top of the wallet screen, one tap copies it.
Paste it into the scanner on the home page and press Scan wallet. No connection, no signature, no popup. Within a couple of seconds you see how many dead accounts you have and exactly how much SOL is sitting in them.
If the number is zero, stop here. Either your wallet is new, or a trading bot has been closing accounts for you already. Nothing to do.
Solana refuses to run any transaction if paying its fee would drop the wallet under 0.00089 SOL, which is the rent exempt minimum for a plain account. A wallet that has been drained sits right on that line and cannot send anything at all.
If that is your wallet, the scanner tells you so instead of offering a claim that could only fail. Send about 0.002 SOL in from any exchange or another wallet, reload the page, and you are clear.
That fee is paid to Solana validators. It is a fraction of a cent and it does not come to us.
Press Connect wallet and a dialog opens with Phantom, Solflare, Trust Wallet and Backpack. Anything installed in your browser shows Connect next to it and works in one click.
On a phone, tap your wallet and the page opens inside the wallet app, where connecting works normally. On a desktop with no extension, press Scan code and point your phone camera at it. The wallet app opens salvagesol.com in its own browser and you finish the claim on the phone.
Connecting shares your public address and nothing else. It does not give the site permission to move anything.
Before anything is signed, the panel shows you the whole picture: how many dead accounts, how much is locked, what reaches your wallet.
The site then reads the chain one more time so the batch is built from live data, and runs every batch through a Solana node as a test. If any batch would fail, you are told before a wallet popup ever appears, and nothing has cost you anything.
Your wallet shows you the actual transaction. Read it. It closes empty token accounts and sends the stated service amount, and there is nothing else in it. If a transaction ever shows you something you do not recognise, reject it, on this site or any other.
Approve, and the SOL is in your balance within seconds.
This is the part that surprises people, so it is worth understanding before you start. A Solana transaction has a hard size limit of 1232 bytes. Twenty account closures plus the rest of the instructions fill it almost exactly, so every 20 dead accounts needs its own transaction.
| Dead accounts | Transactions | Roughly what you recover | What it feels like |
|---|---|---|---|
| 20 | 1 | 0.04 SOL | One approval, done in seconds |
| 100 | 5 | 0.20 SOL | A few approvals, under a minute |
| 500 | 25 | 1.02 SOL | Desktop: often one prompt. Phone: 25 taps |
| 2000 | 100 | 4.08 SOL | Worth doing on a desktop extension |
On a desktop extension most wallets can take the whole set in a single approval, so 500 accounts is still one prompt. Inside a phone wallet app that batch approval is unreliable, so this site deliberately asks for one transaction at a time there. It is more tapping, but it finishes, and a batch that silently never returns does not.
You can stop at any point. Each transaction stands on its own. Everything you already approved has landed and is yours, and the rest simply never happened. Come back later and scan again to pick up where you left off.
Good. That instinct is worth more than any promise on a web page, so here is a way to test it that costs you nothing:
Now the worst case is a wallet holding 0.003 SOL. Do this on any site that asks you to sign something, not just this one.
Two kinds get left out of your total on purpose. Frozen accounts are locked by the token issuer and the chain will not close them. And where the close authority was handed to somebody else, the deposit would go to them rather than to you, so we do not touch it. Both are counted separately in the scan so the number you see is the number you actually get.
Also read: what this site can and cannot do · disclaimer