Token-2022 extensions, explained
The newer token standard allows behaviour to be attached to a token itself: fees on transfer, hooks that run when tokens move, restrictions on who can hold. Most uses are legitimate and all of them change what you are buying, which makes checking worthwhile.
What the standard adds
The original SPL token program does one thing well: it moves fungible balances between accounts with no opinion about who or why. That simplicity is a feature, because it means every token behaves identically and every integration works the same way.
Token-2022 keeps that core and allows optional modules to be attached when a mint is created. Some are administrative conveniences, some change how transfers work, and one allows arbitrary program logic to run whenever the token moves.
The reason this matters to anyone buying or trading is that "it is an SPL token" stopped being a complete description of behaviour. Two tokens can look identical in a wallet and behave differently on transfer, and the difference is not visible unless you look for it.
The extensions that change behaviour
| Extension | What it does | Matters because |
|---|---|---|
| Transfer fee | Charges a percentage on every transfer | You receive less than was sent, on every trade |
| Transfer hook | Runs a program on each transfer | Arbitrary logic, including restrictions |
| Default account state | New accounts can start frozen | Holders may need approval to transact |
| Permanent delegate | An authority can move tokens from any account | Holdings are not exclusively yours |
| Non-transferable | Tokens cannot be moved at all | Not tradeable by design |
| Metadata, interest, memos | Administrative conveniences | Largely harmless |
The bottom row is most of what the standard is actually used for and it is not what this page is about. The rows above it are the ones worth checking, and the permanent delegate row deserves particular attention because it is the strongest power on the list and the least discussed.
What they do to trading
Three practical effects, each of which surprises somebody regularly.
Transfer fees change the arithmetic. If a percentage is charged on every movement, then every swap loses that percentage in addition to venue fees and price impact. For a campaign routing many round trips, the effect compounds in exactly the way pool fees do, and it is invisible in any quoted swap price. Anyone modelling costs on a token with this extension needs to add it explicitly.
Hooks can restrict who trades. A hook is arbitrary logic, which means it can permit or refuse a transfer based on anything the program checks. That produces the same visible symptom as a freeze authority, and it is behind a share of the situations covered in the sell failure guide, where the reason is neither depth nor slippage.
Venue support is fragmented. Not every DEX handles every extension, and some decline tokens using the standard entirely. A token launched with extensions may therefore find fewer venues willing to host a pool, which narrows routing and reduces the liquidity available to anyone trying to buy.
Legitimate uses
It is worth being clear that these mechanisms were not built for abuse and most implementations are entirely reasonable.
Transfer fees fund treasuries and reward mechanisms in ways that would otherwise require off-chain accounting. Hooks enable compliance checks for tokens that genuinely need them. Default frozen state and permanent delegates exist for regulated instruments where an issuer has obligations that the original standard could not express.
The problem is not the capability. It is that the same capability can be used to build a token that is easy to buy and difficult to sell, and the mechanism is less visible than the older authority fields because it lives in program logic rather than in a field on an account page.
That asymmetry is why the sensible posture is neither alarm nor indifference. A token using extensions is asking to be understood rather than assumed, and the understanding takes a few minutes.
How to check a token
- Check which program owns the mint. Explorers display this, and it tells you immediately whether extensions are even possible.
- List the extensions in use. If it is the newer program, the mint account shows what is attached.
- Read the parameters. A transfer fee has a rate; a hook has a program address. Both are specific rather than abstract.
- Check for change authorities. Some extensions can have their parameters updated later, which is a separate question from whether they exist.
- Test a small sell. The definitive check on whether you can exit is exiting, at a size you are content to lose.
- Check venue support by seeing where the token actually has pools, since fragmented support shows up as thin liquidity.
Steps one and two take seconds. Step five is the one that matters most for a buyer, because everything else is inference and a completed sell is evidence. The on-chain reading guide covers the rest of the same screens, including the older authority fields that remain relevant.
There is a practical wrinkle for anyone running activity against such a token. A transfer fee applies to every leg, so a round trip pays it twice, and a campaign consisting of many round trips pays it on every one. That has to be added to the venue fee rather than replacing it, and the combination can be materially larger than either alone. It is entirely workable once accounted for and it is a genuinely unpleasant surprise when discovered afterwards from a shortfall nobody could explain.
If you are considering using them
For a team the calculation is different, and it comes down to whether the capability is worth the friction it creates.
Every extension narrows compatibility. Fewer venues will host the token, some tools will handle it imperfectly, and every buyer performing diligence has one more thing to satisfy themselves about. For a token that genuinely needs a compliance hook or a fee mechanism, that cost is worth paying and should be explained prominently rather than discovered.
For an ordinary community token, the honest answer is usually that the extensions are not needed and their presence creates questions that the token does not benefit from answering. The same reasoning applies as with the older authority fields, which the authorities explainer covers: capability retained without a stated purpose reads as an open-ended risk, and holders price it accordingly.
If you do use them, publish what they do in plain language alongside the technical details. The people who will find them are the people performing diligence, and finding a clear explanation is a very different experience from finding an unexplained program address attached to every transfer of a token they were considering buying.
Frequently asked questions
01What is Token-2022?
A newer Solana token program that supports the same basic functions as the original while allowing optional extensions to be attached at creation. Those extensions can add behaviour such as fees charged on transfer, hooks that execute when tokens move, or restrictions on who may hold the token.
02Are Token-2022 tokens riskier?
Not inherently, and treating the standard itself as a red flag is a mistake. What matters is which extensions a specific token uses. A token with no behavioural extensions is functionally equivalent to a standard one; a token with a transfer hook can behave in ways that need understanding before buying.
03What is a transfer fee extension?
It charges a percentage on every transfer of the token, collected automatically. That means the amount received is less than the amount sent, which affects every trade and can surprise anyone who assumed the quoted amount was what would arrive.
04What is a transfer hook?
A program that runs whenever the token moves, allowing arbitrary logic to execute as part of the transfer. Legitimate applications exist, and the same mechanism can be used to restrict transfers under conditions the holder cannot see without reading the program.
05Can extensions be added after launch?
Extensions are configured when the mint is created, so a token cannot generally acquire new ones later. Some have authorities that allow their parameters to be changed afterwards, which is worth checking separately from whether the extension exists at all.
06Do DEXs support Token-2022 tokens?
Support varies by venue and by extension. Some venues handle the standard fully, some handle it except for particular extensions, and some do not support it at all. That fragmentation is a practical consideration for anyone launching with extensions enabled.
Keep reading
Know what you are trading
The console reads which venues hold liquidity for a mint, which is also where extension support gets decided.
Open the volume console