Glossary

ABI (Application Binary Interface) : A standard defining how method calls are encoded, routed, and decoded. On Algorand, ARC-4 is the ABI standard.

AMM (Automated Market Maker) : A smart contract that provides liquidity for token swaps using a mathematical formula (e.g., constant product) instead of a traditional order book.

ARC-4 : The Algorand Request for Comments defining the Application Binary Interface for smart contracts. Specifies method selectors, argument encoding, and return value conventions.

ARC-56 : The application specification format that describes a contract's methods, state schema, and deployment metadata. Generated by the PuyaPy compiler.

ARC-200 : A smart-contract-based token standard for Algorand, similar in concept to Ethereum's ERC-20. Unlike native ASAs, ARC-200 tokens are implemented as smart contracts with transfer logic. Less common than ASAs but used by some protocols.

ASA (Algorand Standard Asset) : A first-class on-chain asset (fungible token, NFT, or security token) created via an Asset Configuration transaction. Accounts must opt in before holding an ASA.

AVM (Algorand Virtual Machine) : The bytecode execution engine that runs TEAL programs. Supports uint64 and bytes types, with a 700-opcode budget per app call and 20,000 per LogicSig transaction.

BigUInt : An arbitrary-precision unsigned integer type (up to 512 bits) available in Algorand Python for math that exceeds uint64 range.

Box storage : Application-controlled key-value storage where each entry is an independent "box." Only the owning application can create, read, modify, or delete its boxes on-chain.

Clear state program : The second of the two programs in every smart contract. Runs when a user force-exits an application. The user's local state is always cleared regardless of the program's result.

Constant product formula : The AMM invariant \(x \times y = k\), where \(x\) and \(y\) are token reserves. Ensures that removing one token requires adding the other in proportion.

Concentrated liquidity : An AMM design (Uniswap V3) where liquidity providers choose a price range for their capital, dramatically improving capital efficiency but making positions non-fungible and amplifying impermanent loss.

Delegated signature : A LogicSig mode where an existing account signs the program, authorizing anyone holding the signed program to submit transactions from that account subject to the program's constraints.

DeFi (Decentralized Finance) : Financial applications built on smart contracts that operate without centralized intermediaries.

Escrow : A smart contract account that holds assets and releases them only when programmatic conditions are met. On Algorand, the contract's deterministic address acts as the escrow.

Fee pooling : The ability for one transaction in an atomic group to overpay its fee to cover the minimum fees of other transactions in the same group.

Global state : Key-value storage attached to an application, readable by any transaction that references the app. Limited to 64 key-value pairs with keys up to 64 bytes and key + value combined up to 128 bytes.

Inner transaction : A transaction emitted by a smart contract during execution (e.g., sending tokens, creating assets). Inner transactions inherit the contract's authority.

Impermanent loss : The reduction in value that liquidity providers experience compared to simply holding their tokens, caused by the AMM rebalancing the position as prices move. Called "impermanent" because it reverses if the price returns to its original ratio.

Local state : Per-account key-value storage for each application a user opts into. Limited to 16 key-value pairs. Can be cleared unilaterally by the user via ClearState.

LogicSig (Logic Signature) : A TEAL program that authorizes a transaction in place of a private key signature. Operates in contract account mode or delegated signature mode.

LP token (Liquidity Provider token) : A token minted by an AMM to represent a liquidity provider's share of the pool. Redeemable for a proportional share of both reserve assets.

MBR (Minimum Balance Requirement) : The minimum Algo balance an account must maintain, calculated based on the resources it holds (ASAs, applications, boxes). The base MBR is 0.1 Algo.

Multisig (Multi-Signature) : An account that requires signatures from multiple parties (M-of-N) to authorize a transaction. Used for admin operations, treasury management, and governance in production protocols. Algorand supports multisig natively at the protocol level.

Opcode budget : The maximum computational cost allowed per execution context. Smart contracts get 700 opcodes per app call (poolable across a group); LogicSigs get 20,000 per transaction.

Smart contract : A stateful program deployed on Algorand that validates transactions and manages on-chain state. Consists of an approval program and a clear state program.

Subroutine : A reusable function within an Algorand Python contract, decorated with @subroutine. Compiled to a TEAL subroutine, reducing program size when called multiple times.

TEAL (Transaction Execution Approval Language) : The low-level bytecode language executed by the AVM. Algorand Python compiles to TEAL via the PuyaPy compiler.

TEALScript : A TypeScript-based smart contract language for Algorand that compiles to TEAL bytecode. An alternative to Algorand Python (PuyaPy) for developers who prefer TypeScript.

Template variable : A compile-time parameter in a smart contract or LogicSig program, substituted with a concrete value before compilation. Produces a unique program hash per parameter set.

TWAP (Time-Weighted Average Price) : A price derived by averaging spot prices over a time window, weighted by block time. Resistant to single-block manipulation. Used by lending protocols as a price oracle.

VibeKit : A CLI tool that configures AI coding agents for Algorand development. Installs agent skills, documentation tools, and blockchain interaction tools so AI assistants can write, compile, deploy, and debug contracts.

Wide arithmetic : 128-bit intermediate arithmetic using op.mulw (multiply wide) and op.divmodw (divide-modulo wide) to prevent overflow in uint64 calculations.

ZK proof (Zero-Knowledge proof) : A cryptographic proof that a statement is true without revealing why it is true. Used in this book for private voting where the proof shows a vote is valid without revealing the choice.