Wallet Cleanup
What is wrapped SOL (wSOL)? Why it exists and how to unwrap
Wrapped SOL (wSOL) is native SOL held in an SPL token account so DeFi programs can use it. How wrapping works, why wSOL gets stuck, and how to unwrap it.
Key takeaways
- Wrapped SOL (wSOL) is native SOL held inside an SPL token account of the native mint, so that Solana programs built for tokens can handle SOL.
- One wSOL is always backed by exactly one SOL in the same token account; wSOL has no issuer, no bridge and no peg that could break.
- Wrapping SOL takes three instructions in one transaction: create the associated token account, transfer SOL into it, and call the SPL Token program's SyncNative.
- Leftover wSOL usually comes from a swap or DeFi transaction that did not complete its final unwrap step, or from a protocol that pays out in wSOL.
- Unwrapping wSOL means closing the wSOL token account, which returns the wrapped balance and the 0.00203928 SOL rent deposit as native SOL.
The short answer#
Wrapped SOL (wSOL) is native SOL held inside an SPL token account so that programs written for tokens can use it. One wSOL always equals one SOL, because the wSOL is the SOL sitting in that account, with no issuer or bridge in between. Unwrapping means closing the account, which returns the balance and the account's rent deposit to your wallet as native SOL.
Why does wrapped SOL exist?#
Wrapped SOL exists because native SOL is not an SPL token, and most Solana DeFi programs only know how to move SPL tokens. Native SOL is the lamport balance of an account and is moved by the System Program. Every other asset, including USDC, memecoins and LP tokens, is a balance in a token account and is moved by the SPL Token program or by Token-2022.
An exchange or lending program is written against the token interface: take tokens from this token account, put tokens in that one. Supporting native SOL as a special case in every pool and every route would mean a second code path everywhere. Wrapping avoids that. SOL is placed into a token account, the program treats it like any other token, and it is turned back into SOL at the end.
That is why Jupiter and Raydium list the SOL side of a pair under the wSOL mint, So11111111111111111111111111111111111111112, called the native mint. Token-2022 defines a native mint of its own, but almost everything you will meet in practice uses the original one.
Is wSOL really worth exactly one SOL?#
Yes. wSOL is worth exactly one SOL because the token balance of a wSOL account is derived from the SOL sitting inside that same account. The SPL Token program counts the account's lamports above its rent-exempt reserve as its token amount. No company holds reserves, there is no bridge, and no mint authority exists that could issue unbacked wSOL.
That makes wSOL different in kind from wrapped assets on other chains, where a custodian or a bridge contract holds the collateral.
| Native SOL | Wrapped SOL (wSOL) | |
|---|---|---|
| Where it lives | The lamport balance of your wallet account | An SPL token account of the native mint |
| Moved by | System Program | SPL Token program |
| Pays transaction fees | Yes | No |
| Can be staked natively | Yes | No, unwrap first |
| Usable directly in DEX pools and lending programs | No, it is wrapped first | Yes |
| Shown in the wallet as | Your SOL balance | A separate "Wrapped SOL" token |
| Value | 1 SOL | 1 SOL, always |
The practical catch is the third row. A wallet holding 5 wSOL and 0 SOL cannot pay for a transaction, including the transaction that would unwrap it. Always keep a little native SOL.
How does wrapping SOL work on chain?#
Wrapping SOL is three instructions in a single transaction:
- Create the associated token account. If your wallet has no token account for the native mint yet, one is created. It needs the standard rent-exempt deposit for a 165-byte token account: 2,039,280 lamports, or 0.00203928 SOL.
- Transfer SOL into it. A System Program transfer moves the amount you want to wrap from your wallet into that token account.
- Call SyncNative.
SyncNativeis the SPL Token instruction that tells a native-mint account to recompute its token balance from its lamports. After it runs, the SOL you transferred shows up as wSOL.
Step 3 is the one that gets forgotten. If SOL is sent to a wSOL account without SyncNative, the lamports are in the account but the token balance does not reflect them until the instruction is run. Nothing is lost, because closing the account returns every lamport either way.
The deposit in step 1 is the ordinary refundable rent that every token account holds, explained in what Solana rent is. If you already have a wSOL account, wrapping only tops it up and costs just the network fee. The token program behaviour described here is documented in the SPL Token docs.
Why do you end up with wSOL you never asked for?#
Leftover wSOL almost always comes from an app that wrapped SOL on your behalf and did not unwrap all of it. When you swap SOL for a token on Jupiter, the transaction creates a temporary wSOL account, funds it, runs the swap, and closes the account again, all within one transaction. You normally never see it. wSOL becomes visible when that pattern is broken:
- Multi-transaction flows that stop half-way. Some routes and some apps split setup, swap and cleanup into separate transactions. If the swap transaction fails or you close the tab between steps, the setup transaction has already wrapped your SOL and nothing has unwrapped it. A single Solana transaction is atomic, so a failed transaction alone cannot leave wSOL behind; the residue comes from the steps around it that succeeded. Reading what happened is covered in why Solana transactions fail.
- Automatic unwrap switched off. Aggregators and trading bots often have a setting to keep wSOL between trades to save an account creation each time. With that setting on, selling a token pays you in wSOL.
- Protocol payouts. Limit orders, liquidity positions, lending withdrawals and some reward claims settle in the token the pool uses, which for SOL pairs is wSOL.
- Partial fills. An order that consumed only part of the wrapped amount leaves the remainder in the wSOL account.
If you are not sure which of these happened, paste the transaction signature into the free transaction decoder and look for the create, transfer, SyncNative and CloseAccount instructions on the native mint.
The symptom is always the same: your SOL balance is lower than expected and a token called Wrapped SOL appears in the list. The funds are neither lost nor locked.
How do you unwrap wSOL back to SOL?#
You unwrap wSOL by closing the wSOL token account. For every other token, CloseAccount fails unless the balance is zero. Native-mint accounts are the exception: closing one sends all of its lamports to the destination, which returns the wrapped balance and the 0.00203928 SOL rent deposit to your wallet in one step.
Using the SOLTidy Wrap & Unwrap tool:
- Connect your wallet. The panel reads your SOL balance and checks for an existing wSOL account.
- Switch to Unwrap. The tool always unwraps the whole balance, because closing the account is all or nothing.
- Review the summary, which shows the SOL coming back including the rent deposit.
- Sign one transaction. Your balances refresh when it confirms.
The tool is free. You pay the network fee of 5,000 lamports per signature and nothing else, there are no token approvals, and funds move only between your wallet and your own token account. The same panel wraps SOL if you need wSOL for an app that does not wrap automatically; its Max button holds back enough SOL for the fee and, if needed, the new account's deposit.
You do not need SOLTidy for this. Many wallets unwrap from the Wrapped SOL token's menu, spl-token unwrap does it from the command line, and swapping wSOL to SOL on an aggregator has the same effect. Use whichever is already open in front of you.
Two limits to know about:
- No partial unwrap. The SPL Token program has no instruction for it. Unwrap everything and wrap the part you want to keep again, which costs two network fees.
- You need native SOL for the fee. If the wallet holds only wSOL, send it a small amount of SOL first.
Should you close an empty wSOL account?#
Yes. An empty wSOL account still holds its 0.00203928 SOL rent deposit, and closing it returns that deposit. It is the same situation as any other empty token account left behind after trading, and the next app that needs wSOL will recreate the account at the same address. The exception is a trading bot or a high-frequency setup that deliberately keeps wSOL open to avoid creating the account on every trade; leave that one alone.
If your wallet has an empty wSOL account, it very likely has empty accounts for other tokens as well. The Token Account Closer closes those in bulk, up to 8 per transaction, for 5% of the rent recovered, and how much SOL you can recover from token accounts shows how to estimate the total first. Whether closing accounts is risky is answered in is it safe to close Solana token accounts. Stuck wSOL was one of the recurring small annoyances that led me to put these tools on one site, as I explain on the about page.
Bottom line#
Wrapped SOL is SOL in a token account: backed one for one, with no issuer, and convertible in either direction for the price of a network fee. It exists so that DeFi programs can treat SOL like any other SPL token, and it becomes visible in a wallet only when an app skips or fails its final unwrap step. Unwrapping closes the account and returns both the balance and the rent deposit. Keep some native SOL in the wallet so you can always pay the fee for that transaction.
Questions & answers
Is wrapped SOL the same as SOL?
In value, yes; in form, no. One wSOL is backed by exactly one SOL held in the same token account, and converting either way is always 1:1 with no price or slippage. The difference is practical: wSOL is an SPL token balance, so it cannot pay transaction fees, cannot be staked natively, and appears as a separate token in your wallet until it is unwrapped.
Why do I have wrapped SOL in my wallet when I never wrapped any?
Swap aggregators and DeFi apps wrap SOL automatically at the start of a transaction and unwrap it at the end. If a multi-step flow is interrupted, a setting disables automatic unwrapping, or a limit order, liquidity position or lending withdrawal pays out in wSOL, the balance stays in a Wrapped SOL token account. It is still your SOL, and unwrapping converts it back.
How do I convert wSOL back to SOL?
Close the wSOL token account. The SPL Token program treats native-mint accounts as a special case: CloseAccount sends all of the account's lamports, the wrapped balance plus the 0.00203928 SOL rent deposit, to your wallet as native SOL. Many wallets offer an unwrap option, the spl-token unwrap command does it from a terminal, and the free SOLTidy Wrap & Unwrap tool does it in one signed transaction.
Can I unwrap only part of my wSOL?
Not in a single step. Unwrapping works by closing the wSOL token account, which returns everything in it, and the SPL Token program has no partial-unwrap instruction. To keep some wSOL, unwrap the whole balance and then wrap the amount you want again. Swapping a specific amount of wSOL to SOL through an aggregator also works and is unwrapped inside the swap.
Does it cost anything to wrap or unwrap SOL?
Only network fees. The Solana base fee is 5,000 lamports per signature. The first wrap also funds a 0.00203928 SOL rent deposit for the new wSOL token account, which is returned in full when you unwrap. There is no spread and no exchange rate. SOLTidy's Wrap & Unwrap tool charges no service fee.
What is the wSOL mint address?
The wrapped SOL mint for the SPL Token program is So11111111111111111111111111111111111111112, known as the native mint. It is defined by the token program itself and is not a token launched by a team, so it has no mint authority that could issue unbacked supply. Tokens that call themselves wrapped SOL but have a different mint address are not wSOL and should be treated as suspect.
Continue reading

What is Solana rent? The refundable deposit on every account
Solana rent is not a recurring charge. It is a one-time deposit, sized by how many bytes an account stores, that keeps the account on chain and comes back in full when the account is closed.
Why Solana Transactions Fail: Common Errors and Fixes
A Solana transaction either never lands or lands and fails, and the two cost different amounts. This guide covers the real failure modes, what each error message means, and how to read a failed transaction's logs.
Solana Transaction Fees Explained: Base, Priority and Rent
A Solana transaction has a tiny fixed base fee, an optional priority fee, and sometimes a rent deposit that is not a fee at all. Here is how each one is calculated and what common actions cost in SOL.