Work through these in order. The first two cover most cases.
First, Which Unstake Should You Use?
Both return your SOL. The difference is speed against cost.
Delayed unstake | Instant unstake | |
Speed | End of the epoch, then you claim | Immediate |
Cost on Native, Select, Recipes | Free | 0.10% to 0.40%, set by the market |
Size limit | None | Limited by available liquidity |
Delayed is the right default. It is free on Marinade Native, Select, and Recipes, and it always works at any size. Use instant only when you actually need the SOL now.
Worth knowing before you choose: an instant unstake costs the equivalent of 3 to 13 epochs of rewards, roughly one to four weeks. If you have been staked for less time than that, you will receive slightly less than you originally staked. That is the fee, not a bug. See What Fees Does Marinade Charge?
1. Your Stake Is Still Activating
Newly staked SOL is not immediately unstakeable. It must finish activating first, which takes until the end of the current epoch (about 2 days). If your position shows as activating rather than active, wait for the epoch to turn.
2. Instant Unstake Has No Liquidity Right Now
Instant Unstake depends on what liquidity providers can fill at that exact moment, and that changes constantly. If it is greyed out or the quote looks worse than you expected, liquidity is the usual reason.
Large positions have been filled at sizes up to 100,000 SOL, but capacity is never guaranteed and a position that large may still find no quote, or only a poor one, at a given moment.
Unstake in portions and come back for the rest. Smaller amounts are far more likely to fill well.
Or use Delayed Unstake, which always works at any size and returns the full value of your stake without a liquidity cost.
See also Instant Unstake Cannot Be Selected.
3. Your Amount Is Below the Minimum
Two minimums apply, depending on what you are unstaking:
mSOL delayed unstake has a minimum of 1.0043 SOL. Below that, use instant unstake instead.
Instant unstake is only available for stake positions of 1 SOL or more, which is a Solana-level constraint on stake accounts.
4. Your Delayed Unstake Is Not Claimable Yet
Delayed Unstake completes at the end of the epoch, then you return to the app to claim. If you started it in roughly the last 4 hours of an epoch, the stake may not deactivate until the end of the following epoch, so the wait can be closer to 4 days than 2.
The countdown in the app reflects current epoch progress and shifts slightly as block times vary.
5. You Have No SOL for Network Fees
Every Solana transaction needs SOL in the wallet to pay the network fee, including transactions that return SOL to you. If your wallet is at or near zero SOL, nothing will confirm.
We recommend keeping at least 0.03 SOL in your wallet at all times to cover fees and account rent. Top up to at least that much and try again.
6. Your Wallet Is Not Signing in Time
Solana transactions expire quickly. Hardware wallets are the usual cause, because confirming on the device takes longer than the transaction stays valid. If you see transaction expired before signing, see Using Marinade With a Hardware Wallet.
7. You Are Trying to Unstake the Wrong Product
USDC deposits are not staked SOL and are not withdrawn through the unstake flow. See How to Withdraw from the USDC Vault.
FAQ
Q: How much of my position can I unstake?
A: All of it. Delayed Unstake has no size limit. Instant Unstake is limited by available liquidity at that moment, so the app may quote less than your full position.
Q: Will I lose rewards by unstaking?
A: Rewards already earned are yours. Stake that is unstaked partway through an epoch does not earn that epoch's rewards.
Q: My wallet is asking me to approve a much larger amount than I am unstaking.
A: That is expected for an instant unstake from a native position. See Why Does My Wallet Show a Different Amount Than I Am Unstaking?
Q: I have tried everything here and it still fails.
A: Start a conversation with us and include your wallet address, which product you are unstaking, the amount, and a screenshot of the error. That is everything we need to look it up.
