Glossary
One- or two-sentence definitions for every term used elsewhere in the docs. Linked from primers and tutorials.
Solana
Account — addressable chunk of memory on Solana. Holds lamports, data, an owner program, and an executable flag. Everything on chain is an account.
Anchor — a Rust framework that hides Solana's low-level account boilerplate behind macros (#[program], #[derive(Accounts)], #[account]). Sunscreen targets Anchor by default.
BPF — Berkeley Packet Filter. The bytecode format Solana programs compile to.
Codama — a code generator that produces typed clients (JavaScript, Rust, …) from an Anchor IDL. Sunscreen wraps it.
Devnet — the public Solana test network. Free SOL via faucet, throwaway, perfect for staging before mainnet.
Discriminator — an 8-byte prefix Anchor writes at the start of every program-owned account, identifying its type.
Fee payer — the signer who pays transaction fees. Usually the wallet that initiated the transaction.
IDL (Interface Definition Language) — JSON file describing a program's instructions and account layouts. Anchor builds emit one; sunscreen exports it.
Instruction — a single call to a program inside a transaction. Specifies the program ID, the accounts touched, and a data payload.
Lamport — the smallest unit of SOL. 1 SOL = 10⁹ lamports.
Localnet — a local Solana validator running on your laptop. Sunscreen's chain serve launches one (via Surfpool or solana-test-validator).
Mainnet-beta — Solana production.
Metaplex — a collection of standards and tools for NFTs on Solana. The Token Metadata program is the canonical NFT spec.
PDA (Program-Derived Address) — an address derived deterministically from seeds + a program ID. Has no private key. Only the owning program can sign for it.
Pinocchio — a minimal-overhead alternative to Anchor for Solana programs. Sunscreen supports it via chain new --framework pinocchio.
Program — an executable account on Solana. Stateless. Reads and writes other accounts.
Program ID — the public key of a deployed program.
Pubkey — a 32-byte public key. Addresses, program IDs, signers — all Pubkeys.
Rent — a one-time deposit when creating an account, proportional to its data size. Refunded on close.
RPC — the JSON-RPC endpoint of a Solana validator (e.g. https://api.devnet.solana.com).
Signer — an account whose private key signed the transaction. Required for any account that gets debited or whose authority is asserted.
SOL — the native token. Used for fees and rent.
SPL Token — Solana's fungible token standard (and its program). Sunscreen's scaffold spl-token recipe generates a slice that mints / transfers.
Surfpool — a community-driven local validator alternative to solana-test-validator, optimized for dev loops. Sunscreen prefers it when present.
Transaction — a bundle of instructions, signed by one or more accounts, submitted to the network atomically.
Sunscreen
Chain (subcommand) — chain new, chain build, chain serve, chain doctor. Workspace lifecycle.
Codama config — a JSON file Sunscreen manages so Codama knows where to read the IDL and where to write clients.
Frontend hooks — React/Solid Query hooks Sunscreen generates from an IDL via generate frontend-hooks.
Generator tag — the value (e.g. account, event) Sunscreen writes inside a marker so re-runs know what to regenerate.
Marker — a comment pair (// sunscreen:begin {generator=…} … // sunscreen:end) inside generated files. Sunscreen edits only the content between them on subsequent runs. Read Marker protocol.
NDJSON events — newline-delimited JSON emitted by chain build / chain serve for editor and CI integration. See NDJSON events.
Plugin — an external binary speaking sunscreen's JSON-RPC protocol that extends scaffold <noun>. See Plugin protocol.
Recipe — a composite scaffold built on top of primitives. scaffold crud, scaffold spl-token, scaffold metaplex-nft.
Scaffold (subcommand) — adds an instruction, account, event, error, program, or recipe to an existing workspace.
Sunscreen.yml — the project's config file. Declarative source of truth for programs, plugins, runtime preferences.
Quickstart — beginner-friendly composite command that wires chain new + recipes + frontend hooks in one step.