Solana Program Library

The Solana Program Library (SPL) is to Solana what OpenZeppelin is to Ethereum: a collection of audited, reference implementations of common on-chain program patterns. Where Ethereum developers import OpenZeppelin’s ERC-20 or ERC-721 libraries into their Solidity contracts, Solana developers interact with SPL programs that are already deployed on-chain and shared across all protocols. The SPL Token program defines how SOL-based fungible tokens work — every USDC, BONK, JTO, and RAY token on Solana is an SPL token. Token-2022 (released 2022-2023) extends the original SPL Token with programmable features that enable compliance-grade tokens, privacy-preserving transfers, and more complex tokenomics without deploying entirely custom contracts.


SPL Token Program (Original)

Program address: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA

What it defines:

Every fungible token on Solana is a “mint” (a data account managed by the SPL Token program). Tokens are held in “token accounts” — separate from the user’s system account — that are “associated” with the user’s main wallet.

Key concepts:

Mint account:

  • Stores: total supply, number of decimals, current mint authority (who can create more tokens), freeze authority (who can freeze accounts)
  • One mint per token type

Token account:

  • Stores: which mint this account holds, the owner (Solana pubkey), the balance
  • Each user needs a separate token account per token type
  • Associated Token Account (ATA) is the canonical “one per user per token” pattern

Instructions:

  • InitializeMint: Create a new token type
  • MintTo: Create new tokens (requires mint authority)
  • Transfer: Move tokens between token accounts
  • Burn: Destroy tokens
  • Approve: Delegate spending authority
  • FreezeAccount: Block an account from transacting (requires freeze authority)

Usage: Every DeFi protocol on Solana uses SPL Token. If you’ve ever clicked “Approve” to let a Solana dApp spend your tokens, you used SPL token delegation.


Associated Token Account (ATA) Program

Problem: Before ATAs, users had to manually create token accounts before receiving any token.

Solution: The ATA program generates a deterministic token account address from (owner pubkey + mint pubkey). Any protocol can derive the “canonical” token account address for any user + token combination without coordination.

Effect: When you receive an airdrop or buy a token on a DEX, you often see a small transaction that “creates associated token account” — that’s the ATA program initializing the token account, which costs a rent deposit (currently ~0.002 SOL = rent exempt minimum).

Rent collection on exit: When you close a token account (e.g., burn all tokens and reclaim the rent), you receive the 0.002 SOL rent deposit back. This led to a “rent harvesting” meta where users close hundreds of empty token accounts to recover SOL.


Token-2022 Program (SPL Token Extensions)

Program address: TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb

Released as an upgrade to the original SPL Token program, Token-2022 allows mint creators to attach “extensions” to mints at creation time that modify how the token behaves.

Transfer Fee Extension

Use cases:

  • Reflection tokens (redistribution of fees to holders)
  • Protocol revenue from token transfers
  • Tax token mechanics

Technical detail: Fee is taken as a “withheld” amount in each transfer, then “harvested” by designated authorities to a fee collection account.

Confidential Transfer Extension

How: Amounts are encrypted on-chain; only the sender, receiver, and authorized parties can see transfer amounts.

Use cases: Institutional clients needing transaction confidentiality without full privacy chains (Monero, Zcash); compliance transfers where amount is private but participants are known.

Non-Transferable Token Extension

Use cases: Soulbound tokens (credentials, achievements, proofs of humanity that shouldn’t be traded); loyalty points that expire rather than transfer.

Interest-Bearing Token Extension

Use cases: Yield-bearing stablecoins where the yield accrues in the token balance itself (like stETH rebase on Ethereum, but at the token program level).

Transfer Hook Extension

Use cases: Custom royalty enforcement (every NFT transfer pays royalties via the hook); blocklist compliance (check if sender/receiver is on OFAC list); whitelist-only transferability.

Permanent Delegate Extension

Use cases: Regulated stablecoins (USDC could use this for OFAC compliance); enterprise token programs where issuer needs administrative control.

Metadata Extension

Effect: Simpler metadata for tokens that don’t use the full Metaplex NFT standard.


SPL Token vs. Ethereum ERC Standards

Property Solana SPL Token Ethereum ERC-20
Implementation Shared on-chain program Compiled into each contract
Standard updates Token-2022 extensions; no code redeployment Must redeploy contract
Programmability Extensions at mint creation Arbitrary Solidity logic
Account model Token accounts (separate from wallet) Balance in contract mapping
Gas fees <<$0.001 per transfer Variable, $0.10-$10+ on L1

SPL for NFTs: Metaplex Standard

While SPL Token handles fungibles, Solana NFTs use Metaplex:

  • Metaplex builds on SPL Token (mints with supply=1, decimals=0)
  • Adds on-chain metadata (JSON URI, creator royalties)
  • Token-2022 Transfer Hook is increasingly used for royalty enforcement (addressing the NFT royalties opt-out problem from OpenSea era)

How to Interact with SPL Tokens

Users:

  1. Get SOL for gas from
  2. Use Phantom, Backpack, or Solflare wallets — all have native SPL token support
  3. For cold storage: (Solana + SPL token support)

Developers:

  • @solana/spl-token npm library for JavaScript/TypeScript
  • spl-token Rust crate for on-chain program development
  • Solana Playground for browser-based testing

Social Media Sentiment

The SPL token program is quietly one of Solana’s strongest technical features — the shared on-chain implementation (rather than per-contract copies) means every SPL token benefits from the same audited, optimized implementation. Developers appreciate not having to reaudit basic token functionality. Token-2022 extensions generated considerable interest from institutional projects — confidential transfers and transfer hooks in particular attracted enterprise stablecoin discussions. Some degens dislike the rent model (small SOL cost to hold any token, and needing to manually close empty accounts). The NFT royalties enforcement via transfer hook is ongoing — whether this finally solves the royalties problem is unresolved. Overall, SPL is viewed as well-engineered and Token-2022 as a thoughtful upgrade that expands Solana’s addressable market toward institutional and compliance-sensitive use cases.


Last updated: 2026-04

Related Terms


Sources

Yakovenko, A. (2017). Solana: A New Architecture for a High Performance Blockchain. Solana Labs.

Buterin, V. (2015). Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform. Ethereum Foundation.

Preneel, B., & Van Rompay, B. (2005). Analysis and Design of Cryptographic Hash Functions, Message Authentication Codes, and Block Ciphers. Katholieke Universiteit Leuven.

ElGamal, T. (1985). A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms. IEEE Transactions on Information Theory.

Dodis, Y., Reyzin, L., & Smith, A. (2004). Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data. EUROCRYPT.