What Is a Solana Tax Token? Token-2022 Transfer Fees
A Solana tax token charges a Token-2022 transfer fee. Where the fee sits, who can collect or change it, and what a buyer should check first.

A Solana tax token is a Token-2022 mint with the transfer fee extension turned on. Every transfer of it pays a fee in the token itself, set as a rate in basis points and capped per transfer. The surprise is where that fee goes first: nowhere. It stays inside the account that received the tokens.
That one design choice explains the rest of a Solana tax token: who can collect the fee, who can change the rate, and why some accounts refuse to close. "Tax" here is crypto slang for this transfer fee and has nothing to do with government taxes. The rules below come from the Token-2022 program and Solana's transfer fee documentation.
How the fee on a Solana tax token is calculated
The rate is set in basis points. One basis point is 0.01%, so 100 is 1%, and the program accepts anything up to 10,000, which is 100%. Next to the rate sits a maximum fee: the most a single transfer can ever pay.
For each transfer the program takes the rate of the amount sent, rounds up to the token's smallest unit, then applies the cap. Here is a token with a 2% fee (200 basis points) and a cap of 50 tokens.
| Amount sent | 2% of it | Fee charged | Recipient can spend |
|---|---|---|---|
| 1,000 | 20 | 20 | 980 |
| 2,500 | 50 | 50 | 2,450 |
| 10,000 | 200 | 50 (capped) | 9,950 |
| 100,000 | 2,000 | 50 (capped) | 99,950 |
Up to 2,500 tokens the fee is a clean 2%. Past that it stops growing, so the 100,000-token transfer pays an effective 0.05%. Read the rate and the cap together, never the rate alone.
The chain stores the cap in the token's smallest unit, so on a 6-decimal token a 50-token cap is written as 50,000,000.
Where the tax goes: withheld in the recipient's account
When 1,000 tokens move in that example, the recipient's token account records 980 as balance and 20 as withheld. Both live in the same account, but the recipient cannot spend the withheld part. Nothing reaches the creator, a treasury or the mint at transfer time.
The reason is throughput. One shared fee account would be locked for writing on every transfer, so parallel transfers would queue behind it. Leaving the fee where it lands lets them run side by side, a trade-off the SPL Token-2022 extension guide spells out.

A creator who sets a fee and waits for a wallet to fill will wait forever. If you are still choosing a token program, the comparison of Token-2022 and SPL extensions shows what else changes.
Two authorities, two different powers
The extension carries two authorities of its own, separate from mint and freeze authority. They can be the same wallet. They do not have to be.
| Authority | What it can do | If revoked |
|---|---|---|
| Transfer fee config authority | Set a new rate and a new cap | No further fee change can be scheduled |
| Withdraw withheld authority | Move withheld fees into any token account of the same mint | Withheld fees can never be moved out |
Each is revoked with the ordinary set-authority instruction, and a revoke is permanent.
Changing the fee after launch
While the config authority exists, it can set a new rate and cap, up to 100%. The program schedules the new fee to start two epochs after the epoch in which it was set; a comment in its source says this is to avoid rug pulls at the end of an epoch. An epoch is a fixed number of slots, the span one leader schedule covers. Until then the old fee applies.
The mint stores both the current fee and the scheduled one with its starting epoch, so a pending increase is visible on chain before it bites. Revoking the config authority blocks any further change but does not cancel one already scheduled.
Harvest versus withdraw
Three instructions move withheld fees, and only one of them is open to everyone.
- Withdraw from accounts. The withdraw withheld authority signs, and fees move from token accounts straight into a token account it picks.
- Harvest to the mint. Fees move from token accounts into a withheld balance on the mint. Anyone can send it, and nobody receives anything.
- Withdraw from the mint. The authority signs again, and the harvested balance moves to a token account it picks.
Harvesting is housekeeping, not collecting. Anyone can sweep fees onto the mint; only the authority can take them off it.
The Token-2022 Tax Collector runs both paths for the authority wallet. Its scan lists the mint's accounts that hold withheld fees and needs no wallet. The sweep is direct withdraw batches, or harvest batches plus one withdraw from the mint, with one signature per batch. The service fee is a share of the collected value, taken in SOL in the last batch with a small minimum; the tool page shows the live rate.
If you track several kinds of claimable balance, the Claim Center page lists the tax your wallets can collect next to creator fees, LP fees and locked rent.

