Daodao

Daodao proposals use different ballot rules to authorize DAO actions

Last updated -

Daodao proposals with single-choice or multiple-choice ballots use different voting rules before the DAO executes approved actions. Single-choice ballots test Yes support against a configured threshold; multiple-choice ballots compare support for competing options. Quorum, the proposal's voting-power snapshot, and execution settings determine how a successful ballot becomes an applied decision.

A treasury decision starts with its attached actions

A proposal that would spend treasury funds must carry the transfer instructions that execution will apply. Its description explains the purpose; its actions specify the blockchain operation. Read the recipient and token details in those actions alongside the written request. Single-choice voting asks whether to approve the attached action set. Multiple-choice voting lets each proposed option carry its own actions. When the DAO chooses between competing transfers, each option should identify the instructions that support its description.

Proposal actions also support membership changes, governance-token minting, and configuration updates.

The proposal module connects the ballot to the core

The proposal module manages the ballot and its outcome, while the DAO core holds the treasury and executes authorized messages. A separate voting power module supplies the weights that the ballot counts. Standard interfaces connect these components, so changing a proposal format does not inherently change the participation model. The same membership-based or staked-token voting power can support different proposal modules.

Daodao proposals: The proposal module connects the ballot to the core - diagram

View image file

Submission fixes the proposal's voting-power snapshot

Creating a proposal establishes its ballot and records the voting power that its approval and quorum rules will evaluate. That record includes the total voting power that quorum uses as its denominator. Later membership changes do not rebuild the electorate for an existing proposal. Someone who joins afterward cannot acquire a vote on that earlier ballot simply by becoming a member. This keeps participation tied to proposal creation, even when current membership totals differ from the weights that determine an older proposal's result.

Submission permission governs who may put a proposal to a vote. The configured policy can allow members only or anyone. An enabled deposit requirement adds a separate submission condition; it does not establish voting eligibility.

Single-choice approval separates quorum from the passing threshold

A single-choice ballot offers Yes, No, and Abstain, with a configured threshold determining whether the proposed action set passes. Quorum adds a participation requirement when enabled. Read these settings separately because reaching the participation requirement does not establish approval.

Quorum measures participating voting power against the proposal's total voting power. The calculation uses weights, so counting participating wallet addresses can give the wrong denominator. Low participation can prevent passage even when Yes leads the recorded votes. When quorum is enabled, the final percentage approval test uses the Yes and No voting power. Abstain contributes to participation but does not enter that approval denominator.

Disabling quorum changes the percentage approval basis. The single-choice contract then uses the proposal's total voting power, excluding recorded Abstain power. Uncast voting power remains in that basis. A percentage among votes cast therefore does not describe this absolute-percentage test.

Majority requires more than half of the relevant voting power; a configured percentage instead passes when support reaches that percentage. Selecting a 50% threshold and selecting majority express different rules.

Before expiration, the module also accounts for votes that could still arrive when determining whether the outcome is irreversible. A current majority among recorded votes does not necessarily establish early passage. At expiration, the quorum-enabled percentage test evaluates the completed Yes and No tally.

Multiple-choice voting compares the actions behind each option

Each proposed multiple-choice option can contain its own action set, and the ballot tallies weighted support for those alternatives, while passage requires quorum. Multiple-choice ballots have no separate Yes passing threshold. A successful option wins through plurality, meaning that it receives more voting power than the competing options. It does not need the single-choice ballot's configured Yes percentage. Compare the instructions attached to each option, since execution applies the selected set rather than combining the alternatives.

The ballot also includes None of the above, which lets voters reject the proposed alternatives. At expiration, the version 2.6.0 multiple-choice contract rejects a proposal if None of the above wins or the highest-weight options tie. Quorum remains required for this ballot format, so a leading action option alone cannot establish a successful proposal.

The same participation can produce different ballot outcomes

For a hypothetical comparison at the end of voting, assume 1,272 total voting-power units and participation of 572 units. Set quorum to 42% in both ballots and the single-choice passing threshold to 62%. Assume no Abstain votes in the single-choice case. In the multiple-choice case, assume two proposed action options and no votes for None of the above.

Participation is 572 divided by 1,272, or about 44.97% of total voting power. Both ballots meet the assumed quorum. Give the single-choice tally 352 units of Yes support and 220 units of No support. Yes receives 352 divided by 572, or about 61.54% of the approval denominator. That falls below 62%, so the single-choice proposal fails.

Now assign the same 352 units to the first action option and 220 units to the second. The first option has the unique plurality, and quorum is met. The multiple-choice ballot selects that option because its rule does not impose the single-choice percentage threshold. The selected action set still requires execution under the applicable permissions and any veto configuration.

