Spectra Developer Docs
  • Developers Documentation
  • Getting Started
  • Guides
    • Tokenizing Yield
    • Providing Liquidity
    • Deploy PT and Curve Pool
    • Routing
    • IBT Additional Rewards
    • Locking APW for veAPW
    • Voting and Earning Rewards
  • Technical Reference
    • Deployed Contracts
    • Contract Functions
      • Principal Token
      • Yield Token
      • Registry
      • RateOracle
      • Factory
      • Access Manager
      • RouterUtil
      • Router
      • GovernanceRegistry
      • Voter
      • VotingReward
        • BribeVotingReward
        • FeesVotingReward
      • FeeDistributor
      • Spectra4626Wrapper
    • Yield Calculations
    • Spectra's Automated Market Makers
      • Rate Adjusted StableSwap pools
  • Glossary
  • INTEGRATION REFERENCE
    • Spectra Oracles
      • TWAP Oracles
      • Deterministic Oracles
        • Linear APR model
        • Linear Discount Model
        • Zero Coupon Bond Model
        • Comparison
      • Oracle Deployment
        • Deterministic Oracles Deployment
        • TWAP Oracles Deployment
Powered by GitBook
On this page
  • Step by Step
  • 1. Lock APW for veAPW
  • 2. Find a pool to vote for
  • 3. Find out about available rewards tokens for each pool
  • 4. Claim voting rewards
  1. Guides

Voting and Earning Rewards

This guide describes the process of voting for pools and claiming voting rewards

PreviousLocking APW for veAPWNextDeployed Contracts

Last updated 11 months ago

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

  1. Pools are each identified by a unique ID, that can be obtained from GovernanceRegistry's function.

  2. Get the list of all dentifiers of pools that have associated voting rewards, using Voter's .

  3. Verify that voting is not currently banned for a given _poolId using Voter's .

  4. Vote for the desired pools, specifying the weights, using Voter's .

If the identifier of a pool is not returned by , voting rewards can be deployed for it. See Voter's .

User voting weights do not automatically update when voting power increases or decays. They can be updated using Voter's .

User vote can be reset using Voter's .

3. Find out about available rewards tokens for each pool

Fees and Bribes voting rewards can vary among pools.

4. Claim voting rewards

Each week, voting rewards for the previous week can be claimed.

FeesVotingReward and BribeVotingReward contracts associated with a given pool can be fetched respectively using Voter's and .

The list of all reward tokens for a given FeeVotingReward or BribeVotingReward can be fetched using getter, which takes an index comprised between 0 and VotingReward's .

Earned rewards for a given user and a specific reward token can be fetched using VotingReward's .

Claim voting rewards for a specific list of pools and specific lists of bribes and fees reward token, using Voter's .

Bribes and fees rewards can also be claimed separately using and .

getAllRewards()
rewardsListLength()
earned()
getPoolId()
getAllPoolIds()
isVoteAuthorized(_poolId)
vote()
getAllPoolIds()
createVotingRewards()
poke()
reset()
poolToFees()
poolToBribe()
claimPoolsVotingRewards()
claimBribes()
claimFees()