What revoking the withdraw authority does
It does not stop the fee. Transfers keep paying it and it keeps piling up in recipients' accounts. What disappears is the only key that could move it out. Harvest still works, but every withdraw needs that authority, so the fees stay locked for good. Holders keep paying a fee nobody can ever collect, and the Tax Collector marks such fees as locked instead of offering a sweep.
Why an account holding withheld fees cannot close
Token-2022 refuses to close an account whose withheld amount is above zero, even when its spendable balance is zero. The SPL guide puts it plainly: an account holding any tokens, withheld ones included, cannot be closed.
The fix is the permissionless harvest; the SPL guide shows its command-line close sending one first. A sweep by the withdraw authority clears the account too. Our empty token account closer marks these rows as blocked by withheld fees and links them to the Tax Collector. Why the rent deposit is worth getting back is covered in pulling SOL back from empty token accounts.
Reading a Solana tax token as a buyer
Every number that matters sits in the mint's transfer fee extension. Before buying, check four things.
- The current rate and the cap, read together.
- Whether a different fee is scheduled, and from which epoch.
- Whether the config authority is revoked. If not, the rate can reach 100% two epochs after someone decides so.
- Who holds the withdraw withheld authority, or whether nobody does.
Pasting the mint into the Tax Collector shows the rate, the cap, the withdraw authority and any scheduled change without connecting a wallet. The config authority sits in the same extension, so any explorer that decodes Token-2022 mints can show it.
A trade is also a transfer. Buying from a pool is a transfer to you, so the fee is withheld in your account; selling is a transfer to the pool, so it is withheld again there. Below the cap, a 5% fee costs close to 10% of your tokens on a round trip, before any price move.
At a 100% rate with the cap lifted out of reach, a transfer delivers nothing, the trap described in what a honeypot token is. A high or changeable fee belongs next to the eight rug pull checks before you buy.
Where transfer fees cause friction
The plain transfer instruction fails on these mints. The SPL guide says transfers must use transfer_checked or transfer_checked_with_fee, so a script built on the older call breaks on a Solana tax token. Some tools refuse them outright: our own Flash Volume does not support Token-2022 mints with transfer fees or hooks. For pools and aggregators, read the venue's own documentation before planning a launch around one.
Creating a tax token and collecting what it earns
The Token-2022 creator tool sets the fee at mint time: a percentage, a maximum fee per transfer and a fee recipient wallet. That wallet becomes the withdraw withheld authority; it does not receive transfers. Your connected wallet keeps the config authority unless you tick Revoke Transfer Fee Authority, and the form warns that keeping it lets you raise the fee later, up to 100%.
The success screen then points to the Tax Collector, because the fee builds up in holder accounts, not in any wallet.
Decide both authorities before you mint. Keeping the config authority buys flexibility and costs buyer trust. Revoking the withdraw authority buys trust and locks every fee away. A revoke cannot be undone.
Frequently asked questions
Does the creator's wallet receive the tax automatically?
No. The fee is withheld inside each recipient's token account. The withdraw withheld authority has to move it out, straight from those accounts or after a harvest onto the mint.
Can a Solana tax token have a different buy tax and sell tax?
No. The extension charges one rate and one cap on every transfer, whichever direction it goes. A pool sending you tokens and you sending tokens to a pool are both ordinary transfers.
How quickly can a creator raise the fee?
A new rate starts two epochs after the epoch in which the config authority sets it, and it can go as high as 100%. Until then the scheduled fee sits on the mint where anyone can read it.
What happens to withheld fees if the withdraw authority is revoked?
They stay locked for good. Harvest can still move them onto the mint, but every withdraw instruction needs that authority.
Why will my empty token account not close?
It still holds withheld fees, and Token-2022 will not close it until they are gone. A harvest to the mint, which anyone can send, clears them.
This article explains how the Token-2022 program works. It is not financial, investment, legal or tax advice. Solana tokens are highly volatile and many lose all their value. Never risk money you cannot afford to lose.


