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
| Parameter | Value | Description |
|---|---|---|
| Voting Delay | 1 day | Time between proposal creation and voting start |
| Voting Period | 7 days | Duration of the voting window |
| Quorum | 4% of total supply | Minimum votes required for validity |
| Proposal Threshold | 100,000 ALEPH | Minimum tokens to create a proposal |
| Timelock Delay | 2 days | Delay between vote success and execution |
Governable Parameters
The following parameters can be changed via governance proposals:
- Staking:
minSelfStake,minTotalStake,unbondingPeriod,maxSlashBps - Heartbeats:
heartbeatInterval,heartbeatGracePeriod - Storage:
proofPeriod,challengeResponseWindow - Payments:
maxSlippageBps, allowed payment tokens - Contract upgrades: UUPS proxy implementation changes
- Role grants: Adding/removing roles across contracts
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?;