Deciphr Academy
Track 3 · Module 12 · Lesson 7 of 7 · 8 min read

How do tokens work on Solana?

Short answer

On Solana, shared Token Programs (the original one or Token 2022) hold the rules for every token, instead of each token having its own contract.1,2 Each token is a mint account, and each holder's balance sits in a separate token account.1

Shared Token Programoriginal or Token 2022Mint account: BRDLsupply, decimalsToken accountowner: MayaToken accountowner: TheoToken accountowner: BrindlecoveEach wallet needs a token account for each token
Fig. 7. A shared Token Program (the original one or Token 2022) holds the rules for the token. A mint account describes the token; each holder has a token account for it.

Shared programs for every token

Tokens on Solana are called SPL tokens, short for Solana Program Library.1 On Ethereum, ERC-20 needs a separate contract for each token.2 On Solana, Token Programs hold all the rules, for fungible and non-fungible tokens alike.1,3 Every token is really a data account owned by a Token Program.1

Solana has two main Token Programs.1

  • The original Token Program. It covers the basics, such as minting and transfers. Solana's docs call it immutable and widely used.1 Its own docs say it is complete, with no plans to add new features.3
  • The Token Extensions Program, also called Token 2022. It has every original feature, and adds optional ones called extensions.1

The mint account

Each token is identified by the address of its mint account.1 The mint account stores the token's supply, its decimals, its mint authority and its freeze authority.1

  • Mint authority is the account allowed to create new units of the token.1
  • Freeze authority is the account allowed to freeze tokens in a token account, so they cannot be moved or burned.1

If a token has no mint authority, its supply is fixed and no more can ever be minted.1 Removing the mint authority cannot be undone.3 Decimals work as on Ethereum: the number of digits after the decimal point.1

Token accounts

A token account holds one owner's balance of one token. It records the token, the owner and the amount.1 So a wallet needs a token account for each token it wants to hold.1 A wallet can own several token accounts for the same token, but each token account has only one owner.1

An associated token account is the "default" token account for a given wallet and token. Its address is worked out from the two.1 Creating one needs a small, refundable deposit of SOL to pay for its storage.1,3 Anyone can create one for a user, such as their wallet app.3

Delegates, freezing and NFTs

An owner can approve a delegate to transfer or burn up to a set amount, and can revoke that later.3

The freeze authority can freeze a token account. A frozen account cannot be used until it is thawed.3 If the freeze authority is removed, freezing stops for good, and any frozen accounts stay frozen.3

An NFT on Solana is simply a token type where only one token has been minted.3 The docs' example makes a token with 0 decimals, mints 1, then removes the mint authority.3

Token extensions

Extensions are optional features added to a mint or a token account.4 Most cannot be added after the account is set up, so a token's features must be planned in advance.4 Some cannot be combined. For example, a token cannot be both non-transferable and charge transfer fees.4

  • Transfer fees. A fee is taken from each transfer, so the receiver gets less.5
  • Non-transferable. Once minted, holders cannot move the tokens. This suits assets that should stay with one wallet.6
  • Metadata. The mint can store the token's name, symbol and a link to more details.7
  • Transfer hook. Custom code runs on every transfer, for example to allow or block certain wallets.8

Ethereum and Solana side by side

Ethereum (ERC-20) Solana (SPL tokens)
Where the rules live In each token's own contract2 In a shared Token Program1
Where balances live Inside the token contract, read with balanceOf9 In a token account for each holder1
Letting someone spend for you approve and allowance9 Approve a delegate3
NFTs A separate standard, ERC-72110 A token type with only one token minted3
Our viewThe token account model surprises people who come from Ethereum. On Solana, holding a token starts with having an account for it, and someone has to create and fund that account first. A delegate, on the other hand, will feel familiar: it works much like an ERC-20 allowance.
Sources
  1. Solana Tokens, Token Accounts, and Token Extensions. Solana documentation, Solana Foundation.
  2. ERC-1155: Multi Token Standard. Ethereum Improvement Proposals (Witek Radomski, Andrew Cooke, Philippe Castonguay, James Therien, Eric Binet, Ronan Sandford), created 17 June 2018, status Final.
  3. Token Program. Solana Program Library documentation (spl.solana.com/token now redirects here).
  4. Extensions (Token Extensions Program, Token 2022). Solana documentation, Solana Foundation.
  5. Transfer Fees (Token Extensions). Solana documentation, Solana Foundation.
  6. Non-Transferable Tokens (Token Extensions). Solana documentation, Solana Foundation.
  7. Metadata Pointer and Token Metadata (Token Extensions). Solana documentation, Solana Foundation.
  8. Transfer Hook (Token Extensions). Solana documentation, Solana Foundation.
  9. ERC-20: Token Standard. Ethereum Improvement Proposals (Fabian Vogelsteller, Vitalik Buterin), created 19 November 2015, status Final.
  10. ERC-721: Non-Fungible Token Standard. Ethereum Improvement Proposals (William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs), created 24 January 2018, status Final.

General education built from the publicly available sources listed above. Not financial, legal, tax or investment advice. Naming a company, project or regulator is not an endorsement either way. Last checked 2026-10-22. Terms and disclaimer.