[Liquidity Mining] Initial Rewards Allocation Strategy

Initial NDX Liquidity Rewards Allocation Strategy

Per this vote on Snapshot, the Indexed DAO has agreed to fund the first few months of the new dynamic staking program via the remaining Sigma program token allocation, and grant the Sigma committee the role of points allocator to begin with.

In this thread, we present the model that the Sigma committee will initially be using to allocate points to the various LP pools and single-sided (“naked”) staking pools that will be introduced.

We’ll flesh out an example as we go, based on figures taken a few days ago, and currently available to play around with via this Google Sheet.

Note: I may make some edits to this post as I come back to it with fresh eyes. If I do, I’ll say as much here.

The TL;DR Up Front

To start, we will be allocating rewards to LPs parameterized by ‘base scores’ derived from the TVLs of each ETF and a modifier derived from the required delta between currently available and desired liquidity levels. All LP pools will target Uniswap V2 to begin with: at least until there’s a standard way of ‘doing’ liquidity mining for V3.

In addition, we will be allocating a proportion of rewards to single-sided staking for the three highest ETFs by TVL, subject to a scaling factor - the closer our ETFs are to their liquidity goals, the more rewards will be made available for single-sided staking, and vice-versa.

On ETF Tiers

We have observed that - naturally - some of our ETFs are more popular than others, either due to performance or the market sector that they target. The comparative TVLs of each of these ETFs is instructive, as they tell us which ones are being widely taken up by users.

We have decided that it is a better usage of reward tokens to target slippage levels relative to TVL, rather than set a flat slippage target of 1% for a 10 ETH buy across everything. For ETFs such as ORCL5, the required increase of liquidity to hit 1% would create perverse incentives, whereby people mint and provide liquidity to the LP pool simply to farm rewards (we have the single-sided pools to cater to the more mercenary amongst you!) .

Our initial thinking is to use the following levels to stratify ETF tiers:

Tier Base Score TVL Target Slippage @ 10 ETH
1 10 >= US$10,000,000 0.5%
2 5 >= US$5,000,000 2%
3 1 >= US$1,000,000 5%
4 0.5 < US$1,000,000 10%

The above slippage numbers may seem alarming for the lower tiers, but it’s important to remember that they’re against 10 ETH trades: if someone wanted to trade that much of a Tier 4 ETF (i.e. has a TVL of under a million dollars) they’d be moving the market quite heavily anyway - it is far better for them to mint or burn in that case.

According to the above table, this would classify our six current ETFs as follows:

ETF TVL Tier Base Score
DEFI5 19,137,022.01 1 1000
CC10 8,048,995.52 2 500
ORCL5 776,167.81 4 50
DEGEN 8,897,568.89 2 500
NFTP 1,685,580.65 3 100
ERROR 1,810,365.72 3 100

On Real Versus Desired Liquidity

To beat a dead horse a bit more - the key goal here is to incentivize sufficient liquidity for these target slippage levels to be reached. The magic number for this liquidity in Uniswap AMMs (because of the 50/50 split) is the solution to the following:

slippage = (eth_in_trade - eth_fee) / eth_in_pool

In each case, we know the slippage (dependent on ETF tier), we know that eth_in_trade is always 10 and we know that eth_fee is always 0.03 (since Uniswap V2 fees are fixed at 0.3%).

As such, we can calculate an estimated amount of required liquidity in USD per the following:

desired_liquidity = 9.97 / slippage * eth_price * 2

Note: we could quote desired liquidity in ETH here, but V2 analytics pages show total current liquidity in USD, and it doesn’t really make much difference either way, as it’s just a shift in numeraire.

Given the desired liquidity for an AMM and the current liquidity available, it’s easy enough to calculate the delta between the two as follows:

delta = (target_liquidity - real_liquidity) / real_liquidity

Finalizing Liquidity Mining Allocation Points

With liquidity deltas in hand, we now calculate the allocation points for each LP pair as:

etf_alloc_points = round((1 + delta) * base_score)

Assuming an ETH price of US$3,500 and a snapshot of real liquidity values for the various {ETF}/ETH pairs, this gives us the following:

LP Pair Base Real Liq. Target Liq. Liq. Delta Points
DEFI5-ETH 1000 13,111,907 13,958,000 0.06452859984 1065
CC10-ETH 500 2,241,946 2,791,600 0.2451682601 623
ORCL5-ETH 50 540,633 697,900 0.2908941925 65
DEGEN-ETH 500 3,686,602 2,791,600 -0.2427715278 379
NFTP-ETH 100 1,153,150 1,395,800 0.2104236223 121
ERROR-ETH 100 2,389,709 1,395,800 -0.4159121466 58
Totals 2250 0.1523310003 2311

