Token-2022 Tax Collector
Token-2022 Tax Collector moves the transfer tax of a Token-2022 mint into your treasury. A mint with the transfer fee extension does not send its tax anywhere: each transfer leaves the fee inside the receiving token account as a withheld amount, and only the mint’s withdraw authority can move it out. The tool scans the mint for free, lists every account holding withheld fees, and builds the sweep in batches that the authority wallet signs.
Token-2022 Tax Collector j.tools/en/tools/token2022-tax-collector
Open toolPlatform fee
4% of the collected value, minimum 0.05 SOL
Network fee, rent and transaction value are separate.
When this tool fits
#when-this-tool-fits- You created a Token-2022 token with a transfer fee, for example with Token-2022 Creator, and the tax has been building up in holders’ accounts.
- Your wallet is the mint’s withdraw authority and you want the withheld tokens in one treasury account.
- Close Account marked a Token-2022 account with Withheld fees. That account cannot be closed until the fees are withdrawn or harvested, and its Collect withheld fees link opens this page with the mint filled in.
- You only want to see how much tax is waiting. Scanning is free and needs no wallet.
- You run several authority wallets and want one table of every tax token they collect for.
Before you start
#before-you-start- The mint address of a Token-2022 token created with the transfer fee extension. A classic SPL mint, or a Token-2022 mint without a transfer fee, is refused under the picker. The difference is explained in SPL vs Token-2022.
- To collect, a connected wallet (how to connect) that is the mint’s withdraw authority, either the header wallet or a Local Signer key. Anyone can scan; only that wallet can sweep.
- Enough SOL in the authority wallet for the network fee of every transaction, the service fee, and rent when the treasury’s token account does not exist yet.
- For several wallets, their private keys, added with Import in the bar at the top. Keys stay in this tab’s memory, and a reload forgets them. A wallet added without its key can be read but cannot collect.
Use only short-lived operational wallets; never enter a seed phrase or a long-term wallet key.
How to use it
#how-to-use-it-
Pick the mint and scan
Connect your wallet and pick one of your tax tokens from the chips, or paste any Token-2022 mint. The scan starts on its own. It lists every token account holding withheld fees, largest first, and shows the fee rate, the maximum fee per transfer, and the withdraw authority, with a You badge when that is your connected wallet.
-
Choose accounts, method and destination
Keep All, or pick Top 100 or Top 10, and set a Min ≥ amount to leave dust out. Leave Skip Frozen on to keep frozen accounts out of the sweep. Choose Direct Withdraw or Harvest To Mint, then Authority Wallet or Custom Treasury as the destination.
-
Sign the batches
Click Collect from N accounts. The server checks the authority again, re-reads every selected account, and splits them into transactions. Your wallet asks you to sign each one in turn. The result shows how much was collected, how many transactions landed, and the service fee, with Rescan to read the mint again.
Key settings
#key-settings- Mint: The Token-2022 mint whose tax you collect. With a wallet connected, the chips and the picker list the mints that wallet is withdraw authority for. That list comes from the wallet’s own Token-2022 holdings and a search of common mint layouts, so a mint can be missing from it; paste any other mint by hand. Token-2022 Creator (after a mint with a transfer fee) and Close Account open this page with the mint already filled in.
- Token facts: After the scan, one line shows the current fee rate, the maximum fee per transfer, whether the mint has a transfer hook, the withdraw authority (or revoked), and a scheduled fee change with its epoch when one is set.
- Withheld Accounts: Token account, owner, pending amount, its SOL value when the token has a price, and state (Ready or Frozen). Rows show 100 at a time with Show More. Export CSV saves every row the scan found, with its account, owner, withheld amount, balance and frozen flag.
- Quick picks: All selects every selectable row up to 2,000, the most one sweep carries, largest first. Top 100 and Top 10 appear when there are more rows than that. Ticking a row by hand switches to your own pick.
- Min ≥: Accounts holding less than this amount of the token are left out and cannot be ticked. Use it for accounts that would cost more in network fees than they return.
- Skip Frozen: On by default. Leaves frozen token accounts out of the selection and the sweep.
- Method: Direct Withdraw moves the fees from each batch of accounts straight to the destination. Harvest To Mint first moves them onto the mint in batches, then one final withdraw takes everything to the destination. Tax already sitting on the mint is included either way. A transaction fits about 25 accounts on a direct withdraw and 26 on a harvest batch.
- Destination: Authority Wallet sends the fees to the connected wallet’s token account for this mint. Custom Treasury takes any wallet address and sends them to that wallet’s token account. A missing token account is created inside the sweep, paid by the authority wallet.
- Collect button: Shows the account count and the amount, in SOL when the token has a price. It stays disabled until the scan is done, a wallet is connected, that wallet is the withdraw authority, the destination is a valid address, and at least one account is selected or tax sits on the mint.
- Imported wallets: With an imported set, the page becomes a Wallet × token table: one row per mint a wallet is withdraw authority for, with fee rate, account count, pending amount, SOL value and transactions. Waiting only (on by default) hides rows with nothing to collect. Rows worth more than their fee start ticked when their wallet has a key. A row worth less than its fee, or with no price, stays unticked and Select All skips it, but you can still tick it by hand. The method applies to every row, and the destination reads Each wallet’s own or Custom Treasury. Each row’s sweep takes up to 2,000 of that mint’s largest unfrozen accounts and is signed with its wallet’s own key, with no wallet prompt.
- Scan size: A mint scan reads up to 20,000 token accounts of the mint, for about 35 seconds at most. With imported wallets, each wallet’s Token-2022 holdings are read, up to 25 of those mints are checked, and up to 3 mints per wallet are scanned at up to 5,000 token accounts each. Wallets go to the server ten at a time.
- How it works: Opens a short animated explainer of where the tax builds up and how a sweep reaches your treasury.
Fees and costs
#fees-and-costs| Cost | Amount |
|---|---|
| J Tools platform fee | 4% of the collected value, minimum 0.05 SOL |
| Solana network fee | Paid to validators for every transaction in the sweep, by the wallet that signs it. |
| Rent and transaction value | Shown separately when required; not part of the platform fee. |
The service fee is 4% of what the sweep is built to collect, valued in SOL from the token’s price at that moment, and never less than 0.05 SOL. A token with no price pays the 0.05 SOL minimum. The fee is a SOL transfer from the authority wallet inside the last transaction of the sweep. If that transaction does not land, the result shows the fee as not charged. If an earlier batch fails and the last one lands, the fee is still the one set for the whole sweep. The note beside the button gives the rate and the minimum. Scanning, previewing and the CSV export are free.
FAQ
#faqWhy does the tax not arrive in my wallet on its own? Token-2022 keeps each transfer's fee inside the receiving token account as a withheld amount.
Token-2022 keeps each transfer’s fee inside the receiving token account as a withheld amount. The Fee Recipient Wallet you set in Token-2022 Creator becomes the withdraw authority, the wallet allowed to move that amount, and nothing is paid into it automatically. Collecting is a separate step, and this tool does it.
Should I use Direct Withdraw or Harvest To Mint? Both end with the fees in your treasury.
Both end with the fees in your treasury. Direct Withdraw sends each batch straight there. Harvest To Mint gathers the fees onto the mint first, which the token program lets anyone do, and a final withdraw by the authority takes them all. In this tool the authority wallet signs and pays for every transaction either way.
Does collecting take tokens from holders? No.
No. Withheld fees are already separate from holder balances. A sweep moves only the withheld amount, and balances stay the same.
What if the withdraw authority was revoked? Then nobody can ever withdraw the withheld fees.
Then nobody can ever withdraw the withheld fees. The facts line shows the authority as revoked, and the collect button stays disabled.
How is this different from Claim Center? Claim Center scans wallets for every fee they can claim, tax included, and its one button only takes a tax sweep worth more than its fee, sent straight to the authority wallet.
Claim Center scans wallets for every fee they can claim, tax included, and its one button only takes a tax sweep worth more than its fee, sent straight to the authority wallet. Here you choose the accounts, the method and the destination, and you can sweep any amount by hand with the fee in view.
Before you sign
#before-you-signCheck the destination and the method before you press the button. A sweep moves only withheld fees, and its last transaction carries the service fee in SOL. The app is the current source of truth for amount, fee and route.
Common issues
#common-issues- Not a Token-2022 mint, or no transfer fee on this mint. The picked mint is classic SPL, or Token-2022 without the transfer fee extension, so nothing is ever withheld. The reason shows under the picker.
- No withheld fees found. No token account of this mint holds withheld fees right now. Rescan after the token has traded.
- The collect button stays disabled. The connected wallet is not the withdraw authority (no You badge), the authority was revoked, the custom treasury address is not valid, or nothing is selected.
- Scan stopped early. The scan reached 20,000 accounts or ran out of time. The rows shown are real, but not the full list.
- More than 2,000 accounts hold fees. One sweep carries the 2,000 largest, and the page says so. Collect them, then scan again for the rest.
- Rescan still shows the fees you just collected. A mint’s scan result can be kept for up to a minute. Wait a minute, then rescan. A sweep re-reads every account anyway and drops any that no longer holds fees.
- Partly collected. Some transactions did not land, and the result shows how many did. The service fee rides on the last transaction: if that one failed, it shows as not charged. Rejecting a wallet prompt stops the run. Rescan to see what is still withheld.
- An imported wallet shows “no key”. It was added as an address, so it can be read but not signed for. Import its private key to collect.
Practical tips
#practical-tips- Scan before you connect. You can check any mint’s pending tax without a wallet, then connect the authority wallet only when you are ready to sweep.
- Mind the prompts. The connected wallet signs one prompt per transaction, and at about 25 accounts each, a sweep of 2,000 accounts is around 80 prompts. A Min ≥ amount or Top 100 keeps a sweep short.
- Export before a large sweep. The CSV gives you a record of which accounts held what before you collected.
Related tools
#related-toolsHelp
#helpThe tool on this page
Token-2022 Tax Collector
j.tools/en/tools/token2022-tax-collector
- Platform fee
- 4% of the collected value, minimum 0.05 SOL
- Network fee, rent and transaction value are separate.
© 2026 J Tools