Governance

The AlephGovernor contract enables on-chain governance for protocol parameter changes, upgrades, and treasury management.

Overview

Governance follows a propose-vote-execute model with a timelock for safety. ALEPH token holders can create proposals, vote, and execute approved changes.

Proposal Lifecycle

Proposed  Active (voting)  Succeeded  Queued (timelock)  Executed
                               Defeated
                               Canceled

Parameters

ParameterValueDescription
Voting Delay1 dayTime between proposal creation and voting start
Voting Period7 daysDuration of the voting window
Quorum4% of total supplyMinimum votes required for validity
Proposal Threshold100,000 ALEPHMinimum tokens to create a proposal
Timelock Delay2 daysDelay between vote success and execution

Governable Parameters

The following parameters can be changed via governance proposals:

Creating Proposals

// Create a proposal to update minimum stake
let targets = vec![staking_manager_addr];
let values = vec![0];
let calldatas = vec![
    staking_manager
        .setMinSelfStake(new_min_stake)
        .calldata()
];

let proposal_id = governor
    .propose(targets, values, calldatas, description)
    .send().await?;

Voting

// Vote on a proposal
// 0 = Against, 1 = For, 2 = Abstain
governor.castVote(proposal_id, 1).send().await?;

// Vote with reason
governor.castVoteWithReason(
    proposal_id,
    1,
    "Increasing minimum stake improves network security".into()
).send().await?;