in-solana by Supanode

SPL Token Program — ID & Instructions

TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA

The SPL Token Program is the standard program for creating and managing fungible and non-fungible tokens on Solana. Every SPL token mint and token account is owned by this program.

Program ID

TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA

Key instructions

InstructionDescription
InitializeMintCreates a new token mint with a specified decimal count and optional mint/freeze authorities
InitializeAccountCreates a token account for a specific mint, owned by a wallet
MintToMints new tokens to a token account (requires mint authority)
TransferTransfers tokens between token accounts
BurnBurns tokens from a token account, reducing total supply
ApproveDelegates a specified token amount to another account
RevokeRevokes a previously approved delegation
SetAuthorityChanges the mint authority, freeze authority, or account owner
CloseAccountCloses a token account, returning its rent-exempt lamports to a destination
FreezeAccountFreezes a token account, preventing transfers (requires freeze authority)
ThawAccountUnfreezes a previously frozen token account

Token accounts

Every wallet that holds a specific token needs a token account for that mint. Token accounts store the balance, owner, mint address, and delegation state. The standard way to derive a token account address is through the Associated Token Account program.

A token account requires approximately 0.00204 SOL for rent exemption (165 bytes of data).

Decimals

Token mints define a decimal count (0–9) at creation. A mint with 6 decimals stores 1.0 tokens as 1,000,000 raw units. Most fungible tokens on Solana use 6 or 9 decimals. NFTs use 0 decimals with a supply of 1.

FAQ

What is the difference between Token Program and Token-2022? Token-2022 (Token Extensions) is a newer program with additional features like transfer fees, confidential transfers, and metadata pointers. The original Token Program remains the most widely used.

Can I use the Token Program for NFTs? Yes. An NFT is a token mint with 0 decimals and a supply of 1. Metaplex Token Metadata adds name, symbol, and URI on top of the base SPL token.

How do I close a token account? Use the CloseAccount instruction. The account must have a zero token balance. The remaining rent-exempt lamports are returned to a specified destination wallet.

Is the Token Program upgradeable? No. It is a non-upgradeable program deployed at a fixed address.

Updated: