Scope note
This page is the public lookup surface for DerivaDEX governance mechanics. It covers proposal parameters, token-count thresholds, proposal and voting constraints, queue and execute timing, and governance event families. It does not publish private review workflow or environment-specific governance operations runbooks.Current repo-backed governance parameters
| Parameter | Current value | Unit | Public meaning |
|---|---|---|---|
proposalMaxOperations | 10 | actions | maximum actions carried by one proposal |
votingDelay | 1 | block | delay between proposal creation and voting start |
votingPeriod | 17280 | blocks | standard voting window |
gracePeriod | 1209600 | seconds | time a successful proposal can remain queued before expiring |
timelockDelay | 259200 | seconds | standard queue-to-execute delay |
quorumVotes | 4 | percent-style governance parameter | minimum support threshold used to derive quorum vote count |
proposalThreshold | 1 | percent-style governance parameter | minimum proposer threshold used to derive required proposing power |
skipRemainingVotingThreshold | 50 | percent-style governance parameter | threshold that can end the practical wait for the remaining voting period when for or against votes exceed it |
Derived vote-count thresholds asserted in repo tests
| Read surface | Asserted count | Meaning |
|---|---|---|
getQuorumVoteCount() | 2,000,000 DDX | minimum support count needed for standard success at voting close |
getProposerThresholdCount() | 500,000 DDX | minimum voting power required to create a proposal |
getSkipRemainingVotingThresholdCount() | 25,000,000 DDX | for- or against-vote count that can satisfy the skip-remaining-voting condition |
getMaximumVotingCapCount() | 24.9% of total supply | maximum effective vote weight one participant can wield through the Dip12 voting-cap path |
Proposal creation constraints
| Constraint | Public contract |
|---|---|
| proposer threshold | proposer must be above the current proposer-threshold count |
| action parity | targets, values, signatures, and calldatas must stay length-matched |
| empty proposal | proposal with zero actions reverts |
| action count | proposal with more than 10 actions reverts |
| live-proposal rule | one proposer cannot keep more than one live proposal at a time |
Voting mechanics
| Topic | Public contract |
|---|---|
| voting start | votes cannot be cast before the voting-delay window opens |
| voting power requirement | a voter with zero voting power cannot cast a vote |
| duplicate voting | voter cannot cast a second vote on the same proposal |
| signed voting | castVoteBySig is supported for offline-signature vote submission |
| vote receipts | getReceipt(proposalId, voter) is the public read surface for hasVoted, support, and counted vote weight |
| historic vote inspection | DDX vote accounting supports reads such as getCurrentVotes and getPriorVotes for governance-weight inspection |
| delegation path | DDX delegation changes governance weight through delegate and delegateBySig flows |
Success, queue, and execute rules
| Stage | Public contract |
|---|---|
| success condition | proposal can succeed either by crossing the skip-remaining-voting threshold or by ending with majority support plus quorum |
| queue eligibility | only a succeeded proposal can be queued |
| execute eligibility | only a queued proposal can be executed |
| standard execute delay | queued proposal must remain queued through the timelock delay before execution |
| expiry boundary | queued proposal must execute before the grace-period window expires |
| fast-path actions | certain pause-sensitive actions can carry a shorter queue delay than the standard timelock path |
Governance safety constraints
| Constraint | Public contract |
|---|---|
| minimum skip threshold | skipRemainingVotingThreshold cannot initialize below 50 |
| quorum relationship | quorumVotes cannot be greater than or equal to skipRemainingVotingThreshold |
| invalid governed updates | governed attempts to set invalid quorum or skip-threshold values revert at execution |
Governance event families
| Event | Why it matters |
|---|---|
ProposalCreated | proves the proposal ID, proposer, action set, and voting window |
VoteCast | proves voter, support direction, and counted vote weight |
ProposalQueued | proves the proposal entered queue and records ETA |
ProposalExecuted | proves proposal execution completed |
ProposalCanceled | proves proposal cancellation occurred |
QueueTransaction | proves one proposal action was queued |
ExecuteTransaction | proves one proposal action executed |
CancelTransaction | proves one queued proposal action was canceled |