Skip to main content
Version: Testnet (v3.0.1)

L1 Contracts

Work in Progress

This page provides a high-level overview of Aztec's governance contracts. The contract interfaces and implementations are still evolving. For the authoritative source, see the l1-contracts repository.

Contract Overview

The Aztec governance system consists of several L1 smart contracts:

ContractPurpose
RegistryTracks all rollup instances; determines which is canonical
GovernanceHandles proposal voting and execution
GovernanceProposerManages sequencer signaling and proposal submission
GSEGovernance Staking Escrow - manages validator stakes and voting power
RollupThe rollup contract itself; validators stake here

Registry

The Registry maintains an append-only list of rollup instances. Only the Governance contract (as owner) can add new rollups.

Key properties:

  • Backwards compatible: All historical rollups remain accessible
  • Canonical selection: Only the latest rollup receives block rewards
  • Immutable entries: Once added, rollup addresses cannot be removed

Governance

The Governance contract is the decision-making body that executes approved proposals.

Key functions:

  • deposit() / initiateWithdraw() - Manage voting power
  • vote() - Cast votes on proposals
  • execute() - Execute approved proposals

See Proposal Lifecycle for how proposals move through the system.

GovernanceProposer

The GovernanceProposer handles the signaling phase where sequencers vote to promote payloads to proposals.

Key functions:

  • signal() - Sequencers signal support for a payload during their slot
  • submitRoundWinner() - Submit a payload that reached quorum as a proposal

GSE (Governance Staking Escrow)

The GSE holds validator stakes and manages voting power delegation.

Key features:

  • Stake mobility: Stakes can automatically follow rollup upgrades
  • Voting delegation: Validators can delegate voting power
  • Escape hatch: proposeWithLock() for emergency proposals

See GSE and Stake Mobility for details.