On Reintroducing Single-Sided Staking

In addition to the above, we will be allocating a proportion of rewards to single-sided staking (i.e. rewarding DEFI5 rather than DEFI5/ETH LP) for the top three ETFs by TVL.

Our reasoning for this is twofold:

  • We anticipate that this will increase TVL in the long-term, as mercenary farmers mint more ETF tokens to participate. This corresponds, ultimately, to an increase in unrealised protocol revenue (in the form of exit fees) and a long-term boost to protocol statistics.
  • We would sooner that said mercenary farmers participated in single-sided staking than liquidity farming, as being beholden to whimsical liquidity (as farmers hop between the ‘best’ pools) is less than ideal. Give the mercs a sandbox, and let dedicated providers have the rest.

The way that we intend to do this is to allocate a flat number of allocation points to single-sided staking, which is split according to the relative TVLs of the top three ETFs and multiplied by a scaling factor <= 1 that is defined as:

scaling_factor = 1/(1 + abs(total_liquidity_delta))

That is to say - the closer the total liquidity delta is to zero (i.e. the closer we are to having exactly as much liquidity as required across the board), the closer to 1 the scaling factor will be. In the event that liquidity is thrown severely out of sync, the resulting scaling factor will reduce the amount of allocation points assigned to the single-sided staking pools in favour of buffering the liquidity pool rewards.

The Sigma committee reserves the right to shrink or increase the flat amount of allocation points allocated to single-sided staking based on shifts in the total liquidity delta, and - in extreme cases - temporarily terminate single-sided staking entirely.

A Full Example Allocation

As an example, if we set the flat allocation points for single-sided staking as 1,000, then using the figures given above we would end up with the following ‘final’ allocation points across the board for a given time period:

ETF TVL TVL % Init Points Scaling Factor* Points Points %
DEFI5 19,137,022.01 53.03% 530 0.8678062117 460 14.47%
CC10 8,048,995.52 22.3% 223 0.8678062117 194 6.10%
DEGEN 8,897,568.89 24.65% 247 0.8678062117 214 6.73%
Totals 36,083,586.42 1000 868 27.30%

* Scaling factor: 1/(1 + |0.1523310003|) = 0.8678062117

LP Pair Base Real Liq. Target Liq. Liq. Delta Points Points %
DEFI5-ETH 1000 13,111,907 13,958,000 0.06452859984 1065 33.5%
CC10-ETH 500 2,241,946 2,791,600 0.2451682601 623 19.60%
ORCL5-ETH 50 540,633 697,900 0.2908941925 65 2.04%
DEGEN-ETH 500 3,686,602 2,791,600 -0.2427715278 379 11.92%
NFTP-ETH 100 1,153,150 1,395,800 0.2104236223 121 3.81%
ERROR-ETH 100 2,389,709 1,395,800 -0.4159121466 58 1.82%
Totals 2250 0.1523310003 2311 72.7%

On Gaming The System

We do not expect to see mercs gaming the system by minting enough of a smaller ETF to push it into the top three for a single-sided allocation. This is because someone attempting to do this would more than likely lose more in the inevitable 0.5% burn fee once they exited than they’d receive from the associated reward pool (at least at present NDX prices). Nonetheless, we’re aware of the possibility.

In order to avoid people attempting to make adversarial moves, we won’t be publicising the frequency with which we will be reallocating points to start, or run updates on a set schedule. Remember that the Sigma committee will have to 3-out-of-5 approve any shifts to allocation points, and sometimes we’re just not all around at once!

It’s worth remembering that even with the proportions allocated above, the amount of tokens handed out over {X} time isn’t fixed day-in-day-out: the linear decay on emissions means that we’ll be slowly shutting off the tap from the second we start (it’ll just take us two years to stop it).


This is primarily a data-gathering exercise to start (as well as one in increasing the liquid supply of NDX), so we’ll be keeping a sharp eye on the figures and publicising them as they come out.

This isn’t… actually all that mathsy, so I’m hoping that we can get some detailed feedback from the community about their thoughts on all of it. We have a week to discuss this before the staking contract goes live, due to the timelock on the tokens within the Sigma vault (the countdown for which was triggered yesterday).

I’ll pop this up on Twitter and Medium once the vanguard is through the door and has had a look. If you have better ideas, or refinements/thoughts - I do want to hear them!


We’re back!