1.
Algorand Specifications
Introduction
2.
Reading Guidelines
Algorand BFT Protocol
3.
Overview
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.
Overview
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.
Overview
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.
Overview
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.
Overview
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.
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.
Overview
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.
Overview
21.
Non-Normative
❱
21.1.
AI DeepWiki (Experimental)
21.2.
Initialization
❱
21.2.1.
Full Node
21.2.2.
Follower Node
21.3.
Shutdown
❱
21.3.1.
Full Node
21.3.2.
Follower Node
21.4.
Synchronization
21.5.
Pseudo Node
21.6.
Node API
❱
21.6.1.
Algorand Daemon
21.7.
Appendix A - MsgPack Reference
21.8.
Appendix B - Node Configuration
❱
21.8.1.
General & Versioning
21.8.2.
Storage & Archival
21.8.3.
Networking
21.8.4.
Peer & Connection Management
21.8.5.
Logging
21.8.6.
Metrics & Telemetry
21.8.7.
API & Endpoints
21.8.8.
Consensus
21.8.9.
Transaction Pool & Sync
21.8.10.
Fast Catchup
21.8.11.
Security & Filtering
21.8.12.
Developer & Debugging
21.8.13.
Performance & Resource Management
21.8.14.
Deprecated
Contribution Guidelines
License
Light
Rust
Coal
Navy
Ayu
Algorand Specifications
Algorand Keys Overview
This part specifies the list of keys and their capabilities in Algorand.