Rewarding Public Pools

Rewarding Public Pools
Photo by Antoine Dautry / Unsplash

As we have now opened up the ability for any token to be listed on CarbSwap, it is time to discuss rewards for these pools.

To incentivise liquidity providers on a dex, a reward token is usually earned based on the liquidity provided. In CarbSwap, that token is GRPH.

We have two different ways a public pool on CarbSwap can earn GRPH Rewards.

  1. Sponsored Rewards - this option is typically used while a pool is working towards meeting the conditions of "Approved" rewards. A sponsor will supply GRPH tokens to us that will be rewarded to its liquidity providers.
  2. Approved Rewards - rewards that a pool has earned by meeting minimum volume thresholds and voted on by the community.

Let's look at each option in more detail; we will start with Approved Rewards first. Doing so will help you to understand why we offer sponsored rewards.

Approved Rewards

Approved Rewards are for pools that have met several necessary conditions. These conditions are imposed to ensure a healthy reward programme that benefits token pools that help CarbSwap.

  1. Community approval - all GRPH holders have the right to vote pools into receiving rewards (they can also vote to have rewards removed). Voting is done using Graphite - our fairer voting platform that you can read more about here. However, a token cannot be voted into rewards until all other conditions have been met. Once a pool has been voted in to receive rewards, it does not need to be voted in again (unless it was voted out).
  2. Volume Threshold - a minimum amount of CARB must be in the token pool.
  3. Liquidity Pool Diversity - the pool must have multiple liquidity providers, and no single liquidity provider should supply more than 50% of the pool's liquidity.*

    * We accept that a single liquidity provider could add liquidity through multiple wallets. However, we believe the threshold required here would make it somewhat prohibitive to manage.
  4. Active Trading - the pool must meet a minimum trade volume over the last week.
Once a week (and randomly), a snapshot will be taken of the pool to determine whether it is still meeting the conditions of receiving rewards. If it does, then the amount of rewards will also be calculated.

Snapshots will be revealed at the start of the following week (determined by a specific block number).

As you have probably worked out, it will be pretty hard for a new token to earn rewards initially. They would not be able to meet the conditions that we have set.

However, they can supply us with GRPH directly, which will be used to provide rewards for their pool. This will allow them to incentivise others to provide liquidity and should enable them to meet the conditions we have set out above.

How do sponsored rewards work?

  1. The token owner would purchase GRPH from the market.
  2. They would then contact us to advise that they would like to make x amount of GRPH available as rewards for their pool. They also suggest over what period these rewards should be paid out. We are recommending a minimum of 45 days.
Sponsored Rewards have a deflationary impact on GRPH. When we are provided GRPH to be used for rewards, we immediately burn these. The actual rewards will be minted on demand by the liquidity providers. 

Any rewards earned by the reward sponsor are to be returned to us. These will also be burned.

Reward Calculation

As mentioned above, each week, a snapshot will be taken to determine the rewards for each pool. The snapshot captures the following information:

  1. The amount of CARB in the pool.
  2. The number of liquidity providers.
  3. The amount of liquidity provided by each liquidity provider.

There is one other piece of information that is used to determine whether the pool has met the conditions for rewards, and that is:

  • Trade volume

But as the snapshot taken is random, we can not check this condition until the new week of rewards begins.

If all conditions of earning rewards are met, then the number of rewards for the next week is calculated.

Reward Constraints

A few constraints help determine the number of rewards earned by a pool. These are:

The Amount of Rewards Available: This is simply the same amount as the total number of rewards being earned by our native pools. Currently, that number is 7,200,000 (7.2million) per year. Per block, that is 7.91 GRPH.

The Maximum Amount of Rewards a Single Pool Can Earn: No single pool can earn more than 25% of the rewards available. Per block, that means a pool at most can earn 1.98 GRPH.

If there are more than four public pools that are earning rewards, then the maximum amount of rewards a single pool can earn is determined using this basic formula:

(1 / numPublicPoolsEarningRewards)*numRewardsPerBlock

For example, if there were seven pools, then:

(1 / 7)*7.91 = 1.13

Size of Liquidity Pool

There needs to be a minimum amount of CARB in the pool to earn rewards. The amount of CARB in the pool determines the number of rewards earned. It would not be "fair" to reward a pool with 50K CARB the same as one with 500K CARB, right?

Instead, we determine the amount of CARB needed to earn full rewards for a pool. This is done simply by looking at all pools in CarbSwap and recording the amount of CARB in the pool with the most CARB liquidity.

We will refer to this as minCarbNeededForMaxRewards, and for our examples below, we will say that this is 250,000.

Based on the most recent snapshot, we can now determine how many rewards a pool can earn.

(poolSize / minCarbNeededForMaxRewards) * maxRewardsForPool

Let's look at a couple of examples:

Pool Size (CARB)CalculationNum. Rewards (per block)
50K(50000/250000)*1.980.396 GRPH
100K(100000/250000)*1.980.792 GRPH
250K(250000/250000)*1.981.98 GRPH

The above examples are based on the assumption that, at most, four public pools can earn rewards, so the maximum they can earn is 25% of the available rewards.