Solana's original token standard — the SPL Token Program — has powered every SOL transfer, every memecoin trade, and every DeFi protocol since the network launched. It works, but it's deliberately simple. If you want your token to do anything beyond basic transfers and approvals, you have to build custom programs around it.
Token Extensions (officially the Token-2022 program) change that. They add a layer of configurable features directly into the token standard, letting creators build tokens with built-in transfer fees, confidential balances, permanent freeze authority, on-chain metadata, and more — all without deploying custom smart contracts.
This guide explains what Token Extensions are, how each extension works, what's been built with them, and what traders and developers need to know.
Token Extensions vs. Original SPL Tokens
The original SPL Token Program handles the basics: mint tokens, transfer them, set authorities (mint, freeze), approve delegates, and that's essentially it. Any additional behavior — royalty enforcement, transfer restrictions, metadata — requires external programs that wrap or gate token operations.
Token Extensions (Token-2022) is a new token program that's backwards-compatible with the core transfer/approve/mint model but adds 16+ optional extensions that token creators can enable at mint time. Once a token is created with certain extensions, those features are enforced at the protocol level — no wrapping, no separate programs, no workarounds.
Key difference: Token Extensions are enforced by the token program itself. A transfer fee isn't a suggestion that a frontend can ignore. It's deducted automatically on every transfer, by every wallet, on every DEX. The program enforces it.
| Feature | Original SPL Token | Token-2022 (Extensions) |
|---|
| Basic transfers | Yes | Yes |
| Mint/freeze authority | Yes | Yes |
| Transfer fees | No (requires custom program) | Built-in, enforced per-transfer |
| Confidential transfers | No | Yes (ZK-proof based) |
| On-chain metadata | No (requires Metaplex) | Built-in metadata pointer |
| Non-transferable tokens | No (workaround: freeze after mint) | Native support |
| Permanent delegate | No | Yes — authority can transfer/burn from any holder |
| Interest-bearing display | No | Yes (cosmetic balance adjustment) |
| Transfer hooks | No | Yes — call custom program on every transfer |
| Default account state | Frozen by default possible | Yes |
| CPI guard | No | Yes — prevents certain cross-program invocations |
| Required memo | No | Yes — transactions must include memo |
| Immutable owner | No | Yes — ATA owner cannot be reassigned |
| Reallocate | No | Yes — resize token accounts for new extensions |
| Group/member tokens | No | Yes — on-chain collection grouping |
| Closing mint accounts | Not safely possible | Yes — reclaim rent from unused mints |
The Key Extensions Explained
1. Confidential Transfers
This is the most technically ambitious extension. Confidential transfers use zero-knowledge proofs to hide transfer amounts while keeping the transaction itself visible on-chain.
How it works: When confidential transfers are enabled, token accounts hold two balances — a public (plaintext) balance and a confidential (encrypted) balance. Users can move funds between the two. Confidential transfers operate on encrypted balances, using ZK proofs to verify that the sender has sufficient funds and the amounts balance out, without revealing the actual numbers.
Validators can confirm the transaction is valid (no double-spending, no negative balances) without knowing the amounts. The sender and receiver can decrypt their own balances using their private keys.
Use cases:
- Payroll: Companies pay employees on-chain without revealing salaries to the public
- Business transactions: B2B payments where amounts are commercially sensitive
- Privacy-conscious users: People who want on-chain settlement without public balance exposure
- Compliance-friendly privacy: Unlike mixer protocols, confidential transfers keep sender/receiver visible — only amounts are hidden
What traders should know: Tokens with confidential transfers enabled work normally on DEXes. The confidential aspect is opt-in per transfer. You can hold and trade these tokens with visible balances and only use confidential mode when needed. Phantom and Solflare both support viewing confidential balances for accounts they control.
2. Transfer Fees
Transfer fees let token creators take a cut of every transfer, automatically, at the protocol level. The fee is defined as a percentage (in basis points) with a maximum cap.
How it works: When a transfer occurs, the specified fee is withheld from the recipient's account in a special "withheld" field. The fee authority can harvest these withheld fees periodically. For example, a token with a 100 basis point (1%) transfer fee and a 1000-token max: transferring 500 tokens delivers 495 to the recipient and withholds 5 as fees.
Use cases:
- Stablecoins: Issuers can build fee structures directly into the token (no separate fee contract)
- Loyalty tokens: Businesses implementing token-based rewards with built-in transaction fees
- Revenue-sharing tokens: Automatic fee collection that can be redistributed to holders
- Regulated tokens: Compliance fees enforced at the protocol level
What traders should know: This is the extension most likely to affect your trading. If you're buying a Token-2022 token with transfer fees, every swap, every transfer, every DEX trade will incur that fee. Check for this before trading. Jupiter displays transfer fee warnings for Token-2022 tokens. You can verify any token's extensions on Solana Explorer by looking at the token's mint account.
3. Permanent Delegate
A permanent delegate is an authority that can transfer or burn tokens from any holder's account at any time, without the holder's approval.
How it works: The mint creator designates a permanent delegate address. This address can execute transfer or burn instructions on any token account holding that mint, bypassing the normal owner-must-sign requirement.
Use cases:
- Regulated securities: Issuers can recall tokens for compliance (e.g., sanctioned addresses)
- Subscription tokens: Auto-revoke access when subscriptions expire
- Recoverable tokens: Issuer can help users recover tokens sent to wrong addresses
- Escrow-less systems: Authority can move tokens between parties without escrow contracts
What traders should know: A permanent delegate means the issuer can take your tokens at any time. For regulated assets (tokenized securities, compliance tokens), this is expected and necessary. For random tokens on a DEX, a permanent delegate is a major red flag — it's essentially a built-in rug mechanism. Always check for this extension before buying.
4. Non-Transferable Tokens (Soulbound)
Non-transferable tokens cannot be moved between wallets once minted. They're bound to the wallet that received them.
How it works: The extension simply prevents all transfer instructions. Tokens can be minted to a wallet and burned, but never transferred. This is the on-chain equivalent of soulbound tokens.
Use cases:
- Credentials and certifications: Proof of completion, membership, or achievement
- Governance identity: One-person-one-vote systems where the token proves identity
- Reputation tokens: On-chain reputation that can't be bought or sold
- Compliance attestations: KYC/AML verification tokens that stay with the verified wallet
5. Interest-Bearing Tokens
This extension adds a configurable interest rate that adjusts the displayed balance over time, without actually minting new tokens.
How it works: The mint stores an interest rate and a timestamp. When a wallet or app queries the "UI amount" (the human-readable balance), the token program calculates accrued interest based on the rate and elapsed time. The raw on-chain amount doesn't change — it's a display-layer adjustment.
Important caveat: This extension does NOT automatically mint interest. It only adjusts how the balance is displayed. To actually accrue interest (create real tokens), the issuer must run a separate process to mint tokens to holders periodically. The extension ensures the displayed balance matches what users expect while the actual minting happens on a schedule.
Use cases:
- Yield-bearing stablecoins: Display accrued yield in real-time even if distributions are periodic
- Bond tokens: Show accruing face value
- Savings products: Display projected returns
These extensions allow on-chain metadata to be stored directly in the mint account or point to an external metadata account — without depending on Metaplex or any third-party metadata standard.
How it works: The metadata extension stores name, symbol, URI, and additional key-value pairs directly in the mint account. The metadata pointer extension allows the mint to reference a separate account for metadata. Both are readable by any client that understands the Token-2022 metadata format.
Why it matters: Previously, all Solana token metadata lived in Metaplex metadata accounts. Token-2022 metadata is simpler, cheaper (no separate account rent for basic metadata), and doesn't depend on an external program. Many new token launches use Token-2022 metadata instead of or alongside Metaplex.
7. Transfer Hooks
Transfer hooks let token creators attach custom program logic that executes on every transfer. The hook program is called automatically by the Token-2022 program whenever tokens move.
How it works: The mint specifies a transfer hook program ID. On every transfer, Token-2022 invokes this program with the transfer details. The hook can implement any logic: allowlist/blocklist enforcement, additional fee collection, audit logging, compliance checks, or custom business rules.
Use cases:
- Compliance: Check transfers against a sanctions list
- Royalties: Enforce creator royalties on secondary transfers (works for any token, not just NFTs)
- Dynamic fees: Implement complex fee structures that change based on conditions
- Audit trails: Log every transfer to a separate program for record-keeping
What traders should know: Transfer hooks add computational cost to every transfer, which means higher transaction fees. They can also reject transfers, so a token with a transfer hook could prevent you from selling under certain conditions. This is another extension to check for before trading.
8. Default Account State
This extension sets whether new token accounts are created in an initialized or frozen state.
How it works: When set to "frozen," every new token account starts frozen and must be explicitly thawed by the freeze authority before the holder can transact. This enables allowlist-based token systems where only approved addresses can hold and transfer tokens.
Use cases:
- Regulated securities: Only KYC-verified addresses can be thawed to trade
- Controlled distributions: Prevent trading until a specific date
- Allowlist-based access: Gated token communities
Extension Combinations: Real-World Token Profiles
The power of Token Extensions comes from combining them. Here are some practical combinations:
| Token Type | Extensions Used | Example |
|---|
| Compliant stablecoin | Transfer fees + permanent delegate + default frozen state + confidential transfers | Regulated stablecoin with fees, recall ability, KYC gating, and amount privacy |
| Soulbound credential | Non-transferable + metadata | On-chain certification that can't be sold |
| Revenue-sharing token | Transfer fees + transfer hook (for distribution) | Community token where fees auto-distribute to holders |
| Regulated security | Default frozen + permanent delegate + transfer hook (sanctions check) + metadata | Tokenized stock with full compliance controls |
| Privacy-first token | Confidential transfers + metadata | Standard token with optional amount privacy |
| Loyalty points | Non-transferable + interest-bearing + metadata | Points that accrue over time but can't be traded |
Adoption: Who's Using Token Extensions?
Token-2022 adoption has accelerated through 2025 and into 2026, driven by institutional interest and the maturation of DeFi support.
Stablecoins
Several stablecoin projects have launched on Token-2022, using transfer fees for revenue, confidential transfers for privacy, and permanent delegate for compliance. This is the most natural fit for the extension set — stablecoin issuers need exactly the kind of control Token-2022 provides.
Institutional Products
Tokenized securities, fund tokens, and regulated financial products are launching on Token-2022 because the extension set matches regulatory requirements that were previously impossible to enforce on-chain without custom programs.
DeFi Integration
Jupiter supports Token-2022 tokens for swaps, displaying extension information (particularly transfer fees) prominently so traders aren't surprised. Raydium and Orca have added Token-2022 pool support. Most major Solana wallets display Token-2022 token metadata and handle the different account structure correctly.
NFTs and Digital Assets
Token-2022 with metadata extensions provides an alternative to Metaplex for NFT-like assets, especially when combined with group/member tokens for collection organization. The metadata extension is simpler and cheaper for projects that don't need Metaplex's full feature set.
What Traders Need to Know
If you're trading on Solana, Token-2022 tokens are increasingly common. Here's what to watch for:
Check for Transfer Fees
Before buying any token, check whether it's a Token-2022 token with transfer fees enabled. A 1-5% transfer fee might not seem like much, but it compounds: you pay the fee buying, selling, and on any intermediate transfers. A token with a 2% transfer fee costs you ~4% round-trip.
How to check: Look up the token on Solana Explorer. The mint account will show all enabled extensions. Jupiter also displays warnings for tokens with transfer fees.
Check for Permanent Delegate
A permanent delegate means the token creator can take your tokens. For regulated assets, this is normal. For random tokens found on DEX screeners, it's a red flag. Always verify.
Check for Freeze Authority
Both original SPL tokens and Token-2022 tokens can have freeze authority. The difference with Token-2022 is that the "default frozen" extension means ALL accounts start frozen. If you see this, the token is access-controlled — you need approval to trade it.
Transfer Hooks Can Block Sales
A transfer hook can implement arbitrary logic, including rejecting transfers. A token could theoretically let you buy but prevent selling. Check whether a transfer hook is present, and if possible, understand what it does before putting money in.
Wallet Compatibility
Phantom and Solflare both support Token-2022 tokens, including displaying metadata, handling transfer fees, and showing confidential balances. Some older or less-maintained wallets may not display Token-2022 tokens correctly or may fail to include the right accounts in transactions.
How Developers Create Token-2022 Tokens
For developers looking to create tokens with extensions, the process involves the @solana/spl-token TypeScript library or Solana CLI tools.
High-Level Steps
-
Choose your extensions at creation time. Extensions are set when the mint is created and most cannot be changed afterward. Plan carefully.
-
Calculate mint account size. Token-2022 mint accounts are larger than SPL Token mints because they include extension data. The account size depends on which extensions are enabled.
-
Create the mint using createInitializeMintInstruction from the Token-2022 program, along with initialization instructions for each extension.
-
Configure extension parameters. After mint creation, some extensions need additional configuration — setting the transfer fee rate, designating the permanent delegate, uploading metadata, specifying the transfer hook program.
-
Create token accounts. Token-2022 token accounts are also slightly different from SPL Token accounts. The associated token account (ATA) derivation uses the Token-2022 program ID instead of the original Token Program ID.
-
Test thoroughly. Token-2022 interactions are more complex than basic SPL Token operations. Test with DEX integrations, wallet displays, and edge cases (max fee caps, confidential transfer flows, hook execution).
Common Pitfalls
- Extensions are permanent. You cannot add or remove most extensions after mint creation. If you forget to add confidential transfers at creation, you can't add it later.
- Transfer fees affect DEX math. AMMs need to account for the fee when calculating swap outputs. If a DEX doesn't properly support Token-2022 transfer fees, swaps may fail or have unexpected results.
- Confidential transfers require extra instructions. Users must explicitly deposit funds into their confidential balance and configure their accounts for confidential receives. This adds UX steps.
- Account rent is higher. More extensions = larger accounts = more rent-exempt SOL required.
The Bigger Picture: Why Token Extensions Matter
Token Extensions represent a philosophical shift in how Solana handles token functionality. Instead of building everything as separate programs that wrap around a simple token standard, the standard itself becomes configurable.
This matters for several reasons:
Security: Features enforced by the token program itself are harder to bypass than features enforced by external programs. A transfer fee in Token-2022 applies to every transfer, everywhere. A transfer fee in a wrapper program only applies when people use that wrapper.
Composability: Because extensions are standardized, wallets, DEXes, and other programs can detect and handle them automatically. A DEX doesn't need custom integration for each fee-charging token — it just reads the transfer fee extension data.
Institutional adoption: Regulated entities need specific controls (freeze, recall, compliance hooks, confidential amounts) that were previously possible but required custom development. Token-2022 provides these out of the box, lowering the barrier for institutional token issuance on Solana.
Developer experience: Building a token with transfer fees used to require deploying and maintaining a custom program. Now it's a parameter during mint creation. This dramatically reduces development time and audit surface.
Token Extensions won't replace the original SPL Token Program — billions of dollars in existing tokens use it, and simple tokens don't need extensions. But for any new token that needs functionality beyond basic transfers, Token-2022 is increasingly the default choice.
The extensions are live, battle-tested, and supported by the major Solana infrastructure. Whether you're trading tokens with transfer fees, building with confidential transfers, or just trying to understand the tokens in your wallet, understanding Token Extensions is increasingly essential for participating in the Solana ecosystem.
Check any token's extensions on Solana Explorer. Trade Token-2022 tokens on Jupiter, and manage them in Phantom or Solflare.