Warden Quest offers a new approach to Gauge Weight vote acquisition for Curve.
Instead of simply offering an arbitrary amount of rewards to influence voters, Quest allows players to set parameters and rewards for each weekly vote period.
This way, a Quest creator can define the amount of votes they desire and the amount of rewards they wish to pay for each vote. Voters can also know beforehand how much rewards they'll receive before joining a Quest.
To create a Quest, the following parameters are needed:
- The Gauge to be incentivized
- A reward token (ERC20) that voters will receive (the ERC20 must be whitelisted before being used as a reward token)
- The objective, or desired amount of votes for the Gauge
- The reward budget for 1 vote (or 1 veCRV)
- The duration of the Quest, in weekly periods
Using these parameters, the total amount of rewards for a period are calculated (objective * reward per vote), and based on that amount, the total amount of rewards for the Quest (duration * amount for period). The total amount of rewards for the Quest is paid at the creation of the Quest.
After each period is closed, and the rewards are distributed to voters, if the total reward budget wasn't distributed to voters (in case the objective wasn't reached) the Quest creator can withdraw the undistributed amount.
At any time during the Quest lifecycle, the creator can choose to increase certain parameters of the Quest. The changes can only increase the parameters. The parameters are:
- Increase the objective
- Increase the amount of reward per vote
- Increase the Quest duration
The changes are applied for the next period of the Quest (the next week).
Rewards for voting in a Quest are calculated and distributed on a weekly basis. For each period, the amount of rewards for a Quest voter is calculated based on the amount of rewards for each vote, set at the creation of the Quest, and the user's veCRV balance at the start of that period (as veCRV balances decrease over time, the rewards a user could receive for voting for a Quest will naturally decrease if the veCRV lock is not updated).
Since Quests have an objective target of votes, only the votes that fill that amount are counted for the reward distribution, sorted from the oldest to the newest vote (ex: if the objective is 1 million votes, and the Gauge receives 1.2 millions, only the first 1 million are rewarded). Votes are sorted from the oldest still active vote to the newest, prioritizing votes that are loyal to the Gauge.
In the Curve voting system, the vote of a user is counted every period as long as it is not changed, so the voters can vote for the Gauge during the 1st period of a Quest, and be rewarded every period without having to change their vote.
In case the objective of the Quest is not reached at the end of the period, only the amount of veCRV signaled to the Gauge is used to calculate distribution, and the rest of the rewards can be withdrawn by the Quest creator.
After voters start to accrue rewards, they can claim them at any time they want. To claim, they have 3 possibilities:
- Claim rewards from each period, one by one
- Accumulate rewards from multiple periods and claim at once
- Claim rewards from multiple Quests, and periods, in 1 transaction