- 1. Algorand Specifications
- Introduction
- 2. Reading Guidelines
- Algorand BFT Protocol
- 3. Preamble
- 4. Normative
❱
- 4.1. Notation
- 4.2. Parameters
- 4.3. Players
- 4.4. Ledger
- 4.5. Messages
❱
- 4.5.1. Data Types
- 4.5.2. Votes
- 4.5.3. Bundles
- 4.5.4. Proposals
- 4.5.5. Seed
- 4.6. State Machine
- 4.7. Player State
- 4.8. Relay Rules
❱
- 4.8.1. Votes
- 4.8.2. Bundles
- 4.8.3. Proposals
- 4.9. State Transitions
❱
- 4.9.1. New Round
- 4.9.2. New Period
- 4.9.3. Garbage Collection
- 4.9.4. New Step
- 4.10. Broadcast Rules
❱
- 4.10.1. Resynchronization Attempt
- 4.10.2. Proposals
- 4.10.3. Reproposal Payloads
- 4.10.4. Filtering
- 4.10.5. Certifying
- 4.10.6. Commitment
- 4.10.7. Recovery
- 4.10.8. Fast Recovery
- 5. Non-Normative
❱
- 5.1. General Concepts
- 5.2. Context Tuple
- 5.3. Security Model
- 5.4. Seed Calculation
- 5.5. Agreement Stages
❱
- 5.5.1. Dynamic Filter Timeout
- 5.5.2. Block Proposal
- 5.5.3. Soft Vote
- 5.5.4. Vote Handler
- 5.5.5. Proposal Handler
- 5.5.6. Bundle Handler
- 5.5.7. Commitment
- 5.6. Recovery Stages
❱
- 5.6.1. Resynchronization Attempt
- 5.6.2. Recovery
- 5.6.3. Fast Recovery
- 5.7. Examples of Protocol Runs
❱
- 5.7.1. Vanilla Run
- 5.7.2. Jalapeño Run
- 5.7.3. Habanero Run
- Algorand Ledger
- 6. Preamble
- 7. Normative
❱
- 7.1. Parameters
- 7.2. States
- 7.3. Blocks
❱
- 7.3.1. Round
- 7.3.2. Genesis
- 7.3.3. Previous Hash
- 7.3.4. Protocol Upgrade State
- 7.3.5. Timestamp
- 7.3.6. Cryptographic Seed
- 7.3.7. Transaction Sequence (Payset)
- 7.4. Pool
- 7.5. Account State
❱
- 7.5.1. Applications
- 7.5.2. Assets
- 7.6. Consensus Participation Updates
- 7.7. Light Block Header
- 7.8. State Proofs
- 7.9. Transactions
❱
- 7.9.1. Payment
- 7.9.2. Key Registration
- 7.9.3. Asset Configuration
- 7.9.4. Asset Transfer
- 7.9.5. Asset Freeze
- 7.9.6. Application Call
- 7.9.7. State Proof
- 7.9.8. Heartbeat
- 7.9.9. Groups
- 7.9.10. Authorization and Signatures
- 7.9.11. Apply Data
- 7.10. Transaction Semantics
❱
- 7.10.1. Assets
- 7.10.2. Applications
- 7.10.3. Heartbeat
- 7.11. Validity and State Changes
- 7.12. Distribution Reward State (Legacy)
- 8. Non-Normative
❱
- 8.1. Blocks
❱
- 8.1.1. Block Header
- 8.1.2. Genesis Block
- 8.1.3. Block Verification
- 8.2. Accounts
❱
- 8.2.1. Authorization Types
❱
- 8.2.1.1. Rekey
- 8.2.2. Keys Types
- 8.2.3. Minimum Balance
- 8.2.4. Consensus Participation
- 8.3. Assets
- 8.4. Transactions
❱
- 8.4.1. Transaction Type Examples
- 8.4.2. Group Transactions
- 8.5. Trackers
❱
- 8.5.1. Trackers API
- 8.6. Protocol Rewards
❱
- 8.6.1. Staking Rewards
- 8.6.2. Distribution Rewards (Legacy)
- 8.7. Transaction Tail
- 8.8. Transaction Pool
❱
- 8.8.1. Parameters
- 8.8.2. Prioritization
- 8.8.3. Update
- 8.8.4. Ingestion
- 8.8.5. Block Assembly
- 8.8.6. Graphic Run Example
- 8.9. Block Commitment
❱
- 8.9.1. State Delta
- 8.10. Appendix A
- Algorand Virtual Machine
- 9. Preamble
- 10. Normative
❱
- 10.1. Stack
- 10.2. Scratch Space
- 10.3. Execution Modes
❱
- 10.3.1. Logic Signatures
- 10.3.2. Applications
- 10.4. Constants
- 10.5. Operations
❱
- 10.5.1. Arithmetic and Logic
- 10.5.2. Byte Array Manipulation
- 10.5.3. Cryptography
- 10.5.4. Loading Values
- 10.5.5. Fields
- 10.5.6. Flow Control
- 10.5.7. State Access
- 10.5.8. Inner Transactions
- 10.6. Assembler
- 10.7. Versioning and Encoding
- 10.8. Appendix A - Opcodes Specifications
- 10.9. Appendix B - What AVM programs cannot do
- 11. Non-Normative
❱
- 11.1. Stack Execution
- 11.2. Run Times
❱
- 11.2.1. Stateless
- 11.2.2. Stateful
- 11.3. Evaluation Context
❱
- 11.3.1. Transition Function
- 11.4. Program Compilation
- 11.5. New OpCodes
- Algorand Keys
- 12. Preamble
- 13. Normative
❱
- 13.1. Root Keys
- 13.2. Voting and Participation Keys
❱
- 13.2.1. Two-Level Ephemeral Signature
- 13.2.2. One-Time Signature
- 13.3. VRF Selection Keys
- 13.4. State Proof Keys
- 14. Non-Normative
- Algorand Cryptographic Primitives
- 15. Preamble
- 16. Normative
❱
- 16.1. Representation
❱
- 16.1.1. Canonical Msgpack
- 16.1.2. Domain Separation
- 16.2. Hash Functions
❱
- 16.2.1. SHA-512/256
- 16.2.2. SHA-256
- 16.2.3. SHA-512
- 16.2.4. SUBSET-SUM
- 16.3. Digital Signatures
❱
- 16.3.1. Ed25519
- 16.3.2. FALCON
- 16.4. Verifiable Random Function
- 16.5. Sortition
- 16.6. Merkle Tree
- 16.7. Vector Commitment
- 16.8. State Proofs
- 17. Non-Normative
❱
- 17.1. Verifiable Random Function
- 17.2. Sortition
- 17.3. Appendix A - Algorand Sodium Fork
❱
- 17.3.1. Constants
- 17.3.2. Functions
- 17.3.3. Examples
- Algorand Network
- 18. Preamble
- 19. Non-Normative
❱
- 19.1. Notation
- 19.2. Parameters
- 19.3. Message Handlers
- 19.4. Addressing
- 19.5. Network Identity
- 19.6. Peer Management
- 19.7. Network Definitions
❱
- 19.7.1. Relay Network
- 19.7.2. P2P Network
- 19.7.3. Hybrid Network
- 19.8. Appendix A - External Libraries
- 19.9. Appendix B - Packets Examples
- Algod Node
- 20. Preamble
- 21. AI DeepWiki (Experimental)
- 22. Non-Normative
❱
- 22.1. Initialization
❱
- 22.1.1. Full Node
- 22.1.2. Follower Node
- 22.2. Shutdown
❱
- 22.2.1. Full Node
- 22.2.2. Follower Node
- 22.3. Synchronization
- 22.4. Pseudo Node
- 22.5. Node API
❱
- 22.5.1. Algorand Daemon
- 22.6. Appendix A - MsgPack Reference
- 22.7. Appendix B - Node Configuration
❱
- 22.7.1. General & Versioning
- 22.7.2. Storage & Archival
- 22.7.3. Networking
- 22.7.4. Peer & Connection Management
- 22.7.5. Logging
- 22.7.6. Metrics & Telemetry
- 22.7.7. API & Endpoints
- 22.7.8. Consensus
- 22.7.9. Transaction Pool & Sync
- 22.7.10. Fast Catchup
- 22.7.11. Security & Filtering
- 22.7.12. Developer & Debugging
- 22.7.13. Performance & Resource Management
- 22.7.14. Deprecated
- Protocol Updates
- Contribution Guidelines
- License