What is Token-2022 (Token Extensions)
Token extensions are optional, built-in enhancements that define the capabilities of Token-2022, the new token standard for Solana, which exists side by side with the legacy SPL Token program. If the vanilla SPL token program is defined by its bare bones: supply, decimals, and two authorities, then a Token-2022 mint can define additional capabilities like transfer fees, transfer hooks, confidential transfers, and so on. Crucially, these additional behaviors are baked into the token definition itself rather than relying on each dApp to implement similar features in an ad-hoc manner.
There is only one caveat: you can specify what extensions you need when you order a token, but you cannot add extensions later. In other words, you must decide when you order the car whether you want all-wheel drive; a mechanic can’t go back and add it to a car after it’s already been produced. A token issuer can only specify the featureset at the time the token is minted, and then that’s it forever.
How the Main Extensions Work
Transfer fees will extract a fixed percentage of tokens at every transfer (at the protocol level). You don’t need to write a custom contract or build it into your token, just configure the transfer fee in the mint, and any token aware program will automatically account for the fee. Transfer hooks can call a custom program at every transfer. The token can force an arbitrary program to be executed for every transfer, which opens up endless possibilities like allowing token transfers for accounts on a whitelist, or sending token royalties.
Confidential transfers allow confidential transfers of tokens using zero knowledge proofs, allowing balances and transfer amounts to be kept private and still verifiable by an authorized auditor or recipient. Confidential transfers (aka confidential balances) went into production in 2025. Other capabilities in the current catalog include interest bearing tokens that adjust in display according to an accruing interest rate, a permanent delegate that can be used to transfer tokens from any account (not just itself), non-transferable tokens meant for use cases like credentials, and a metadata pointer for a mint to point to a URI where it specifies its name and image.
The token extensions have seen adoption primarily from enterprises. PYUSD, a stablecoin issued by PayPal, has adopted the Token-2022 on Solana, because a regulated issuer of fiat-backed tokens has specific regulatory requirements they can satisfy by specifying transfer hooks and transfer fees, versus writing a bespoke contract.
How Token-2022 Compares to Ethereum
On Ethereum, each one of these capabilities means custom Solidity is used for each token. Fee-on-transfer tokens are implemented many times, and DeFi protocols regularly break when using fee-on-transfer tokens since the way the different contracts implement this capability are slightly different. Token auditors and integrators must read each token contract individually. By contrast, Token-2022 tokens define the equivalent capabilities in known places. For example, a token with a transfer fee defines the percentage of tokens withdrawn from the sender in a designated location that every wallet and wallet explorer can automatically read to see if the fee applies. If you view a token on Solscan, the extensions are explicitly called out, there’s no need to read through any Solidity.
The tradeoff, however, is that because the Token-2022 program is newer than the original token program, not all DeFi has yet adopted Token-2022 in 2026. If a token uses extensions, it may swap on Jupiter, but a lending protocol may refuse to accept the deposit because the protocol has not written logic to accept tokens with that extension configured. Wallets like Phantom support the common extensions, but the unusual ones will sometimes break.
Why Token Extensions Matter
Here’s a typical example where the extensions might cause you grief. Let’s say you buy a new Token-2022 asset, and it successfully swaps on Jupiter, only to have a favorite yield protocol reject the token transfer because the token uses a transfer hook the protocol hasn’t whitelisted. You might then want to spend 30 seconds scanning the token’s extensions on Solscan, as you might check tax settings before you buy a fee-on-transfer token on Ethereum.
Conversely, token extensions are important because use cases like stablecoins, tokenized treasuries, and real world assets require transfer restrictions, fee logic, and privacy beyond what plain tokens can handle. With Token-2022, issuers can add these capabilities using the same program that’s already written, audited, and tested, instead of every token issuer writing their own implementation of their own contract. Token issuers, in 2026, start their token creation process by asking questions that didn’t exist before 2022: what extensions does this token need when it gets created, since you can never add them later?
Can a project add an extension to an existing token?
No project can add extensions after creation- extensions are set permanently when the mint is created. The only way to get a feature added is by creating a new mint and then migrating holders to it.