How to Migrate a Solana Wallet: Move Every Token, NFT and SOL to a New Address
A leaked key, a new hardware wallet, a wallet you just want to retire. Moving one thing at a time takes an afternoon; moving everything at once takes a list and one confirmation.
Short answer: open solback.app/tools/asset-migrate, choose single-wallet (connect the wallet in your browser) or multi-wallet (paste private keys, one per line), enter the new address, decide whether the SOL moves too, review each wallet's asset list, and run. Every token and NFT that a normal transfer can move is sent to the new address; frozen accounts and compressed NFTs are skipped rather than failing the run. Transfers carry no SolBack fee; if you turn on rent recovery, 20% of the recovered rent supports the site.
Why would you migrate a whole wallet?
The reasons are usually urgent or tedious, and sometimes both.
- The key may be compromised. A phishing site, a bad extension, a laptop that went missing. Everything has to leave that address now, and the order does not matter as long as it is fast.
- Moving to a hardware wallet. You bought a Ledger and want the holdings you accumulated in a browser wallet to live there instead.
- Consolidating. A dozen wallets from a dozen seasons, each with a few tokens and NFTs, and you want one address to look at.
- Handing over. Transferring a project treasury or a collection to a new team wallet.
Done manually, that is one transfer per token, one per NFT, then the SOL — each a wallet prompt, each a chance to paste the wrong thing. A migration tool builds the whole list, shows it to you, and runs it.
How do you migrate a Solana wallet with SolBack, step by step?
Step 1: Open Batch Asset Migration and pick a mode
Go to solback.app/tools/asset-migrate. Two modes:
- Single-wallet — connect the wallet you want to empty. Every transfer is signed through the wallet adapter, so the private key never leaves Phantom, Solflare or whichever wallet you use. This is the mode for "I have one wallet and a new address".
- Multi-wallet — paste the private keys of several wallets, one per line (base58 or the Solana CLI array format). The keys are decoded in your browser's memory, used to sign locally, and never uploaded. This is the mode for retiring a set of old wallets in one go.
Step 2: Enter the destination and decide about SOL
Paste the new address. Then decide whether the SOL balance moves too. Moving it empties the wallet completely; leaving it behind keeps a reserve for fees, which matters if you plan to do anything else with the old wallet, such as closing its empty accounts later.
The destination is the one field with no undo. Solana transfers are final. Paste the address, verify the first and last characters against where you copied it from, and for a large migration send one small item first and watch it land before you run the rest.
Step 3: Review what will move
Each wallet row has a details view listing exactly which tokens and NFTs are about to be transferred, with an estimate of their value and of the rent locked in their accounts. Assets a plain transfer cannot move are left out of the list rather than failing the run. Read this before you run — it is the last cheap moment to notice a wallet that should not be in the list.
Step 4: Optionally recover the rent
Once a token account is emptied, it still exists and still holds its funded SOL balance. Turn on rent recovery and each emptied account is closed in the same run, releasing that actual balance. Of the rent recovered this way, 20% goes to SolBack as a donation and 80% goes to the rent address you choose — the destination, or somewhere else. The transfers themselves carry no deduction; switch the option off and the run costs nothing beyond network fees.
Step 5: Run and confirm
Start the migration and confirm the dialog. Each wallet's transfers are signed locally and settle on their own; the row status updates as each one confirms. Stay on the page until the list is done.
What gets skipped, and why?
Some things cannot be moved by an ordinary transfer, and the tool skips them instead of letting them break the run:
- Frozen token accounts — the token's freeze authority has locked them; nothing can move until it thaws them.
- Programmable NFTs with transfer rules — royalty-enforcing pNFTs that only allow transfers through approved programs.
- Compressed NFTs — they live in a Merkle tree, not a token account, and need a different instruction entirely.
- Staked or deposited positions — SOL in a stake account or tokens sitting in a DeFi position are not in the wallet to begin with. Unstake or withdraw first.
Two Token-2022 cases are also left out: accounts marked non-transferable, and accounts with a transfer hook. Everything else — SPL tokens, other Token-2022 tokens, ordinary NFTs — moves. One more Token-2022 detail: an account still holding un-harvested transfer fees is moved but not closed, so its deposit is not returned by rent recovery.
What if the old wallet cannot pay its own fees?
The classic dead end: a wallet holds tokens but its SOL was spent down to nothing, so it cannot pay to send them out. In multi-wallet mode, turn on the unified gas payer and paste the private key of a wallet that does have SOL. It pays the fees for every transaction in the run — and the current 0.00148844 SOL minimum for any standard token account the destination is missing. The tool flags wallets whose balance looks too low before you start.
What does a migration cost?
| Item | Cost | Who receives it |
|---|---|---|
| Token, NFT and SOL transfers | No SolBack deduction | — |
| Network fee, per transaction | ≈ 0.000005 SOL per signature — 0.00001 SOL when the gas payer signs alongside the source wallet — plus any priority fee | Validators |
| New standard token account at the destination | 0.00148844 SOL currently, reclaimable later | Locked in the account |
| Rent recovery (optional) | 20% of recovered rent | SolBack; the other 80% goes to your rent address |
Migrate, sweep or collect — which tool?
Three SolBack tools move assets out of wallets, and they answer different questions:
- Batch Asset Migration (this guide) — move everything a wallet holds, tokens and NFTs alike, to one address.
- Batch Collector — sweep SOL, or one specific token, out of many wallets into one address. Faster when you only care about one asset.
- Batch Burn — when the holdings are worthless and you only want the rent back, burn instead of moving.
Not sure what a set of wallets holds? Run Batch Query first — it reads balances by address and needs no keys.
Move everything to the new address
Tokens, NFTs and SOL from one wallet or a whole list, reviewed before it runs. Transfers carry no SolBack deduction.
Open Batch Asset Migration Free for transfers. With rent recovery on, 20% of the rent released from closed accounts supports the site.Still have questions about migrating a Solana wallet?
- Can I migrate a wallet without pasting its private key?
- Yes. Single-wallet mode uses the wallet you connect in the browser — Phantom, Solflare, OKX and the usual adapters — and signs every transfer through it, so the key never leaves the wallet. Multi-wallet mode is for emptying several wallets in one run and does need their private keys, which are decoded in your browser's memory and never uploaded.
- What cannot be migrated?
- Anything that a plain transfer cannot move: token accounts that are frozen, programmable NFTs whose rules block transfers, and compressed NFTs, which live in a Merkle tree rather than a token account. The tool detects these and skips them rather than letting them fail the run. Tokens locked in staking or DeFi positions also stay where they are — withdraw them to the wallet first.
- What if the old wallet has no SOL for fees?
- In multi-wallet mode, turn on the unified gas payer and paste the private key of a wallet that has SOL. It becomes the fee payer for every transaction in the run, so a wallet that holds tokens but zero SOL can still send them out. Make sure the gas wallet holds enough for the whole list, including the rent for any token accounts the destination is missing.
- Why does the destination need new token accounts, and who pays?
- A wallet needs one token account per token it holds. If the destination has never held a token you are moving, a standard account is created for it at the current 0.00148844 SOL minimum. The fee payer covers it — the source wallet, or the gas wallet if you enabled one. That SOL is not lost; it sits in the new account and can be reclaimed later.
- What does the rent recovery option deduct?
- With rent recovery on, each token account that has been emptied is closed in the same run and its deposit comes back. Of that recovered rent, 20% goes to SolBack as a donation and 80% goes to the rent address you set. The transfers themselves — tokens, NFTs, SOL — carry no deduction at all. Turn the option off and the run costs nothing beyond network fees.
- Is the migration reversible?
- No. Solana transfers are final. A wrong destination address means the assets are gone — there is no support desk on the chain. Paste the address rather than typing it, verify the first and last characters against the source, and if the amount is large, send one small item first and confirm it arrives.