The Solana Program Library (SPL) is a set of pre-coded programs that can be used to issue tokens and build dapps on the Solana platform.
The Solana Program Library (SPL) is a set of pre-coded programs that can be used to issue tokens and build dapps on the Solana platform.
Blockchain platforms typically operate as programming layers, allowing developers to execute smart contract code on-chain.
Whereas a platform like Ethereum is open for developers to program any code of their choosing, Solana works differently due to its stateless model and unique consensus protocol. Each smart contract deployment on Ethereum holds the code as well as the state of execution of the smart contract itself. In Solana’s stateless model, accounts are responsible for the storage of data and programs.
Ethereum’s state-based model means that it must operate in a linear way, processing each transaction in sequence to update the state of the blockchain. In contrast, Solana’s stateless model combined with its Proof of History consensus, which timestamps transactions, means it can process many transactions in parallel, offering a far higher throughput.
The stateless model means that programs on Solana can be implemented in a generic way via the Solana Program Library (SPL), a pre-defined set of smart contracts deployed on the Solana blockchain to operate across multiple accounts in parallel.
The availability of a program library means that Solana offers lower technical barriers to entry compared to Ethereum, making its platform more accessible to developers with less programming experience or expertise. However, a trade-off is that Solana isn’t necessarily as flexible in its programmability as other blockchain platforms.
It’s worth noting that SPL defines the smart contracts necessary for token issuance and transactions on Solana. Thus, SPL is frequently used in reference to Solana token types and often compared to Ethereum’s ERC-20 token standard. However, SPL covers a wider array of applications than token standards.
SPL programs are written in Rust, the programming language of the Solana ecosystem.
Types of SPL Programs
SPL covers many different types of functions and applications available for use by dapp developers on Solana. The most recognizable ones are summarized as follows.
SPL Token Program
The Token Program defines the common standard for issuing fungible and non-fungible SPL tokens on Solana. Fungibility is defined by the developer as a token attribute, alongside other attributes such as the token name, ticker, and maximum supply.
SPL Swap Program
The Swap Program is a program for building a decentralized exchange using automated market makers, eliminating the need for a central limit order book. The SPL Swap Program is heavily influenced by Uniswap and Balancer.
SPL Lend Program
Another DeFi-inspired program, SPL Lend allows developers to deploy their own implementation of a lending protocol using liquidity pools, similar to Aave or Compound.
SPL Stake Pools
SPL has two types of staking pool programs. One enables a staking pool that allows SOL to be staked off-chain, so a delegation bot can distribute all pooled stakes across the whole validator network.
The other type of pool is a stripped-back version of the first, using significantly less code to enable pooling of stakes against a single validator.
SPL Name Service
The SPL Name Service allows the issuance and management of names on-chain on Solana. Names could cover domains or URLs, Solana Pubkeys, Twitter handles, and more.
SPL Memo Service
The Memo Service allows a short memo to be attached to transactions, verifying that the account from which the memo originated is also the signer of the transaction.
Features of SPL Tokens
SPL tokens offer developers several features and are one of the most used functionalities of the Solana blockchain.
Fungible/non-fungible
SPL tokens can be fungible or non-fungible. However, unlike Ethereum where separate standards exist for each, SPL token fungibility is defined as part of the SPL program implementation.
Composable and interoperable.
Like ERC-20 tokens on Ethereum, SPL tokens are composable and interoperable across the Solana ecosystem, so a single dapp can support all SPL tokens.
Fast and low-cost to transact
SPL tokens benefit from the underlying Solana architecture, meaning transaction times are near-instant and transaction fees are very low compared to Ethereum.
Wallet compatibility
In general, wallets designed to support Ethereum-based tokens and those issued on EVM-compatible networks may not support SPL tokens, and vice versa. Phantom is one example of a wallet developed for Solana and SPL tokens, while other popular options include Slope and Solflare.
Token-2022 extensions
In early 2024, Solana announced a project to introduce token extensions, also known as Token-2022. Token extensions bring new features to SPL tokens, overcoming some of the limitations inherent in the existing SPL functionality.
New features include confidential transfers, extended metadata, and more. These extensions significantly expand the functionality of Solana tokens. For example, being able to set rules around token transfers may make Solana a more appealing platform for institutions that wish to limit trading only to those accounts that have undergone the relevant anti-money laundering checks.
Token-2022 is set for deployment to the Solana mainnet in late 2024.
Solana Program Library essentials
The Solana Program Library (SPL) is a set of pre-written programs for implementing tokens and applications on the Solana blockchain.
SPL programs cover functionality such as minting fungible and non-fungible tokens, as well as setting up staking pools and DeFi applications such as lending and swaps.
The limitations of pre-written programs for tokens have led to the rollout of Token-2022, a set of extensions introducing new features and more flexibility in SPL token creation.