Solana Token-2022 Guide: Transfer Fees, Interest-Bearing Tokens & Confidential Transfers
Master Solana's Token-2022 program with this guide covering transfer fees, interest-bearing tokens, confidential transfers, and more.
Master Solana's Token-2022 program with this guide covering transfer fees, interest-bearing tokens, confidential transfers, and more.

Disclosure: This article contains affiliate links. If you sign up through them, MadeOnSol may earn a commission at no extra cost to you. This never affects our rankings, ratings, or reviews.
Solana's Token-2022 program (also called Token Extensions) is the next-generation token standard on Solana. It extends the original SPL Token program with features that previously required custom programs or weren't possible at all — like built-in transfer fees, confidential balances, and non-transferable tokens.
If you're building a token, launching a project, or just trying to understand what Token-2022 means for the Solana ecosystem, this guide covers everything you need to know.
Token-2022 is a new on-chain program that replaces (and is backward-compatible with) the original SPL Token program. Rather than one monolithic upgrade, it introduces a modular extensions system. Token creators can enable specific extensions at mint creation time, adding features like transfer fees or metadata directly into the token's on-chain account.
The original SPL Token program was intentionally minimal — it handled minting, transferring, and burning tokens, and nothing else. This simplicity was a strength for composability but meant that common features required workaround solutions. Token-2022 brings those features into the standard.
| Aspect | SPL Token | Token-2022 |
|---|---|---|
| Transfer fees | Not supported | Built-in extension |
| Token metadata | Requires Metaplex | Native metadata extension |
| Confidential transfers | Not possible | ZK-proof based privacy |
| Interest-bearing | Not supported | Display extension |
| Non-transferable | Workarounds only | Native extension |
| Permanent delegate | Not possible | Built-in extension |
| Transfer hooks | Not possible | Custom program callbacks |
This is arguably the most impactful extension for token projects. Transfer fees let you collect a percentage of every token transfer automatically at the protocol level.
How it works:
When a Transfer Fee extension is configured, every transfer withholds a percentage (up to a configurable maximum) from the recipient. The withheld fees accumulate in each recipient's token account and can be harvested by the fee authority to a designated account.
Use cases:
Building a product on Solana data?
Skip the Geyser pipeline — embed KOL flow, deployer reputation, and the all-DEX firehose over REST, WebSocket, or webhooks. The Business tier (€400/mo) is the self-serve embed license at 500k calls/day — Enterprise adds white-label & redistribution.
Tools mentioned
Live health scores, average ratings, and direct links on MadeOnSol.

Transaction debugging for Solana with full source-code-level tracing

No-code Solana token creation and management toolkit

Restaking infrastructure for Solana middleware security

Human-readable transaction classification API for Solana and EVM chains

Guaranteed Solana transaction inclusion via ahead-of-time blockspace auctions
Build with MadeOnSol API
KOL tracking, deployer intelligence, DEX streaming, and webhooks. Free API key — 200 requests/day.
New customers try Pro free for 5 days — card, cancel anytime.
import { MadeOnSol } from "madeonsol";
// Get a free API key at madeonsol.com/pricing
const client = new MadeOnSol({ apiKey: "msk_your_key" });
const { trades } = await client.kol.feed({ limit: 10 });
const { alerts } = await client.deployer.alerts({ limit: 5 });
const { tools } = await client.tools.search({ q: "trading" });Building a product on Solana data?
MadeOnSol isn't an RPC or another generic token API — it's Solana memecoin intelligence that's painful to build in-house, pulled from dual-region gRPC shred streams: sub-second from the on-chain event to your app.
Signals you'd otherwise build
KOL & smart-money flow from 1,000+ labeled wallets, deployer reputation, coordination clusters, linked-wallet entity resolution, and an all-DEX firehose.
Embed it in your product
The Business tier (€400/mo, self-serve) licenses you to display MadeOnSol data inside your own product — 500k calls/day, 10 WS + 5 firehose connections. Enterprise above adds white-label & redistribution rights and custom endpoints.
Evaluate first, commit later
Test everything on a free ULTRA key — no commitment. If it fits, we scope volume or white-label pricing.
Keep reading

Education
Everything you need to know about Solana SPL tokens and Token-2022 extensions. Covers token accounts, mint authority, freeze authority, metadata, confidential transfers, transfer fees, permanent delegate, and more.

Developer Tools
Token-2022's TransferFeeConfig extension can charge up to 100% on every transfer, and most Solana AMMs don't handle it correctly. The result: pools quote wildly wrong prices, traders get fewer tokens than expected, and DEX aggregators route into honeypots. Here's the actual mechanics and how to check before you buy.

Education
Token Extensions (Token-2022) add powerful features to Solana tokens including confidential transfers, built-in fees, and metadata. Here's what developers and traders need to know.

Developer Tools
Understand what Solana APIs are, what types exist, and how developers use them to build trading bots, portfolio trackers, and analytics dashboards. Covers RPC, enhanced APIs, data APIs, and when to use each.

Developer Tools
Learn how to track Solana program activity by monitoring program IDs, decoding instructions with Anchor IDLs, parsing custom events, and following CPI chains. Covers real use cases like DEX monitoring and pool creation detection.

