Program Notes
Program Notes

Terms Used on This Site, Defined Once

A shared vocabulary, written for people reading transactions rather than writing programs. Every entry is used in this exact sense across the rest of the site.

These are the words this desk uses when describing launchpad automation, defined in the sense they carry here. Most of them are Solana terms rather than launchpad terms, which is the point: the durable vocabulary belongs to the runtime, and the launchpad-specific parts move with each deployment.

Definitions are written for reading transactions rather than for writing programs. Where a term has a stricter technical meaning in the runtime, the entry says what you need in order to interpret a trace correctly and stops there.

Account meta
One entry in an instruction's account list: a public key plus a signer flag and a writable flag. The flags are what the runtime enforces, so reading them first tells you which accounts a transaction was permitted to change.
Anchor discriminator
The eight bytes prefixed to instruction data or account data by programs built with the Anchor framework, derived from a hash of the item's name. It lets a decoder identify a call or a struct without holding a schema file.
Associated token account
The token account whose address is derived deterministically from a wallet and a mint. Because the derivation is public, anyone can compute where a wallet's tokens will live before the account has been created.
Base units
The integer representation a program actually stores. A token figure in base units must be divided by ten to the power of the mint's decimals to be read as a human quantity, and skipping that step produces numbers wrong by orders of magnitude.
Bonding curve
A pricing arrangement where the exchange rate is a function of the reserves held in a program account rather than of orders placed by counterparties. Every trade moves the price deterministically, and there are no liquidity providers.
Borsh encoding
The binary serialisation format used widely across Solana programs. Integers are little-endian and fixed width, which is why decoding an argument block is a matter of knowing field order and widths rather than parsing text.
Completion flag
The boolean in a launchpad state account that records whether a curve has finished. Once set, the program refuses further curve trades for that mint, and the refusal is a constraint error rather than a network problem.
Compute budget
The execution allowance for a transaction, set by instructions that declare a unit limit and a price per unit. The declared limit and the units actually consumed both appear in the confirmed transaction and can be compared.
Compute unit price
The micro-lamport amount offered per compute unit, which is what funds inclusion priority. A high value around a launch signals urgency; an identical value across unrelated wallets signals a shared default.
Constraint error
A custom error returned by a program when a supplied account fails one of its declared checks: wrong owner, wrong derivation, missing signature. It aborts the whole transaction, which is the safe outcome, and the fee is still spent.
Cross-program invocation
One program calling another during execution. Token movements initiated by a launchpad happen this way, which is why transfers appear as nested inner instructions rather than as top-level calls.
Curve state account
The per-mint account a launchpad program owns and updates on every trade. It holds the reserve figures the pricing formula reads and the flags describing the token's phase, and it is usually at a derived address.
Event authority
A derived account a program invokes itself through in order to write structured events into the transaction record. Its presence in an account list explains why a trade instruction appears to reference the program calling it.
Fee payer
The account charged for a transaction. It does not have to be the account that authorises the trade, and when the two differ the transaction is describing a funding arrangement rather than an individual acting alone.
Inner instruction
An invocation made by a program during execution rather than by the sender. Reading only outer instructions gives a misleading picture of a launchpad trade, because the token movement itself is always nested.
Instruction data
The opaque byte array a program decodes itself. For an Anchor program it begins with a discriminator and continues with fixed-width arguments, and nothing about it is self-describing to the runtime.
Lamport
The smallest unit of SOL, one billionth. Fee figures, rent deposits and trade amounts in program state are all expressed in lamports, so every SOL figure in an interface is a division that someone performed.
Mint account
The account defining a token: its supply, its decimals and its authority fields. It exists before any market for the token does, which is why the earliest detectable moment in a launch is not a tradable moment.
Pre and post balances
The arrays in a confirmed transaction recording every account's lamport balance and every token account's token balance before and after execution. They state what moved, as opposed to logs, which state what a program wanted to say.
Priority fee
The additional cost implied by the compute unit price, paid to influence inclusion. It is distinct from the base fee and from rent, and separating the three is necessary before any per-trade cost figure means anything.
Program derived address
An address computed from seeds and a program id with no private key behind it, allowing a program to sign for it. Launchpads use them for per-mint state, so a token's curve account can be found from the mint alone.
Rent exemption
The lamport balance an account must hold to persist, proportional to its data size. It is a deposit rather than a fee, recoverable if the account is closed, and it is why a wallet's first purchase of a token costs more than its second.
Slippage bound
The maximum spend or minimum receipt a sender will accept, passed as an argument and evaluated at execution time. A bound computed from state that has since moved is the most common cause of a confirmed launchpad failure.
Slot
The unit of chain time used for ordering. Slot distance between transactions is the honest way to describe coordination, because wall-clock timestamps depend on which machine observed the event.
Upgrade authority
The key permitted to deploy new bytecode to an existing program id. Its existence is the reason no account layout, discriminator or program constant described anywhere should be treated as permanent.
Virtual reserves
Reserve figures held in program state for pricing purposes that need not equal the assets physically held. They are what the formula reads, and reading a curve's price without them produces a number that does not match execution.
Writable flag
The bit marking an account as modifiable by an instruction. The set of writable accounts is the blast radius of a transaction: nothing outside it changed, whatever the logs imply.

If a definition here conflicts with what a program actually does today, the program is right. Launchpad deployments change, and a glossary is a snapshot of how the words were used when it was written. Corrections are welcome and are made in the open on the contact page.