veFlywheel Basics
Last updated
Last updated
This page offers a basic overview of how MAV emissions are distributed through Maverick V2's veFlywheel. For a more detailed and technical explanation of the mechanisms involved, please see the V2 Whitepaper.
The veFlywheel is best understood as a matching mechanism. It matches MAV incentives sent to V2 Boosted Positions by emitting more MAV tokens to those Boosted Positions. There are two ways in which MAV incentives are matched by the veFlywheel:
Direct match
Vote-match
Only MAV incentives will trigger the veFlywheel and receive matches. Incentives added to Boosted Positions in the form of other tokens will not trigger matches or contribute to match calculations. This facilitates the matching of emissions on-chain and means the veFlywheel does not have to rely on external oracles to calculate the value of incentives.
At the start of each epoch, a budget of MAV tokens is added to the veMAV matching contract. This budget is split between direct match and vote-match, effectively establishing two budgets for each epoch: the direct match budget and the vote-match budget. These budgets form the basis of incentive matching for that epoch.
Direct match is a straightforward matching of any MAV incentives received by a Boosted Position. If the direct match budget allows, the matching contract will make a 1:1 match of MAV incentives; this means that for every 1 MAV sent as incentives to the Boosted Position, the matching contract will send a further 1 MAV to that Boosted Position. If there is not sufficient funds in the direct match budget to afford a 1:1 match for every Boosted Position in a given epoch, the matching contract will instead distribute the direct match budget pro rata of MAV incentives received by each Boosted Position.
Direct match does not require veMAV voting. Simply adding MAV incentives to a Boosted Position that includes MAV and veMAV in its reward contract is sufficient to trigger a direct match.
Vote-match is governed by veMAV voting. In each epoch, veMAV holders can vote for Boosted Positions to receive a further match to their incentives through vote-matching. At the end of an epoch's voting period, the matching contract counts the votes received by each Boosted Position and uses it to calculate the vote-match each Boosted Position should receive. A Boosted Position with no veMAV votes would receive no vote-match.
The vote-match received by a Boosted Position is calculated as total vote-match budget * Boosted Position's weight/total weights, where weight = Boosted Position's incentives/all incentives * Boosted Position's vote/all votes. This calculation ensures that the full vote-match budget will be used each epoch.
Like direct match, vote-match is only triggered by MAV incentives being sent to a Boosted Position. Without MAV incentives, there will be no vote-matching. A Boosted Position with 80% of the veMAV vote in an epoch that received no MAV incentives would not receive a vote-match.
Like most ve-systems, the Maverick veFlywheel operates on a cycle of epochs. A new epoch starts every 14 days. Usually, the entire life-cycle of an epoch will be 30 days.
A Maverick epoch breaks down as follows:
Day 1: Start of incentives period (14 days). MAV incentives are sent to Maverick V2 Boosted Positions. Any incentives sent to Boosted Positions during this period will count towards direct match and vote-match.
Day 8: Start of voting period (7 days). At the start of this period, a snapshot of veMAV balances is taken. This fixes the total available veMAV for this voting period. Any veMAV created by staking MAV after this snapshot cannot be used in this epoch. During this period, veMAV holders can apportion their votes between Boosted Positions.
Day 15: Start of veto period (2 days). Included as a security mechanism against exploits of the veFlywheel (e.g., a malicious user creating a Boosted Position using non-transferable tokens only they control and using it to attract emissions).
Day 17: Start of emissions period (normally 14 days). At the start of this period, the matching contract uses incentives and votes to calculate direct matches and vote-matches and adds them to the Boosted Positions that had incentive sent to them during the incentives period. The matching contract will attempt to set a reward duration of 14 days, but in some situations the duration may be longer (see Understanding Incentives for more details).
As indicated in the diagram above, a new epoch will begin at the same time as the veto period from the previous epoch begins.