Developer Tools
Solana stores everything in accounts. This guide explains the Solana account model, account structure (lamports, data, owner), program accounts, PDAs, token accounts, and how to read and deserialize account data with practical TypeScript examples.
Enjoyed this article?
Real-time KOL trades, Pump.fun deployer intel, and 1,200+ ranked Solana tools — free to explore.
Open the KOL TrackerConfiguration options:
Important considerations:
Transfer fees affect DeFi composability. Some DEXs and protocols have added Token-2022 support, but not all. Jupiter and Raydium support Token-2022 tokens, though pools with transfer-fee tokens may have different routing behavior. Always check compatibility before building around transfer fees.
The Interest-Bearing extension allows a token to display an interest rate that continuously adjusts the UI-displayed balance. This is a display-only feature — it doesn't actually create new tokens. The underlying raw balance stays the same, but wallets and explorers show an adjusted amount based on the configured rate and elapsed time.
How it works:
The mint stores a rate (in basis points) and a timestamp. Applications calculate the displayed balance as:
displayed_balance = raw_balance * (1 + rate * time_elapsed)
Use cases:
Important: Since this is display-only, the actual token supply doesn't change. Applications must implement the interest calculation logic in their UI. Real yield distribution still requires a separate mechanism (like periodic airdrops or a claim function).
This extension brings zero-knowledge proof-based privacy to Solana token transfers. It lets users send and receive tokens without revealing the transfer amount publicly.
How it works:
Balances and transfer amounts are encrypted using ElGamal encryption. When a transfer occurs, a zero-knowledge proof verifies that the sender has sufficient balance and the amounts are consistent — without revealing the actual numbers. Only the sender and recipient can decrypt the amounts.
What's private:
What's NOT private:
This is similar to how Zcash shielded transactions work, but implemented at the token level rather than the chain level. It's particularly relevant for business payments, payroll, and any use case where amount privacy matters.
Current limitations:
This extension creates tokens that cannot be transferred after they're minted to a wallet. Once received, they stay in that wallet forever (unless burned).
Use cases:
This is Solana's native implementation of what Ethereum calls "soulbound tokens" (SBTs). No custom program needed — just enable the extension at mint creation.
The Permanent Delegate extension assigns an authority that can transfer or burn tokens from any holder's account. This sounds alarming, but it has legitimate use cases.
Use cases:
Transparency note: Since this is an on-chain extension, anyone can verify whether a token has a permanent delegate before acquiring it. Tools like Solscan display extension details on token pages.
Transfer hooks are the most flexible extension. They allow a custom program to be called on every token transfer, enabling arbitrary logic to execute as part of the transfer instruction.
How it works:
When you configure a transfer hook, you specify a program ID. Every time the token is transferred, the Token-2022 program invokes your specified program with the transfer details. Your program can then:
Example use cases:
The native metadata extension stores token metadata (name, symbol, URI, additional key-value pairs) directly in the mint account. This eliminates the need for separate Metaplex metadata accounts, reducing cost and complexity.
Advantages over Metaplex metadata:
When to still use Metaplex:
Here's a high-level overview of creating a token with extensions using the Solana CLI and the spl-token command:
# Create a token with transfer fee (1% fee, max 1000 tokens)
spl-token create-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--transfer-fee 100 1000
# Create a non-transferable token
spl-token create-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--enable-non-transferable
# Create with metadata
spl-token create-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--enable-metadata
For programmatic creation using TypeScript, the @solana/spl-token library provides full Token-2022 support:
import {
createMint,
TOKEN_2022_PROGRAM_ID,
createInitializeTransferFeeConfigInstruction,
} from '@solana/spl-token';
Multiple extensions can be combined on a single mint. For example, you could create a token with both transfer fees and metadata, or one with confidential transfers and a permanent delegate.
Token-2022 adoption in DeFi has been gradual but steady:
The main DeFi challenge with Token-2022 is that transfer fees and hooks add complexity to swap calculations. AMMs need to account for the fee when computing output amounts, and transfer hooks add computational overhead that affects transaction size limits.
Use Token-2022 if:
Stick with SPL Token if:
Token-2022 represents a significant evolution in what's possible with Solana tokens. The extensions model gives creators powerful tools — from transfer fees that create sustainable revenue to confidential transfers that protect financial privacy.
The ecosystem is still catching up with full support. Wallet support varies by extension, and not every DeFi protocol handles all extensions correctly yet. But the trajectory is clear: Token-2022 is becoming the standard for new token launches that need more than basic transfer functionality.
Before building with Token-2022, check that the specific extensions you plan to use are supported by the wallets and DEXs your users will interact with. Start on devnet, test thoroughly with real DeFi protocols, and verify the user experience end-to-end.
For related topics, check out our guide on how Solana token extensions work and the SPL token creation guide. If you want to see the transfer fee extension cause real damage in production, our breakdown of why Token-2022 transfer fees break AMM pricing walks through an actual mispricing bug we traced in the wild, and our SPL tokens guide covers the underlying account model Token-2022 extends.
Most major wallets including Phantom and Solflare support basic Token-2022 tokens. However, support for specific extensions varies. Confidential transfers and transfer hooks may not display correctly in all wallets. Always test with the specific wallets your users will use.
No, you cannot upgrade an existing token in-place. Token-2022 extensions must be set at mint creation. If you need Token-2022 features for an existing token, you'd need to create a new Token-2022 mint and implement a migration (swap old tokens for new ones). See our token migration guide for details.
Yes. When a Token-2022 token with transfer fees is traded on a DEX, the fee is applied to the transfer. DEXs like Jupiter and Raydium account for this in their swap calculations, but users should be aware that the effective received amount is reduced by the fee percentage.
Token-2022 tokens with extensions require more account space, which means slightly higher rent costs. A basic Token-2022 mint without extensions costs about the same as an SPL Token mint. Each enabled extension adds to the account size and thus the rent. Transfer fees add roughly 0.003 SOL in additional rent; metadata varies based on content length.
Both put more than the bare minimum on-chain, but they solve different problems: Token-2022's extensions attach structured, program-defined data (like transfer-fee configs or native metadata) to a mint, while Solana inscriptions go further and embed entire files -- images, text, arbitrary bytes -- directly into account data. If your goal is full content permanence rather than functional token extensions, inscriptions are the more direct tool.