SOLSTACKAcademy

Intermediate· Lesson 5 of 8· 3 min

Token-2022 extensions

Token-2022 is the Token program with optional behaviour bolted onto a mint or a token account, chosen once at creation. Here is what each extension does and what it means for the people holding the token.

There are two token programs. The original, TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA, has a fixed 82-byte mint and 165-byte token account and does exactly one set of things. Token-2022, TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb, accepts the same instructions and then allows extra typed data after the base layout: extensions. A mint belongs to one program forever.

Mint extensions

TransferFeeConfigA fee in basis points, up to a maximum, withheld from every transfer. Collected by a fee authority.
MetadataPointer + TokenMetadataName, symbol, URI and key–value pairs stored in the mint. See Token metadata.
InterestBearingConfigA rate that changes the displayed balance over time. The raw amount never changes; wallets scale it.
NonTransferableTokens can be minted and burned, never moved. Soulbound credentials, memberships.
PermanentDelegateOne key that can transfer or burn from any holder's account, without their signature. Regulatory clawback — or a rug.
TransferHookA program of the issuer's choosing runs on every transfer and can reject it. Allowlists, royalties, KYC.
DefaultAccountStateNew token accounts start frozen until the freeze authority thaws them. An allowlist by default.
MintCloseAuthorityLets the mint be closed and its rent reclaimed once supply is zero.
ConfidentialTransferBalances and amounts encrypted on-chain, with the auditor key optional.

Token account extensions

ImmutableOwnerThe account's owner can never be changed. Every associated token account has it.
MemoTransferIncoming transfers must carry a memo. Exchanges use it to match deposits.
CpiGuardBlocks certain actions when invoked by another program rather than the wallet directly.
TransferFeeAmountWhere withheld fees accumulate until the fee authority harvests them.
PayPal USD's Token-2022 mint on Solana Explorer, with eight extensions listed
  1. PYUSD, a regulated stablecoin issued on Token-2022 from day one.
  2. Mint and freeze authority both live, as with USDC.
  3. permanentDelegate: the issuer can move or burn any holder's PYUSD. Required by its regulator; a red flag on anything else.
  4. transferHook: a program runs on every transfer. Here it is the issuer's compliance check.
  5. transferFeeConfig present with the fee set to zero, keeping the option open.
  6. tokenMetadata: name and symbol live in the mint, no Metaplex account needed.
A Token-2022 mint that uses most of the extensions, captured 19 Sep 2026 · explorer.solana.com

Transfer fees in practice

The fee is taken by the Token-2022 program itself, so no exchange or wallet can skip it. It is withheld inside the recipient's token account rather than sent anywhere; the fee authority sweeps withheld amounts out later with a separate instruction. A fee of 100 basis points is 1%; the config also carries a maximum fee per transfer in base units. How to add a transfer fee walks through creating one with Token-2022 Creator.

Choosing

  • Need a fee, interest display, soulbound tokens, confidential balances or metadata in the mint: Token-2022.
  • Need the widest possible support with no surprises: the original Token program. Every wallet, exchange and indexer reads it.
  • Support for Token-2022 is broad in 2026 — major wallets, Jupiter, Raydium, Meteora — but a transfer hook or confidential transfers narrow it. Check the venues you care about before launch.
  • The choice is permanent. Migrating means a new mint and a swap for holders.

What a holder should check

Extensions are exactly where a token can be built to take from you. Before buying a Token-2022 mint, read its extension list: a permanent delegate, a transfer fee near 100%, a transfer hook whose program you can't inspect, a default frozen state that needs the issuer to thaw you, or non-transferable when you expected to sell. Token Inspector decodes the list and flags each of these.

Code
// a Token-2022 mint's extensions, as decoded by Token Inspector
transferFeeConfig:   { transferFeeBasisPoints: 100, maximumFee: 1000000 }   // 1%, capped
metadataPointer:     { metadataAddress: <this mint> }
tokenMetadata:       { name: "Example", symbol: "EXM", uri: "https://…" }
permanentDelegate:   none          // good
transferHook:        none          // good
defaultAccountState: initialized   // not frozen — good

What to remember

  • Token-2022 is a second token program with the same instructions plus optional extensions fixed at creation.
  • Mint extensions change the token's rules for everyone: fees, hooks, delegates, frozen-by-default, soulbound.
  • Transfer fees are enforced by the program and withheld in the recipient's account until harvested.
  • Choose Token-2022 for a specific extension; choose the original for maximum compatibility. Neither can be changed later.
  • As a holder, read the extension list. Permanent delegate and transfer hook are the ones to understand before buying.

Try it