Skip to main content

Proposals

veYB holders vote on proposals in the YB DAO, the governance DAO of YieldBasis. A proposal can change protocol parameters, add gauges, or replace contract implementations. Any address with veYB voting power can create a proposal.

A proposal passes with 30% participation and 55% support. Voting lasts at least 7 days. In the second half of the voting period, voting power decays linearly. A proposal can execute early when the remaining votes cannot change the result.

The YB DAO is an Aragon DAO. Its voting plugin is the Aragon TokenVoting plugin, with veYB as the voting token. For the address of each, read DAO, governance, and vesting in Contract addresses.

Parameters​

The YB DAO deployed the voting plugin with these settings on 15 September 2025. It can change them with updateVotingSettings, updateCooldownSettings, and updateDecaySettings. To check a current value, call its getter on the TokenVoting plugin.

The parameters table gives each setting, its getter and value at deployment, and what the value means.

ParameterGetter and setting at deploymentMeaning
Minimum proposer voting powerminProposerVotingPower() = 1Voting power above zero. Any active veYB lock qualifies. The value 1 is a raw unit in the comparison, not an amount that you lock.
Proposal cooldowngetProposalCooldownPeriod() = 86400One address can create one proposal in 24 hours.
Minimum participationminParticipation() = 30000030% of total veYB voting power at the snapshot.
Support thresholdsupportThreshold() = 550000More than 55% of Yes and No votes must be Yes.
Minimum durationminDuration() = 604800Voting lasts at least 7 days.
Decay midpointgetDecayMidpointBasisPoints() = 5000Decay starts at 50% of the voting period.
Voting modevotingMode() = 1Early execution is on. Vote replacement is off.
Vote options—Yes, No, Abstain.

Create a proposal​

An address can create a proposal when it meets both of these conditions:

  • It has veYB voting power above zero at the second before the proposal transaction. The plugin reads this with getPastVotes on veYB. So you need an active veYB lock before the block of your proposal transaction.
  • It has not created a proposal in the last 24 hours. A second proposal from the same address within 24 hours reverts with ProposalCooldownNotMet.

Any lock that VotingEscrow.create_lock accepts has voting power above zero until it expires. The smallest is 126,144,000 wei of YB (about 1.26 × 10⁻¹⁰ YB).

To propose, call createProposal on the plugin, or use the governance interface of the YB DAO.

Voting power and decay​

When someone creates a proposal, the plugin takes a snapshot of veYB balances. Your voting power on the proposal starts from your balance at that snapshot, so veYB that you lock later does not count on that proposal. You cannot change a vote after you cast it, because voting mode 1 does not allow vote replacement.

When you vote, the plugin applies a time decay:

  • First 50% of the voting period: you vote with your full snapshot power.
  • After 50%: your power falls linearly to zero at the end of the voting period.

The decay reduces the effect of votes in the last hours of a proposal.

The following example takes a vote with the minimum 7-day duration and the deployment midpoint of 50%. The midpoint is then day 3.5. A vote cast on day 2 counts with full snapshot power. A vote cast on day 5.25 counts with half of it: 1.75 of the 3.5 days after the midpoint remain, and 1.75 / 3.5 = 0.5. The formula after the midpoint is:

power = snapshot_power × time_remaining / (end − midpoint)

The variable table gives the source of each term.

TermValue or source
snapshot_powerYour veYB voting power at the proposal snapshot.
endThe end of the voting period. The period lasts at least minDuration(): 604800 seconds (7 days) at deployment.
midpointThe point at getDecayMidpointBasisPoints() of the voting period: 5000 (50%) at deployment.
time_remainingend minus the time of your vote.

The voting-power decay chart shows the same 7-day vote. Drag the slider to a day to read the share of snapshot power that a vote cast on that day carries. At the default, day 0, the share is 100%. It stays at 100% until day 3.5 and reaches 0% on day 7.

Voting Power Decay Over Time

Voting Power: 100.0%
DaysVoting Power (%)Decay startsDay 0.0 → 100.0% power

Early execution​

A proposal can execute before its voting period ends when the outcome is certain. The outcome is certain when both of these conditions are true:

  • Participation reaches the minimum (30%).
  • Support stays above the threshold (55%) even if all remaining voting power votes No.

Early execution is on when votingMode() returns 1. The YB DAO can turn it off with updateVotingSettings.

Execution​

When a proposal reaches participation and support, or meets the early-execution conditions, any address can call execute() on the plugin. The YB DAO runs the proposal actions in the same transaction, because it has no timelock. A voter can also execute in the same transaction as the vote, with tryEarlyExecution = true.

Who controls what​

The YB DAO shares control of YieldBasis with the Curve DAO and the Curve Emergency DAO, so a YB DAO proposal cannot change every setting. For the powers of each group, read Roles and permissions.

Pool policy changes​

After initialization, only a Curve DAO vote can attach, replace, or remove a pool policy, so a YB DAO proposal cannot. For who owns each policy and who can kill it, read Pool policies in Roles and permissions.