Voting Threshold

Voting Threshold

For tallyVotes() to “pass” and adjust desiredEGL, enough EGLs must participate to meet the votingThreshold, which is defined as a % of eglsInCirculation.

eglsInCirculation is calculated as the sum of EGLs at the time tallyVotes() is called that were:

  1. Swept by pools

  2. Distributed and claimed (i.e. used to vote at least once) by Core Devs

  3. Distributed and claimed (i.e. used to vote at least once) by Genesis participants

  4. Deployed to Balancer as part of the Genesis (i.e. 750M tokens)

  5. Calculated as Voter Rewards (i.e. when withdraw() is called)

  6. Unlocked and sent to EGL Creators

  7. Distributed by the EGL DAO

See Token Distribution for details.

The votingThreshold is initialized at 10% of the eglsIncirculationfor the first 7 epochs, after which it jumps to 30% for the remaining 45 epochs (totaling 52 epochs) after the EGL launch, and then gradually increases every epoch at a rate of 10% / year to a maximum of 50%:

i = 0 for the first epoch

Unfavorable Default Vote Behavior

If the votingThreshold is not met, the tally does NOT leave the desiredEGL unchanged.

Instead, in order to incentivize voter participation, the default behavior is to gradually undo the change since EGL launch, which is very likely a negative outcome for EGL voters. Specifically, the default behavior sets the desiredEGL to 95% of the tallyVotesGasLimit (the gas limit of the block that the successful tallyvote() was called in).

For example, assume:

  1. EGL the tallyVotesGasLimit is 15M gas.

  2. The voted on desiredEGL is 16M.

  3. At some point in the future the votingThreshold is not met.

After the vote, the new desiredEGL would be 14.25M (15M * 95%) since the threshold wasn't met.

Grace Period

The aforementioned default behavior does not take place for a grace period of 7 epochs (weeks) from smart contract launch. Thus, in the first 7 weeks, if a vote does not meet the threshold, desiredEGL stays the same (e.g. what it was in the prior week).

Last updated