Maverick Docs
  • Introducing Maverick
  • Getting Started
    • πŸ–₯️The Maverick V2 UI
    • πŸ‘›Connect a Wallet
    • ⛓️Choose a Network
    • πŸͺ™Approving Tokens
  • Guides
    • 🀝Traders
      • How to Make a Swap
    • πŸ’°Liquidity Providers
      • Understanding Liquidity Provision
      • Understanding Modes
      • How to Add Liquidity
      • How to Deploy a New Pool
      • How to Check Position Balances
      • How to Manage Liquidity in a Pool
      • How to Migrate from V1 to V2
      • Understanding Permanent Loss
      • Liquidity Strategies
    • ⚑Incentives
      • Understanding Boosted Positions
      • Understanding Incentives
      • How to Join a Boosted Position
      • How to Create a Boosted Position
      • How to Manage a Boosted Position
      • How to Add Incentives
    • 🎑veFlywheel
      • veFlywheel Basics
      • Guide to veFlywheel Emissions
      • How to Vote to Direct Emissions
    • πŸ‘©β€πŸ«Advanced Tutorials
      • Single-Sided Incentives
  • Technical Reference
    • Contract Addresses
      • V1 Contract Addresses
      • V2 Contract Addresses
    • Maverick V1
      • V1 Whitepaper
      • V1 Contracts
        • Router
        • Pool
        • Factory
        • SlimRouter
    • Maverick V2
      • V2 Whitepaper
      • V2 Contracts
        • Maverick V2 Common Contracts
          • base
            • IMulticall
            • IPayableMulticall
            • Multicall
            • PayableMulticall
          • interfaces
            • IMaverickV2AddLiquidityCallback
            • IMaverickV2Factory
            • IMaverickV2FactoryAdmin
            • IMaverickV2FlashLoanCallback
            • IMaverickV2Pool
            • IMaverickV2PoolAdmin
            • IMaverickV2SwapCallback
          • libraries
            • ArrayOperations
            • Constants
            • Math
            • PoolLib
            • TickMath
            • TransferLib
        • Maverick V2 AMM Contracts
          • poollib
            • Bin
            • Delta
            • Deployer
            • DeployerPermissioned
            • SwapMath
            • Twa
          • MaverickV2Factory
          • MaverickV2Pool
          • MaverickV2PoolPermissioned
        • Maverick V2 Reward Contracts
          • interfaces
            • IMaverickV2IncentiveMatcher
            • IMaverickV2IncentiveMatcherFactory
            • IMaverickV2Reward
            • IMaverickV2RewardFactory
            • IMaverickV2RewardRouter
            • IMaverickV2RewardVault
            • IMaverickV2VotingEscrowBase
            • IMaverickV2VotingEscrow
            • IMaverickV2VotingEscrowFactory
            • IMaverickV2VotingEscrowLens
            • IMaverickV2VotingEscrowWSync
          • libraries
            • IncentiveMatcherDeployer
            • RewardDeployer
            • VotingEscrowDeployer
            • VotingEscrowWSyncDeployer
          • rewardbase
            • IRewardAccounting
            • RewardAccounting
          • votingescrowbase
            • HistoricalBalance
            • IHistoricalBalance
            • ILegacyVeMav
            • VotingEscrow
          • MaverickV2IncentiveMatcher
          • MaverickV2IncentiveMatcherFactory
          • MaverickV2Reward
          • MaverickV2RewardFactory
          • MaverickV2RewardRouter
          • MaverickV2RewardVault
          • MaverickV2VotingEscrow
          • MaverickV2VotingEscrowFactory
          • MaverickV2VotingEscrowLens
          • MaverickV2VotingEscrowWSync
        • Maverick V2 Supplemental Contracts
          • base
            • Checks
            • IChecks
            • IMigrateBins
            • MigrateBins
          • boostedpositionbase
            • BoostedPositionBase
            • IBoostedPositionBase
            • ImmutableArrayGetter
          • interfaces
            • IMaverickV2BoostedPosition
            • IMaverickV2BoostedPositionFactory
            • IMaverickV2LiquidityManager
            • IMaverickV2PoolLens
            • IMaverickV2Position
            • IMaverickV2Quoter
            • IMaverickV2Router
            • IPositionImage
          • libraries
            • BoostedPositionDeployerDynamic
            • BoostedPositionDeployerStatic
            • BytesLib
            • LiquidityUtilities
            • PackLib
            • Path
            • PoolInspection
          • liquiditybase
            • ArgPacker
            • IArgPacker
          • paymentbase
            • IERC20PermitAllowed
            • IPayment
            • ISelfPermit
            • IState
            • IWETH9
            • Payment
            • SelfPermit
            • State
          • positionbase
            • INft
            • Nft
          • routerbase
            • CallbackOperations
            • ExactOutputSlim
            • ICallbackOperations
            • IExactOutputSlim
            • IPushOperations
            • IRouterErrors
            • PushOperations
          • MaverickV2BoostedPositionDynamic
          • MaverickV2BoostedPositionFactory
          • MaverickV2BoostedPositionStatic
          • MaverickV2LiquidityManager
          • MaverickV2PoolLens
          • MaverickV2Position
          • MaverickV2Quoter
          • MaverickV2Router
          • PositionImage
      • V2 API Documentation
      • V2 Testnet Guide
        • Get Sepolia ETH & Test Tokens
        • How to Create a Boosted Position in V2
        • How to Add & Match Incentives
        • How to Create a veFlywheel
    • Development FAQ
    • Finding LP Balances
  • MAV token
    • MAV Token & Tokenomics
    • veMAV & MAV Staking
    • How to Stake MAV
    • Syncing V1 veMAV
    • Airdrop Information
      • Maverick Ecosystem Rewards Pre-Season Airdrop
      • Maverick Governance & S1 Airdrops
  • Further Information
    • Frequently Asked Questions
    • Glossary
    • Security
    • Maverick Wallets
    • Dune Analytics
    • Rebasing Tokens
    • Restricted Territories
    • Delphi Digital Report
