Token Creation & Minting
Non-Transferable (Soulbound) Tokens on Solana
How Token-2022's NonTransferable extension makes a token impossible to move at the protocol level, what that's for, and how it fits with other extensions.
Most tokens exist to be traded. Sometimes you want the opposite: a token that proves something, such as attendance, a credential or a finished task, and is useful because nobody can sell it to someone who didn't earn it. Token-2022's NonTransferable extension makes that a rule the protocol enforces.
What "soulbound" means here
The word comes from games, where a soulbound item stays with one character and can't be traded. For a token it means it can be minted into a wallet and later burned by that wallet, but it can never move to another address. This isn't an app hiding the send button or a marketplace refusing to list it. The Token-2022 program rejects every transfer instruction on a mint with NonTransferable set, for every wallet, permanently.
It's enforced the same way as a transfer fee or a freeze. The rule lives in the mint, and every app that talks to the token program has to follow it.
What it's good for
- Proof of attendance or participation. Everyone at an event gets a token, and nobody who wasn't there can buy one later.
- Credentials. A course certificate or a verified milestone has value only because it can't change hands, the same way you can't sell a diploma.
- Reputation and identity. A badge meant to show your own history, and not the history of whoever holds it now.
None of these work as tradeable tokens. Once a token can be resold, it stops proving anything. NonTransferable turns "please don't sell this" into "this can't be sold".
What it isn't for
If any part of your token's value depends on trading, as with a community token or anything meant to be swapped or to rise in price, NonTransferable is the wrong choice. It would make the token impossible to sell. It's a narrow tool for a specific job, and it doesn't make a token safer or more trustworthy in general.
Combining it with other extensions
NonTransferable works with other Token-2022 extensions. A non-transferable token can still carry on-mint metadata, such as a name, symbol and image through MetadataPointer and TokenMetadata, so a soulbound credential still shows up properly in a wallet. Pairing it with a transfer fee makes little sense, since there are no transfers to charge.
Tool support
Token-2022 creator tools don't all build every extension in the spec, and NonTransferable is one of the less common ones because fewer people need it than need a transfer fee or an interest-bearing balance. Solstack's Token-2022 Creator currently builds transfer-fee and interest-bearing mints. If you need NonTransferable, check that the creator you use sets it before you rely on it. The token program supports it, but not every interface offers it yet.
Token-2022 metadata extensions and the Token-2022 concepts doc explain how Token-2022's extensions work in general.