SolStack
Back to Academy

Smart Contracts & Programs

Self-executing code on blockchain

Plain English

Like a vending machine - you put in money, select what you want, and automatically get your item. Smart contracts are programs that automatically execute agreements when conditions are met, without needing a middleman. For example, automatically paying rent on the first of each month.

Technical

Self-executing code deployed on a blockchain that automatically enforces and executes the terms of an agreement when predetermined conditions are met. On Solana, these are called Programs and are compiled to BPF bytecode, storing state in separate Account data structures following the runtime’s architecture.

Open full page

Plain English

The standard way to create tokens on Solana, like how PDFs are a standard for documents. Whether you’re creating a new coin, NFT, or any digital asset, you use the SPL Token program. It ensures all tokens work the same way and are compatible across all Solana apps.

Technical

Solana Program Library Token standard defining fungible and non-fungible tokens on Solana. SPL Tokens are created through a standardized program providing mint authority, supply management, account structures, and transfer mechanisms. The standard enables efficient token operations with associated token accounts (ATA) for each user-mint combination, implementing rent-exempt requirements and multi-signature support.

Open full page

Plain English

A service that feeds real-world information into the blockchain. Since smart contracts can’t access external data themselves (like stock prices or weather), oracles act as trusted bridges bringing that information on-chain so contracts can use it.

Technical

Third-party services providing external data to blockchains and smart contracts. Oracles solve the oracle problem - blockchains cannot natively access off-chain data. Decentralized oracle networks like Pyth and Chainlink aggregate data from multiple sources using cryptographic proofs and reputation systems. Critical for DeFi price feeds, cross-chain communication, and any contract requiring external state verification.

Open full page

Plain English

Apps that run on blockchain instead of centralized servers. Like regular apps but no single company controls them. Examples: Uniswap for trading, Aave for lending, or Axie Infinity for gaming. They use smart contracts as their "backend" logic.

Technical

Applications built on blockchain networks using smart contracts for core functionality instead of centralized servers. dApps typically feature: open-source code, decentralized governance, token-based economics, and permissionless access. On Solana, dApps leverage the runtime’s account model and parallel processing for high-performance applications.

Open full page

Plain English

Special addresses on Solana that are controlled by programs rather than users. Think of them as automatic accounts that programs can use to store data or hold tokens. They enable programs to have their own "bank accounts" and storage.

Technical

Deterministically generated addresses on Solana that are controlled by programs rather than private keys. PDAs enable programs to sign transactions and own accounts, facilitating complex smart contract interactions. Generated using program ID and seed values, PDAs are essential for account ownership patterns and cross-program invocation.

Open full page

Plain English

When one Solana program calls functions in another program, like apps working together. This allows complex interactions - a trading program might call a token program to transfer assets, creating powerful composable applications.

Technical

Mechanism enabling Solana programs to invoke instructions from other programs within the same transaction. CPI enables composability by allowing programs to interact with SPL Token, associated token accounts, and other programs. Critical for building complex applications that leverage existing program functionality while maintaining security through the runtime’s privilege model.

Open full page

Plain English

Upgradeable programs can be modified by their developers to fix bugs or add features, but this requires trust. Immutable programs cannot be changed once deployed - more trustless but cannot be improved. Different projects choose based on their needs.

Technical

Solana programs can be deployed as upgradeable (retain upgrade authority for modifications) or immutable (permanently frozen). Upgradeable programs enable bug fixes and feature additions but introduce governance risk and developer control. Immutable programs provide maximum trustlessness but cannot adapt to changing requirements or security fixes.

Open full page

Plain English

The ability for different DeFi protocols to work together like Lego blocks. You can use multiple services in a single transaction - borrow money, trade tokens, and provide liquidity all at once. This creates powerful combinations and innovations.

Technical

Property enabling protocols to integrate and interact seamlessly, creating "money legos" where complex financial operations combine multiple primitives. Atomic composability allows multi-protocol interactions within single transactions. Solana’s parallel processing and account model enable efficient composability while maintaining security through clear dependency management.

Open full page

Plain English

Pre-built, tested code that developers can use in their programs instead of writing everything from scratch. Solana Program Library (SPL) includes common functions like token creation and management. Like using proven recipes instead of inventing new ones.

Technical

Collections of audited, reusable smart contract components that developers can integrate into their applications. Solana Program Library (SPL) provides standard implementations for tokens, associated accounts, governance, and other common functionality. Program libraries reduce development time, improve security through battle-tested code, and ensure ecosystem compatibility.

Open full page