Powered by GitBook
On this page
  • How to Add Incentives
  • How to Match Incentives
  • Create a Boosted Position
  • Create a reward contract for the Boosted Position
  • Add matching incentives
  1. Technical Reference
  2. Maverick V2
  3. V2 Testnet Guide

How to Add & Match Incentives

PreviousHow to Create a Boosted Position in V2NextHow to Create a veFlywheel

Last updated 1 year ago

This page covers the basics of adding and matching incentives for Boosted Positions. The primary use-case for adding and matching incentives is for projects and protocols who want to attract LPs to Boosted Positions containing their token(s). Most users will never need to add or match incentives; however, like all features on Maverick, adding and matching incentives are permissionless actions and available to all users.

How to Add Incentives

As explained in the in v2, to receive incentives a Boosted Position must have a reward contract. If you need help creating a reward contract, please refer to that page.

To add incentives, choose Manage Incentives from the More Actions menus at the top. You will be presented with a list of all the Boosted Positions in v2, which can be filtered by network or using the text box.

Choose a Boosted Position from the list and click on it. Assuming the Boosted Position already has a reward contract, you will be taken to the Incentivize Boosted Position page. The UI will default to the first reward contract deployed for this Boosted Position (R1), but you can choose another one (e.g., R2) by clicking the Edit button in the Select Reward Contract window.

Use the drop-down menu in the Select Reward Token window to choose one of the reward tokens included in the selected reward contract. You will need to have this token in your wallet. Specify an amount of this token to add as incentives, then use the slider to choose a duration for the incentives. The incentives will be distributed at a regular rate over this duration (e.g., 700 tokens at 7 days would be distributed at a rate of 100 tokens a day).

Once you are satisfied with your choices, click the Incentivize button.

How to Match Incentives

Matching incentives are part of the veFlywheel enabled by Maverick v2. Any token that has a veToken created through the veFactory can be used to create incentive matches in Boosted Positions.

The basic idea behind this mechanic is that a protocol may wish to match external incentives added by other users. The matching budget forms the supply for both direct matches and vote-matches decided by ve-voting (feature coming soon).

The flow for matching incentives is as follows:

  1. Create a veToken

  2. Create an Incentive Matcher

  3. Create a Boosted Position

  4. Create a reward contract for the Boosted Position

  5. Add matching incentives

Create a Boosted Position

Create a reward contract for the Boosted Position

If you have just deployed the veToken for your token, it is likely that no Boosted Position will have a reward contract that uses it. Therefore, it will be necessary to create a new reward contract that includes the veToken. Since each Boosted Position in Maverick v2 can have multiple rewards contracts, you can choose to add a new reward contract to an existing Boosted Position.

To create a reward contract, choose Manage Incentives from the More Actions menu at the top. You will be presented with a list of all the Boosted Positions in v2, which can be filtered by network or using the text box.

Find the Boosted Position to which you want to provide matching incentives. If the Boosted Position has no existing reward contract, the page will default to the Deploy Reward Contract state. If it has an existing reward contract, you will have to create a new one by clicking the Edit button in the Select Reward Contract window.

Select at least the token for which you created a veToken from the drop-down menu, then make sure to tick the box labelled β€œInclude veToken.” The veToken needs to be included for this reward contract to receive matching incentives.

Click the Create Reward Contract button.

Add matching incentives

Once a veToken, Incentive Matcher, and Boosted Position with eligible reward contract exist, you can add matching incentives. While it is possible to skip to this step without creating a Boosted Position, without any eligible reward contracts your matching incentives will not be used.

To add matching incentives, choose Manage Incentives from the More Actions menu at the top of the screen, then click on the Match Incentives tab.

Find your token in the token list and click the Add Matching button next to it. Choose the amount of incentives to add, which must be in the same token, and click the Choose Amount button. If necessary, approve the token for use by the matching contract. Then click Confirm and confirm the transaction in your wallet.

Your tokens will be added to the matching incentives for this epoch, and distributed to any Boosted Position with an eligible reward contract that has received incentives to match.

A user trying to add matching incentives may find that any or all of these steps have already been completed. Creating a veToken and Incentive Matcher are covered in of these docs. This guide will assume that a veToken and Incentive Matcher have already been created and the user needs to start by creating a Boosted Position.

All incentives and rewards go to LPs in Boosted Positions. You will either need to create a Boosted Position or find one that already exists that you wish to add matching incentives to. For detailed instructions on creating a Boosted Position, see .

page on creating Boosted Positions
another section
this page