What is SPL token?

A token on Solana issued by the shared token program rather than by a contract of its own, which is the structural difference from an Ethereum token.

Not yet verifiedHow we verify

3 min read

In this entry

A token on Solana issued by the shared token program rather than by a contract of its own, which is the structural difference from an Ethereum token.

Every token has a mint account holding its supply and decimals, and each holder has a separate token account tied to that mint, usually a deterministic associated token account (source: the Solana Program Library documentation). This is why receiving an unfamiliar Solana token can cost a small amount of SOL: an account has to exist, and accounts must be rent-exempt. It is also why airdropped junk tokens appear in wallets unbidden. See rent, program, and token.

The consequence a buyer notices is that a Solana wallet holding several tokens needs a small SOL balance just to exist, separate from anything needed to pay for transactions.

How it works

On Ethereum, each token is its own deployed contract holding its own balance table. On Solana, one shared program implements the token logic for everything, and each token is data rather than code. That data lives in accounts.

A mint account holds the token's total supply, its decimals, and the authorities allowed to mint more or freeze balances. A token account holds one holder's balance of one mint. The associated token account is the standard, deterministically derived address for a given owner and mint, which is what lets a sender compute where to deposit without asking you.

Because Solana charges rent for account storage, an account must hold enough SOL to be rent-exempt or it is reclaimed. For a standard token account that deposit is roughly 0.002 SOL, and it is returned when the account is closed (source: the Solana documentation on rent). Anyone can pay it, which is why someone can create a token account in your wallet without your involvement.

The freeze and mint authorities are worth checking on any unfamiliar token. A live freeze authority means the issuer can immobilize your balance. A live mint authority means supply is not fixed. Both are visible on chain.

The newer Token-2022 program adds optional extensions such as transfer fees and transfer hooks, which change how a token behaves on every move (source: the Solana Program Library documentation).

Example

Illustrative. You hold SOL and buy three different tokens. Each one needs its own token account, so roughly 0.002 SOL per token, about 0.006 SOL total, is locked as rent exemption. That deposit is not a fee and comes back if you close the accounts once the balances are empty. Separately, an unsolicited token appears in your wallet because someone else paid to create the account and sent you a balance. Nothing was taken from you, and interacting with it is where the risk starts.

Why it matters when you buy

If you buy an asset on an exchange and withdraw it to a Solana wallet, you need SOL there for rent exemption and fees before anything works. The chain pages show what each network costs and how it settles, and the guide on sending crypto across chains covers arriving on a chain without its native token.

  • rent — why token accounts need a SOL deposit
  • program — the shared code that runs all tokens
  • pda — how the standard account address is derived
  • token — the general category
  • erc 20 — the Ethereum equivalent
  • airdrop — how unwanted tokens arrive

Questions

Why does my wallet need SOL to receive a token?

Because the receiving token account must exist and must be rent-exempt. Either you fund it or the sender does, and until it exists there is nowhere for the balance to go.

Can an issuer freeze my SPL token balance?

Only if the mint has a freeze authority set. That is visible on chain and is one of the first things to check on an unfamiliar token.

Do all Solana tokens behave the same way?

Not since Token-2022. Its extensions can add transfer fees and hooks that run on every transfer, so behavior varies by mint rather than being uniform. See smart contract.