Skip to main content

What Is SPL Token? Solana's Token Standard Explained

Solana's token standard — how SPL Token + Token-2022 work, vs ERC-20 and TRC-20

Written by Eco
What Is SPL Token? Solana's Token Standard Explained

If you've sent USDC on Solana, held PYUSD in Phantom, or claimed an airdrop on a Solana DEX, you've touched an SPL token. SPL is the token standard that makes those balances work. This guide walks through what SPL means, how the Token Program holds your balance, what changed with Token-2022, and how SPL differs from ERC-20 on Ethereum and TRC-20 on Tron.

What does SPL stand for?

SPL stands for Solana Program Library. It's a collection of onchain programs (Solana's term for smart contracts) maintained by Solana Labs that ship reference implementations for common functions, like a token registry, a memo program, and a name service. When people say "SPL token," they usually mean a token issued through the SPL Token Program — Solana's equivalent of the ERC-20 standard on Ethereum.

How SPL tokens actually work

SPL splits responsibilities across three account types, which is different from the Ethereum model where one contract holds every balance in a single mapping.

  • Token Program. A single program deployed at address TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA owns every SPL mint and every token account. It contains the logic for transfers, minting, and burning.

  • Mint account. One account per token. It stores total supply, decimals, the mint authority, and the optional freeze authority. USDC on Solana lives at EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v — a single mint that every wallet's USDC balance references.

  • Token account. One per (user, token) pair. Your USDC balance lives in your token account, not in your main wallet account. Most wallets use the Associated Token Account (ATA) convention — a deterministic address derived from your wallet + mint — so apps can find it without you doing anything.

Practical consequence: the first time someone sends you a new SPL token, the sender (or the wallet) creates your ATA. That account costs roughly 0.00204 SOL in rent-exempt deposit, which is refunded if you ever close the account. Phantom and Solflare handle this silently.

What is Token-2022 (SPL Token Extensions)?

Token-2022 is a newer program at TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb that's backward-compatible in spirit but adds optional features called Token Extensions. Issuers opt in per mint. The original Token Program still exists and still backs the majority of liquidity, but most new institutional issuance ships on Token-2022.

The headline extensions:

  • Transfer hooks. Run custom logic on every transfer — used for allowlists, KYC checks, or royalty routing.

  • Confidential transfers. Hide amounts (but not sender/receiver) using zero-knowledge proofs.

  • Interest-bearing tokens. Balance rebases automatically based on a published rate, without per-user transactions.

  • Transfer fees. A fee is deducted at the protocol level on every transfer and routed to a withdrawal authority.

  • Permanent delegate, non-transferable, metadata pointer. Used for compliance, soulbound tokens, and onchain metadata respectively.

PayPal's PYUSD on Solana is the most prominent Token-2022 issuance — it uses confidential transfer support and a permanent delegate for compliance freezes. Circle's USDC on Solana stayed on the original Token Program.

The major SPL stablecoins

Stablecoins dominate SPL volume on Solana. The three that matter most:

  • USDC (SPL). Native, issued by Circle, mint EPjF…Dt1v. By far the most used dollar on Solana and the quote asset on most Solana DEXes (Jupiter, Raydium, Orca).

  • USDT (SPL). Native, issued by Tether, mint Es9v…ZwyB. Tether reports SPL USDT as one of its faster-growing supply venues alongside Tron and Ethereum. USDT's total circulating supply across all chains sits at $189.5B per DeFiLlama (May 2026).

  • PYUSD (SPL). Native on Solana via Token-2022, issued by Paxos for PayPal. Circulating supply $3.4B across Ethereum + Solana per CoinGecko.

Beyond stables, the SPL standard also backs SOL liquid-staking tokens (mSOL, jitoSOL, bSOL), every Jupiter or Pump.fun token, and Solana NFTs (which use a related but distinct Metaplex standard built on top of SPL).

How do I add an SPL token to Phantom or Solflare?