For the single-choice ballot, 355 Yes units and 217 No units would yield about 62.06% Yes support and meet its assumed threshold. Participation below 42% would prevent either ballot from passing.

Voting duration controls when the outcome can settle

The maximum voting duration sets the deadline for additional votes, while revoting determines whether a voter may replace an earlier choice. With revoting enabled, the voting rules defer passage or rejection until the voting period ends. A temporary lead cannot settle an outcome that voters can still reverse. When revoting is disabled, early passage or rejection may become possible once eligible remaining votes cannot change the result.

Single-choice contracts and the version 2.6.0 multiple-choice contract both allow a minimum voting period before passage. Even a decisive tally must wait until that period expires. This requirement and the maximum deadline govern different boundaries of the voting window.

Veto configuration can interrupt the move to execution

An optional veto configuration can place an approved proposal in a timelock before ordinary execution becomes available. The designated vetoer may veto eligible proposals during that period. The configured duration can use blocks or seconds and extends from the proposal's expiration. If early execution is enabled for the vetoer, that address can execute during the timelock. A separate setting can permit vetoing before passage. These controls qualify the execution path for modules that include them.

Execution applies the instructions that the ballot approved

A passed proposal authorizes its approved actions; execution sends those messages through the DAO core once the proposal's configuration permits that transition. Approval and execution are distinct states. A treasury proposal can pass while its transfer remains unapplied. Single-choice execution uses the proposal's attached action set. Multiple-choice execution uses the successful option's actions. To interpret completion, distinguish the decided vote from the execution result and the resulting treasury or configuration change.

The member-only execution setting determines who may execute passed proposals. For ordinary single-choice execution, enabling it requires the executor to have voting power at the proposal's creation height; disabling it allows anyone. That permission changes the eligible executor, not the actions that the vote approved.

Configuration changes preserve the distinction between ballot formats

Changing voting rules requires a governance proposal containing the relevant configuration action. When multiple-choice proposals are enabled, Update Single Choice Voting Config and Update Multiple Choice Voting Config target the formats separately. They can therefore use different voting durations or revoting settings. Single-choice approval also retains its threshold settings, while multiple-choice voting retains its quorum-based selection rule. Choose the action for the intended proposal type before publishing the configuration change. Submission settings have their own configuration actions and address a different permission.

Single-choice voting fits approval of one proposed action set; multiple-choice voting fits selection among competing sets. Ranked-choice voting appears in a separate Condorcet module. Its documented first version lacks human-readable proposal and option names and descriptions. It also lacks revoting, pre-propose integration, and proposal or vote hooks. A multiple-choice ballot in the standard interface consequently describes a different workflow from that ranked-choice contract.

Daodao proposals: questions and answers

How many proposed alternatives can a multiple-choice ballot contain?

The multiple-choice interface accepts 2 to 20 proposed options, alongside None of the above. Each proposed option can have its own actions. The rejection option gives voters a way to decline all proposed action sets.

Can a single-choice proposal contain no executable actions?

A single-choice proposal can contain a title and description without attached actions. Such a ballot can record a governance decision without instructing the core to transfer funds or change a contract. Passing the written proposal does not create an omitted blockchain instruction.

Which action enables multiple-choice proposals in an existing DAO?

Enable Multiple Choice Proposals enables the format through a single-choice governance proposal. This setup requires a DAO on V2 or later. The action sits in the DAO Governance category, and the enabling proposal must pass and execute before the DAO can use the new proposal module.

Why can a decided single-choice proposal still receive votes?

The single-choice contract accepts eligible votes until expiration even when an irreversible outcome has already settled. Later votes can record participants' opinions without changing that final outcome. This behavior differs from revoting, which changes an existing ballot when the proposal permits it.

Will updated voting settings change an existing single-choice proposal's threshold?

An existing single-choice proposal retains the threshold that it recorded at creation. It also records its voting deadline and revoting setting. Updating the module configuration changes the settings used to create subsequent proposals; an older ballot's threshold does not become the newly configured percentage.

Is an absolute vote-count threshold the same as a percentage threshold?

An absolute-count threshold requires a specified amount of Yes voting power, while a percentage threshold calculates support against its applicable voting-power basis. The count measures weight rather than the number of wallet addresses. Single-choice contracts support this count-based rule separately from percentage and threshold-with-quorum rules.

Does a passed proposal override a pause in the DAO core?

Passing a proposal does not override an active pause of the DAO core. In the documented core implementation, the pause blocks ordinary proposal-module execution. Otherwise authorized calls from its configured admin or the core itself remain available. A successful ballot therefore does not establish that its actions can run while the core remains paused.