Voting and Earning Rewards
This guide describes the process of voting for pools and claiming voting rewards
The ve(3,3) model in the Spectra protocol promotes long-term engagement by letting users lock APW for veAPW, which provide governance power over protocol decisions, including voting for liquidity pools.
The voting mechanism enables efficient allocation of liquidity, rewarding both liquidity providers for their contributions and voters with a say in reward distribution. It results in a more stable protocol, motivated participants, and optimized rewards for committed stakeholders.
Step by Step
1. Lock APW for veAPW
Create a veAPW lock for an APW amount of your choice and a duration of up to 2 years. Refer to Locking APW for veAPW guide for more details.
2. Find a pool to vote for
Pools are each identified by a unique ID, that can be obtained from
GovernanceRegistry
'sgetPoolId()
function.Get the list of all dentifiers of pools that have associated voting rewards, using
Voter
'sgetAllPoolIds()
.Verify that voting is not currently banned for a given
_poolId
usingVoter
'sisVoteAuthorized(_poolId)
.Vote for the desired pools, specifying the weights, using
Voter
'svote()
.
If the identifier of a pool is not returned by getAllPoolIds()
, voting rewards can be deployed for it. See Voter's createVotingRewards()
.
User voting weights do not automatically update when voting power increases or decays. They can be updated using Voter
's poke()
.
User vote can be reset using Voter
's reset()
.
3. Find out about available rewards tokens for each pool
Fees and Bribes voting rewards can vary among pools.
FeesVotingReward
andBribeVotingReward
contracts associated with a given pool can be fetched respectively usingVoter
'spoolToFees()
andpoolToBribe()
.The list of all reward tokens for a given
FeeVotingReward
orBribeVotingReward
can be fetched usinggetAllRewards()
getter, which takes an index comprised between 0 andVotingReward
'srewardsListLength()
.Earned rewards for a given user and a specific reward token can be fetched using
VotingReward
'searned()
.
4. Claim voting rewards
Each week, voting rewards for the previous week can be claimed.
Claim voting rewards for a specific list of pools and specific lists of bribes and fees reward token, using Voter's
claimPoolsVotingRewards()
.
Bribes and fees rewards can also be claimed separately using claimBribes()
and claimFees()
.
Last updated