Why you cannot sell your Solana token

This reads as one problem and it is six. Some are contract permissions the creator set. Some are pool conditions nobody set deliberately. Some are your own settings. Each leaves a different trace, and one transaction in an explorer tells you which.

Reviewed 26 August 2026 Troubleshooting Contract checks By the Solana Volume Bot Pro team

Six different problems wearing the same shirt

"I cannot sell" describes an outcome, not a cause. The causes fall into three families and they have completely different implications.

FamilyCauseWho decided it
ContractFreeze authority is set and usedThe token creator
Transfer restrictions via extensionsThe token creator
PoolLiquidity withdrawn or never seededThe liquidity provider
Depth too thin on the sell sideNobody, it is a market condition
YoursSlippage tolerance too tightYou
Insufficient SOL for feesYou

The first family is a decision made against you. The second is a situation. The third is a setting. Working out which family you are in takes one transaction, and it changes entirely what you should do next.

Contract permissions the creator still holds

Two fields on the mint account decide whether the creator retains power over your holdings, and both are visible in any explorer in seconds.

Freeze authority. If this is set rather than disabled, whoever holds it can freeze token accounts. A frozen account cannot transfer, which means it cannot sell. There are narrow legitimate uses for this, and for an ordinary community token there is essentially no good reason for it to remain enabled.

Mint authority. This does not block selling directly, but it means supply can be created at any time, which changes what your holding is worth. It belongs in the same check because you are already on the same screen.

Beyond those, newer token extensions allow behaviour to be attached to transfers themselves. Legitimate applications exist, and so does the version where a hook exists to restrict who can move tokens and when. If a token uses extensions, that is a thing to understand before buying rather than to discover when selling.

The pool cannot absorb your sell

This is the most common cause by a wide margin and the one least likely to be malicious.

Pools are frequently asymmetric. If liquidity was seeded mostly on one side, or if buying pressure has drained one reserve, a sell of the same size that bought cleanly can move the price several percent. Your transaction then either fills terribly or exceeds your tolerance and reverts.

The more severe version is liquidity that has been withdrawn entirely. There is then nothing to sell into, and interfaces will either decline to quote or quote a price that amounts to a total loss. This is checkable directly: open the pool and read the reserves on both sides.

Either way the diagnosis is the same test in reverse. Simulate a sell of a realistic size and read the price impact. If it is severe, the constraint is depth, and no setting fixes depth. The liquidity guide covers why this asymmetry appears and how to test both legs properly.

Your own settings

Before concluding anything about the token, rule out the two boring explanations.

Slippage too tight. If your own sell moves the price more than your tolerance allows, the transaction reverts. This is indistinguishable from a restriction in most interfaces, and it is far more common. Widening the tolerance tells you immediately which one you were hitting, at the cost of a worse fill if it succeeds.

Not enough SOL. Selling requires a transaction, and transactions require SOL for fees regardless of what you are selling. A wallet holding only the token cannot sell it. Obvious in hindsight, responsible for a surprising share of reports.

Diagnosing it in one transaction

  1. Attempt the sell and let it fail. You need the transaction signature.
  2. Open it in an explorer and read the program logs. The failing instruction and its error are named there.
  3. Slippage error? Depth or tolerance. Widen tolerance once as a test, then look at the pool.
  4. Account frozen or transfer disallowed? Contract-level restriction. No setting fixes this.
  5. Insufficient funds? Fund the wallet with a little SOL and retry.
  6. No route or no quote at all? Check whether the pool still holds reserves.

That sequence takes about two minutes and replaces a great deal of speculation. The habit of opening the failing transaction rather than retrying with different settings is the single most useful thing anyone can learn here, and the failure guide covers how to read the common errors.

One pattern worth recognising while you are in the logs. If the sell fails at a tolerance that a buy of the same size succeeded at an hour earlier, the pool has moved rather than the token having changed. That is a market condition and it will keep happening at that size until depth improves. If instead the failure is immediate and identical at every tolerance you try, including absurdly wide ones, you are almost certainly looking at a restriction rather than a price problem. The difference between those two shows up in about three attempts and saves a great deal of arguing.

How to avoid this before buying

  • Check freeze and mint authority on the mint account. Five seconds, rules out the deliberate cases.
  • Check whether the token uses extensions and what they do.
  • Simulate a sell before you buy. Aggregators quote both directions without executing. If the sell quote is already bad at your intended size, you know what exiting will look like.
  • Read the reserves, not the headline liquidity figure, and read both sides.
  • Check whether liquidity is locked and for how long, since an unlocked position can be withdrawn at any moment.

The on-chain reading guide walks through each of these screens with what to look for, and the whole set takes under five minutes once you know where the fields live.

If it is your own token

Holders reporting that they cannot sell is an emergency regardless of the cause, because the accusation spreads faster than the explanation.

Check freeze authority first and disable it if it is set, because that is the item people will find and it is the one that looks worst. Then check pool depth on the sell side specifically, since a thin sell side produces exactly the experience holders are describing without anyone having done anything. Then say publicly what you found, with the transaction as evidence.

The failure mode to avoid is silence while you investigate. In the absence of an explanation, holders supply their own, and the one they supply is always the contract-level version.

Frequently asked questions

01What is a honeypot token?

A token engineered so that buying works and selling does not. On Solana the usual mechanisms are contract-level permissions, such as a freeze authority that can freeze accounts, or transfer restrictions applied through newer token extensions. The distinguishing feature is that the restriction is deliberate rather than a market condition.

02How do I check freeze authority before buying?

Open the mint account in any explorer. Freeze authority and mint authority are both displayed as fields. If freeze authority is set rather than disabled, an account holding that token can be frozen by whoever holds it, which is rarely appropriate for an ordinary token and takes five seconds to check.

03Why does my sell fail but the buy worked?

Most often because the pool has more depth on one side than the other, so a sell moves the price far more than a buy of the same size did. It can also be slippage set too tight for the movement your own order causes. Both look identical from the interface and are distinguished by reading the transaction error.

04Can a token be sold if there is no liquidity?

Not meaningfully. If liquidity has been withdrawn there is nothing to sell into, and the interface will either fail to quote or quote a price so bad that it is effectively a total loss. This is a different situation from a restriction, and it is visible by checking whether the pool still holds reserves.

05Does a failed sell cost money?

Yes. The base fee and any priority fee are charged whether the transaction succeeds or fails, so repeated attempts against a token that will not sell accumulate cost while achieving nothing. Diagnose before retrying rather than retrying with a higher tolerance each time.

06What are token extensions and can they block transfers?

They are a newer standard that allows additional behaviour to be attached to a token, including hooks that run on transfer. Legitimate uses exist, but the same mechanism can be used to restrict who may transfer and when. If a token uses extensions, that is worth understanding before buying rather than after.

Keep reading

Check the pools before you commit

The console reads every venue holding liquidity for a mint, which answers the depth half of this question in seconds.

Open the volume console