All guides
SPLBeginner

Solana token decimals: why almost everyone uses 9

Decimals on Solana aren't cosmetic — they change how supply is stored on-chain and how wallets display balances. Here's the right number to pick.

4 min read

When you create an SPL token you have to pick a decimals value between 0 and 9. It's permanent — you can't change it after launch. Most Solana tokens use 9. Here's why, and the edge cases where another value makes sense.

What decimals actually does

On-chain, every balance is stored as an integer (u64) in "base units". decimals tells wallets how many digits to shift before displaying.

  • A token with 9 decimals and a stored balance of 1,000,000,000 displays as 1.000000000.
  • A token with 6 decimals and the same stored balance displays as 1,000.000000.

It's purely a display convention. It doesn't change the math, the supply cap (u64 max ≈ 18.4 quintillion base units), or the fees.

Why 9 is the de facto standard

  • SOL itself has 9 decimals (1 SOL = 10⁹ lamports). Picking the same value makes mental arithmetic easier when you compare token amounts to SOL.
  • Every Solana SDK, indexer, and UI defaults to 9 for unknown tokens. Picking 9 means fewer rendering bugs.
  • Memecoins with 1 billion supply (1,000,000,000 UI tokens) need 9 decimals to fit comfortably inside u64 even after a 10x supply event.

When to pick something else

| Decimals | Use case | |---|---| | 0 | NFTs in fungible form, collectibles, anything where fractional ownership is meaningless | | 2 | Cents-style tokens, points programs, anything mirroring fiat conventions | | 6 | USDC, USDT — stablecoin convention inherited from Ethereum | | 8 | BTC-pegged wrapped assets (BTC has 8 decimals) | | 9 | Everything else, especially memecoins and utility tokens |

What can go wrong if you pick badly

  • Pick 0 decimals for a memecoin → users can't send "0.5 tokens", which kills micro-transactions and tipping.
  • Pick 2 decimals with a 1 trillion supply → you overflow u64 and the create-mint instruction fails.
  • Pick 6 decimals for a memecoin → most wallet UIs and bots assume 9, your balances render with the wrong magnitude in some surfaces.

You can't change it later

decimals is set in the InitializeMint instruction and is part of the immutable mint account. The only way to "change" it is to deploy a new mint and migrate holders 1:1 — basically a fork.

Bottom line

Pick 9 unless you have a concrete reason not to. SolanaForge's create flow defaults to 9 and warns you if you change it. The 30 seconds you save by not thinking about decimals is one of the best decisions in your launch.

Ready to launch your token?

One signature, 0.1 SOL service fee, IPFS metadata pinned via Pinata, mainnet only.

More guides