Collect Solana Token-2022 Transfer Fees
Sweep the transfer fees your tax token has withheld in holders' accounts into a wallet you choose.
Wallet not connected
Connect your wallet to collect the transfer fees your token has withheld. You sign every action yourself, and nothing is custodial.
How to collect Token-2022 transfer fees
- Connect the wallet holding the withdraw authority. That is the wallet nominated when the token was created, and no other wallet can collect.
- Paste the token's mint address and press Read. This is free and signs nothing.
- Check what came back: the fee rate, how many accounts are holding a withheld amount, and the total waiting to be collected.
- Confirm where the fees should go. It must be a token account for this mint, not a wallet address, and it defaults to your own.
- Collect. A long list is split across several transactions, so your wallet asks more than once, and the biggest accounts are swept first.
- The figures are re-read from the chain afterwards, so what you see at the end is what is genuinely left rather than what we hoped happened.
Common questions
Where are my transfer fees, and why are they not in my wallet?
They are withheld inside the token accounts of whoever received the tokens. The Token-2022 program does not send fees anywhere when it charges them: it marks a portion of the recipient's balance as withheld, unspendable by them, and leaves it there until the withdraw authority collects it. That is why a tax token can charge for months and show nothing in the creator's wallet.
Who is allowed to collect?
Only the wallet nominated as the withdraw-withheld authority when the token was created. Nobody else can, including us. If you connect a different wallet, this page tells you so before you sign anything rather than letting the token program refuse you afterwards.
Why does my wallet ask me to approve several times?
Because every account being swept is another address inside the transaction, and a Solana transaction has a hard 1232-byte limit. We fit 28 accounts per transaction, which is measured against that limit rather than guessed, so a token with 200 holders owing fees takes eight approvals.
What happens if a batch fails partway through?
Whatever already confirmed stays collected. Swept accounts have nothing withheld left in them, so scanning and running again picks up only what remains. Nothing is collected twice and nothing is lost. This is also why the biggest accounts are swept first: an interrupted run has still collected most of the money.
It says nothing is withheld. Is something broken?
Probably not. Fees only accumulate when the token actually moves. A token that nobody has transferred since your last collection has nothing to sweep, and a brand new token that has not traded yet has never withheld anything.
Can I collect fees from a normal SPL token?
No, and there is nothing to collect. Transfer fees are a Token-2022 feature. A standard SPL token has no mechanism to withhold anything, so this page tells you plainly when you paste one rather than showing an empty result you would have to interpret.
Does collecting take the tokens away from holders?
No. The fee was already taken at the moment of transfer, and the withheld portion was never spendable by the holder. Collecting moves money that is already yours out of the accounts it was parked in. It does not touch anyone's usable balance.
Why this page has to exist
A tax token charges a fee on every transfer, and almost everyone assumes that fee arrives somewhere. It does not. The Token-2022 program withholds it inside the receiving account, where it sits: not spendable by the holder, not visible in your wallet, not going anywhere.
Collecting is a separate, deliberate act. Without it, a tax token is a token that charges people forever and pays its creator nothing, which is the worst of both worlds.
How the collection actually works
The extension offers two routes. One sweeps fees from accounts into the mint and is permissionless, then a second step moves them from the mint to a wallet and needs the authority. The other does both at once and needs the authority for the whole thing.
This page uses the second, because you are the authority. It costs one transaction instead of two, and it is atomic: your fees never sit parked in the mint in a half-collected state that a failed second step would leave behind.
Two details that surprise people
- The destination is a token account, not a wallet. Fees are tokens, and tokens live in token accounts. Pasting a wallet address here will not work. The field defaults to your own account for this mint, which is what you want unless you are sweeping to a treasury.
- Big tokens take many approvals. Each account being swept is another address in the transaction, and Solana caps a transaction at 1232 bytes. Twenty-eight accounts fit per transaction, so a widely-held token is a lot of signatures. There is no way around this, and anything claiming otherwise is doing something else.
Collect regularly, or explain why not
Withheld fees are visible on-chain to anyone who looks, and so is every collection you make. If you charge a fee, people will eventually work out how much you have taken and when. That is not a reason to avoid collecting; it is a reason to be the one who says it first.
Related tools
- Create a token that charges a fee: Tax Token Creator.
- See how a taxed token reads to a buyer, including whether the rate can still be raised: Rug Checker.
- A plain token with no fee at all: Create a Solana Token.
