Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

$$ \newcommand \DefaultUpgradeWaitRounds {\delta_x} \newcommand \UpgradeThreshold {\tau} \newcommand \UpgradeVoteRounds {\delta_d} $$

Protocol Updates

The Algorand Foundation governs the development and maintenance of the Algorand protocol.

Protocol updates SHALL be executed through the following process:

1. Specification Publication

The Algorand Foundation SHALL publish the official protocol specification in the public specifications’ repository.

2. Protocol Version Identification

Each protocol version SHALL be uniquely identified by the URL of the corresponding git release commit. This URL MUST include the cryptographic hash of the commit.

3. On-Chain Approval

A protocol update SHALL become effective only if it is approved on-chain by a supermajority of block proposers. Each block proposer signals support for a protocol update by including the identifier of the proposed protocol version as the next protocol version.

4. Acceptance Criteria

A protocol update SHALL be accepted if, for an interval of \( \UpgradeVoteRounds \) consecutive rounds, at least \( \UpgradeThreshold \) of the finalized blocks reference the same next protocol version.

5. Upgrade Grace Period

Upon acceptance, node operators SHALL be granted an additional \( \DefaultUpgradeWaitRounds \) rounds to update their node software in accordance with the new specification.

6. Activation

Upon completion of the grace period, the updated protocol specification SHALL take effect. From that point forward, blocks MUST be produced exclusively under the updated protocol rules.


The values of the upgrade parameters are defined in the Ledger Parameters Specification.