Single-Sided Incentives
This tutorial will walk you through how to use Boosted Positions to incentivize one side of a liquidity pair.
Last updated
This tutorial will walk you through how to use Boosted Positions to incentivize one side of a liquidity pair.
Last updated
This guide will explain how to incentivize targeted liquidity on Maverick’s dApp. We will be using the example of single-sided liquidity, i.e., how to incentivize liquidity providers (LPs) to bring a counter-asset to your token’s pool.
In order to incentivize liquidity in this way, we will be creating a Boosted Position in Maverick’s UI. You can find more information about Boosted Positions here.
Users can only create Boosted Positions in pools that already exist on Maverick. For example, if you want to create a Boosted Position to encourage users to bring ETH to an ETH-XYZ pool, you will need to make sure that the ETH-XYZ pool is already deployed. A guide to deploying a new pool can be found here.
For Maverick’s movement Modes to work properly, a pool will need a layer of static liquidity to help with price discovery. If you are deploying a new pool, please begin with a Mode Static distribution that spreads some liquidity across a range around the current price.
We'll break down this activity into three steps:
Adding Single-Sided Liquidity - we'll set up a one-sided distribution of protocol liquidity in a pool
Creating a Boosted Position - we'll then create a Boosted Position to incentivize ETH liquidity to the other side of this pool
Adding Incentives - finally, we'll aim some incentives at this Boosted Position to encourage LPs to bring ETH to it
In this first section, we’ll assume the role of a project bringing their own token to a Maverick pool. We’ll add that token to one side of the pool, and then in the next section we’ll use a Boosted Position to incentivize users to add ETH as a counter-asset. For this example, we’ll work with the ETH-SAND pair, but simply replace SAND with any token and the process will be the same.
Navigate to the Pools page, under Add Liquidity in the top menu.
Use the pool list on this page to find the pool you want to incentivize. You can scroll or use the search bar. Again, if the pool you want has yet to be deployed, please see our guide to deploying a new pool.
Click on the pool in the list to go to the Select Pool page.
Check that the details for the pool you selected look correct, then click Next.
On the Select Mode page, make sure Mode Static is selected then click Next.
This takes you to the Add Liquidity page. By default, the UI will select an Exponential distribution with a width of 0.1%. We’re going to change that so that we can add only SAND to this pool. You can edit any distribution manually, but to make this process simpler, we’re going to start with a Single Bin distribution.
Click the Edit button under Select Distribution, choose Single Bin in the modal, and click Select.
Move your cursor over the top of the single bin in the Customize Distribution chart, and drag it all the way down to the bottom. This should leave you with an empty chart with all the bins set to zero.
We’ll now create a single-sided distribution of SAND by dragging up the bins on the right hand side of this chart (check to make sure you’re dragging the bins on the correct side for your chosen token pair).
For this example, we have designed a flat distribution of SAND consisting of five bins directly to the right of the current active bin (i.e., close to the current pool price). Depending on the situation, users may wish to use more/fewer bins in a different configuration at a different price point.
Choose how much SAND to add to this Distribution in the Required Assets bubble to the left of the chart. Here, we have selected 4000. Note that since we are single-sided, the UI has determined we do not need to add ETH. The amount you choose will be distributed proportionately across the distribution you designed (here, it will be apportioned equally between each of our five bins).
Click Confirm and then click Confirm Amount in the modal.
Confirm the transaction in your wallet.
Now that we have a supply of the project token in the pool, we’re going to create a Boosted Position to incentivize liquidity into the other side of the pool. In our ETH-SAND example, we’ll be using a Boosted Position to incentivize ETH into the pool we have chosen, but the same principles apply to any token pair.
Navigate to the Boosted Positions page, under Add Liquidity in the top menu.
Click the New Boosted Position button on the right, above the list of Boosted Positions.
On the Create a new Boosted Position page, select the correct token pair (here, ETH and SAND). Make sure the fee tier and width match the pool you added liquidity to. If they do not, click Edit to choose the correct values and select the right pool. Click Next.
On the Select Mode screen, make sure Mode Static is selected and click Next.
As when we added initial liquidity above, we’re going to begin by zeroing out the distribution chart. Click Edit, select Single Bin, and click Select. Then mouseover the top of the single bin in the Customize Distribution chart and drag it all the way to the bottom.
Now that we have an empty chart, we’re going to design the distribution we want to incentivize people to add liquidity to by dragging the bins on the ETH side of the chart up into the desired distribution (make sure you’re dragging the correct bins for your chosen token pair).
For this example, we’ve created a mirror of the SAND distribution as a simple demonstration of incentivizing matching liquidity in a pool, but a user may have reasons to use more/fewer bins, a different shape, or place this position farther away from the price.
Choose how much ETH to add to this Distribution in the Required Assets bubble to the left of the chart. Since this is only seed liquidity and we want users to bring their own ETH to this Boosted Position, we’ll keep this amount low.
Click Confirm and click Confirm Amount in the modal.
Confirm the transaction in your wallet.
When the transaction is complete, click Done to be taken to the Portfolio page. You should see a card representing this Boosted Position. Make a note of the number on this card. In the screenshot above, the Boosted Position is easy to spot because of the lightning bolt and the Claim Rewards button. The number we’re looking for in the screenshot is “#17.” We’ll need this to incentivize this Boosted Position in the next step.
Now that we’ve added our protocol liquidity and set up a Boosted Position to direct matching ETH liquidity from LPs, we can add incentives to the Boosted Position to entice the ETH we want in our pool.
Navigate to the Incentivize page, under Engage in the top menu.
Use the Boosted Position list on this page to find the Boosted Position you created earlier. You can scroll or use the search bar. In this example, we’re looking for ETH-SAND #17 (see step 10 in the previous section for how to find this number).
Click on your Boosted Position to go to the Incentivize Boosted Position page.
Check to make sure you’ve chosen the correct Boosted Position.
Use the drop-down menu under Incentivize LP to select the token you want to use as an incentive. This will be transferred from your wallet to the rewards contract and distributed to LPs who add liquidity to this Boosted Position.
Choose the amount of this token you want to use as incentives using the numeric field to the right of the drop down menu.
Once you’ve chosen the token and amount, the Duration slider will appear. You can select a distribution period between 3 and 30 days in length. Your token incentives will be distributed evenly across whatever period you select.
In the event you do not see the slider, it is probably because another user has already added incentives to this Boosted Position. For more information, click here.
Click Incentivize and click Confirm Amount in the modal.
Confirm the transaction in your wallet.