You usually don't need to. Both wallets auto-display any SPL token that lands in your wallet, and both pull names + logos from the Solana token list. If a token isn't showing, it's almost always one of two issues: (1) the token account hasn't been created yet (send a tiny amount or use the wallet's "manage tokens" toggle), or (2) the token is unverified and hidden by the spam filter.

Phantom: Open the token list → tap the gear icon → toggle "Manage token list" → enable the specific token, or paste its mint address. Phantom's support docs cover the unverified-token flow.

Solflare: Tokens tab → "+" icon → paste mint address → confirm. Solflare also lets you close empty token accounts from this screen to reclaim the 0.00204 SOL rent.

SPL vs ERC-20 vs TRC-20

SPL, ERC-20, and TRC-20 all do the same job — track fungible balances on their respective chain — but the engineering choices and fee economics diverge sharply.

Property

SPL (Solana)

ERC-20 (Ethereum)

TRC-20 (Tron)

Underlying VM

Solana Sealevel (Rust/C)

EVM (Solidity)

TVM (Solidity-compatible)

Where balance lives

Per-user token account (ATA)

Mapping inside the token contract

Mapping inside the token contract

Contract per token

One mint account, shared Token Program

One full contract per token

One full contract per token

Gas asset

SOL

ETH

TRX (or burned bandwidth/energy)

Typical transfer cost

~$0.00025

$0.20–$3 depending on base fee

~$1–$3 in energy, often $0 if rented

Approve/transferFrom pattern

Optional delegate per token account; not the default UX

Standard — required for DEX/lending

Standard — same as ERC-20

Programmable extensions

Token-2022 hooks, confidential transfers, fees, interest

Custom contract code per token (ERC-1363, ERC-2612 permit, etc.)

Limited; mostly ERC-20 parity

Settlement time

~400ms slot, ~13s finality

~12s block, ~13min finality

~3s block, ~57s finality

The headline difference for users: on Solana, you almost never sign an "approve" transaction before a swap because the runtime model lets the swap program own the token movement directly within a single instruction. On Ethereum and Tron, every new dApp interaction usually means one approve transaction plus one swap transaction. (For a deeper comparison of the two non-Solana standards, see our TRC20 vs ERC20 breakdown.)

Why does SPL feel cheaper than ERC-20?

Two reasons. First, Solana fees are denominated in SOL and base fees are flat (5,000 lamports per signature, or about $0.00042 at $84 SOL), with priority fees added on top during congestion. Second, the SPL design moves per-token state into per-user accounts, which removes the storage-write cost that dominates ERC-20 transfers on Ethereum L1. The trade-off: more accounts to manage and small rent deposits per token, which is invisible most of the time but matters if you hold dozens of low-value tokens.

Common SPL gotchas

  • Sending to a wallet without an ATA. Some older wallets and exchanges don't auto-create the ATA. The transaction will either fail or the sender pays an extra ~0.00204 SOL to create it.

  • Token-2022 compatibility. Older DEXes, bridges, and wallets sometimes don't recognize Token-2022 mints. Check that your destination (CEX deposit, DEX pool, bridge) supports Token-2022 before sending PYUSD or other extension-using tokens.

  • Spam tokens. Anyone can airdrop SPL tokens to any wallet. Phantom and Solflare hide unverified ones by default; don't interact with random tokens that appear in your wallet.

  • Rent reclaim. If you close a token account with a zero balance, you get the ~0.00204 SOL back. Solflare exposes this; Phantom hides it behind "burn token."

When should you use SPL instead of another network?

If you're sending stablecoins to another Solana wallet or a Solana-native dApp, use SPL — fees are pennies and finality is ~13 seconds. If you're sending to a CEX, check which networks they support for that token; many list SPL USDC and SPL USDT as the cheapest option. For cross-chain moves out of Solana, use a CCTP-based route for USDC or a major bridge for USDT — both routinely settle in under a minute. Tools like Eco's stablecoin routing pick the SPL leg automatically when it's the cheapest path.

Methodology & sources

Token Program addresses and account structure: spl.solana.com/token. Token-2022 extensions and feature list: spl.solana.com/token-2022. PYUSD on Solana implementation: Paxos and PayPal launch announcements (May 2024). Wallet flows verified against Phantom's help.phantom.com and Solflare's docs.solflare.com. Stablecoin supplies: DeFiLlama Stablecoins (May 2026). SOL price for fee math: CoinGecko (May 2026, $83.97). Solana fee structure: Solana docs on transaction fees and rent.

Related reading

Did this answer your question?