Introduction
As a tick-based automated market maker (AMM), our Kyberswap Elastic protocol will allow users to provide liquidity to a pool within a custom price range so liquidity can be used more efficiently. This also means that users no longer share the same position in a pool as they can customize the price-range of their positions. Therefore, this customizability makes the traditional liquidity mining mechanism (i.e. distributing farming rewards to all staking users in a pro-rata way) no longer reasonable as users' contributions to the total liquidity of the pool will be different depending on their position. The risk taken by each user also varies greatly.
To tackle these challenges, we created an innovative liquidity mining (aka farming) system for Kyberswap Elastic that is able to distribute farming rewards to users according to their contribution to the pool's active liquidity. We’ve implemented two different farming mechanisms, and all farms on KyberSwap Elastic are set up based on one of these farming mechanisms.
Farming Mechanisms
Farming Type 1: Active Time of Your Liquidity
Type 1 farms pay out based on the amount of time that your liquidity position has been active (i.e. in range) in the pool. Once you stake your liquidity position(s) into a farm, we will start calculating your farming rewards based on whether your liquidity position(s) is currently active and supporting the current price of the pool.
You will continue to accumulate farming rewards as long as your position is active.
You will of course accumulate rewards in proportion to the dollar value of your liquidity position relative to other farmers.
Example
- There is a KNC-USDT (Fee = 0.04%) liquidity pool. The current price of the pool is $5.0 (i.e. 1 KNC = 5 USDT)
- You provide $1000 liquidity to KNC-USDT (Fee = 0.04%) Elastic pool where you add liquidity in a range from $4.0 to $6.0. This means that as long as the current price of KNC-USDT remains within this range your liquidity position will remain active (aka in range)
- KNC-USDT (Fee = 0.04%) pool has a Farm where you can earn farming rewards. There is already a total of $50,000 staked into this farm
- You deposit and thereafter stake your NFT position (that represents your $1000 liquidity position) into the KNC-USDT (Fee = 0.04%) farm
- After staking, you will start accumulating farming rewards since your liquidity position is active in proportion to your liquidity position. In this case you will earn rewards based on your $1000 of the total $50,000 that is staked
- Now lets say the current price of KNC-USDT goes to $6.5. Your liquidity position is now inactive (aka out of range) as you only provided liquidity in the $4.0 - $6.0 price range. You will now stop accumulating farming rewards
- In order to start earning farming rewards again, you will have to unstake your liquidity position from the farm, withdraw it, remove the liquidity from the KNC-USDT pool and provide liquidity in the correct price range again (e.g. $4.0 to $7.0) so it supports the current price of the pool. Alternatively, you can wait for the current price of the KNC-USDT pool to go back within your price range of $4.0 to $6.0, so that your liquidity positions becomes active again.
Farming Type 2: Active Time of your Liquidity & Target Volume
Type 2 farms pay out based on two factors:
- Total time your liquidity position has been active (aka in range) in the pool and supporting the current price of the pool
- Trade volume supported by your liquidity position (indicated by the target Fee earned from the pool). The objective of Target Trade Volume is for the project that is giving out farming incentives to indicate the trading volume they would like each liquidity position to support before they receive farming rewards.
Once you stake your liquidity position(s) into a farm, we will start calculating your farming rewards based on 1) whether your liquidity position(s) is currently active and supporting the current price of the pool 2) whether your liquidity position(s) has supported the required target volume by supporting the trading volume in the pool.
You will accumulate farming rewards even if your liquidity position hasnt hit the full Target Volume. As soon as your position hits the full Target Volume, from thereafter, you will continue receiving 100% of the rewards for that liquidity position. You will of course accumulate rewards in proportion to the dollar value of your liquidity position relative to other farmers
If your liquidity position goes out of range (aka becomes inactive), you will stop accumulating farming rewards. This can happen if the current price of the pool moves significantly due to market changes. You will have to adjust the price range of your liquidity position so that it is again in range (aka active) and is supporting the current price of the pool.
In order to hit your full Target Volume faster, you may also have to adjust the price range of your liquidity position so that its concentrated enough and consequently more trading volume of the pool is supported by your liquidity position.
Example
- There is a KNC-USDT (Fee = 0.04%) liquidity pool. The current price of the pool is $5.0 (i.e. 1 KNC = 5 USDT)
- You provide $1000 liquidity to KNC-USDT (Fee = 0.04%) Elastic pool where you add liquidity in a range from $4.0 to $6.0. This means that as long as the current price of KNC-USDT remains within this range your liquidity position will remain active (aka in range)
- KNC-USDT (Fee = 0.04%) pool has a Farm where you can earn farming rewards. There is already a total of $50,000 staked into this farm
- You deposit and thereafter stake your NFT position (that represents your $1000 liquidity position) into the KNC-USDT (Fee = 0.04%) farm
- Even though your liquidity position is currently active and supporting the current price of the KNC-USDT pool, you may not be accumulating any farming rewards yet, because there is no trading volume going through your liquidity position. As traders start trading using your liquidity position in the KNC-USDT pool, you will start accumulating farming rewards since your liquidity position is both active and is supporting the trading volume of the pool. The more trades that use your liquidity in the pool, the faster you reach your full Target Volume. Once you unlock your full Target Volume (decided by the project giving out farming incentives), you will start accumulating maximum farming rewards based on your $1000 liquidity of the total $50,000 that is staked.
- If the current price of the KNC-USDT (Fee = 0.04%) pool is $5.0, it might be better in this instance to make your price range $4.5 to $5.5 so that your liquidity is more concentrated and therefore more trades will use your liquidity position. This way you can hit the full Target Volume faster and start earning maximum farming rewards. Of course, there is a chance that your liquidity position may become inactive if current price of KNC-USDT moves outside of your price range.
- Now lets say the current price of KNC-USDT goes to $6.5. Your liquidity position is now inactive (aka out of range) as you only provided liquidity in the $4.0 - $6.0 price range. You will now stop accumulating farming rewards
- In order to start earning farming rewards again, you will have to unstake your liquidity position from the farm, withdraw it, remove the liquidity from the KNC-USDT pool and provide liquidity in the correct price range again (e.g. $4.0 to $7.0) so it supports the current price of the pool. Alternatively, you can wait for the current price of the KNC-USDT pool to go back within your price range of $4.0 to $6.0, so that your liquidity positions becomes active again.