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:

Protocol Parameters (Initial Values)

ParameterInitial ValueGoverned By
minSelfStake200,000 ALEPHPARAMETER_ROLE
minTotalStake500,000 ALEPHPARAMETER_ROLE
unbondingPeriod14 daysPARAMETER_ROLE
maxSlashBps3,000 (30%)PARAMETER_ROLE
heartbeatInterval1 hourPARAMETER_ROLE
heartbeatGracePeriod4 hoursPARAMETER_ROLE
proofPeriod24 hoursPARAMETER_ROLE
challengeResponseWindow4 hoursPARAMETER_ROLE
communityFeeBps2,000 (20%)PARAMETER_ROLE
maxSlippageBps300 (3%)PARAMETER_ROLE
timelockDelay48 hoursDEFAULT_ADMIN

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?;