This an updated version of [WIP] Liquidity mining rewards. The motivation and direction are the same but the implementation details are a bit different.
We expect to launch this in the next few days assuming no major issues
Motivation
In no particular order, the following are some of the items we wanted to focus on with this proposal
- Reward early traders with PERP rewards
- Attract more traders to Perpetual Protocol and boost our trading volume.
- Distribute PERP to continue our route to decentralisation
- Create a positive feedback loop for traders and stakers - the liquidity mining should increase trading volume which in turn leads to more trading fees which flow into the insurance fund as well as higher yields for stakers. This in turn then drives the demand of PERP as there is greater visibility and then starts the loop again as new traders discover the protocol
- Prevent wash trading
- Reward traders who keep their positions open for longer
Proposal
The following is a high-level proposal of how we are looking to structure the initial program
- Provide liquidity mining rebates for trading fees
- The Liquidity Mining program will run for 2 weeks as a test program
- The weekly rewards will be capped at 150K of PERP in the trial period
- Taker fee rebates are given out to traders
- 6-month lockup and all rewards paid in PERP (is used to mitigate wash trading so a trader can’t simply just trade at a loss for as many fees as possible as if the price of PERP goes down during the lockup period they make a loss)
Reward Calculation Time
- Every Monday at 06:00 UTC
Off-Chain Process
The following are the details
-
For all the traders who traded last week (From Monday 0:00 UTC to Sunday 23:59:59 UTC), we calculate the trading activities for each trader by:
TradingActivity = Sum of individual Trades
Where a trade is defined as either:
// 1. Where position duration is > 30 minutes Trade = position size * position duration // 2. Where the case where position duration < 30 minutes then Trade = (position size * position duration) / 3 // Where position size is the actual change that occurs in USD // (e.g. if a position is already open and is reduced by 50K, then the position size is 50K) // Position duration is in seconds
-
The team will aggregate the
TradingActivities
from all traders and calculate the weight of each trader:Weight = TradingActivity / Sum of all the TradingActivities
-
Once we have weights for all the traders, we then distribute the weekly rewards to trades by weight:
PerpRewardCap = Sum of all trading fees by trader in this week (Fees are converted to PERP by TWAP of last day from CoinGecko) PerpRewardByTrader = PERP rewards weekly * Weight // Note that if PerRewardByTrader > PerRewardCap then PerRewardByTrader = PerRewardCap
-
Reward vesting schedule:
- Tokens immediately claimable: PerpRewardByTrader * 55%
- Tokens to be unlocked in 6 months time: PerpRewardByTrader * 55%
-
The result will be uploaded to IPFS for everyone who wants to verify it.
-
Traders will be able to claim their rewards on a site similar to the Balancer one (see https://claim.balancer.finance/)
Example
- Alice opened a 2x long position using
25K
USDC - Alice closed half of her long position
- Alice closed her long position and opened a new 1x short position using
25K
USDC - Alice closed her short position
At the end of this period, Alice’s TradingActivity
is:
TradingActivity = (50K * 20 * 1/3) + (25K * 30) + (25K * 30) = 1.83M
Alice’s trading fees paid during this period is:
(50K * 0.1%) + (25K * 0.1%) + (50K * 0.1%) + (25K * 0.1%) = 150 USDC
= 30 PERP (Suppose 1 PERP = 5 USDC)
Suppose that the overall total TradingActivities
are 1.83B
, Alice’s PERP reward is:
// Weekly amount * weight
PerpReward = 150K * (1.83M / 1.83B) = 150 PERP
But because Alice’s trading fees paid during this period is 30 PERP
, the reward will be capped by the trading fees. In the end, the PERP reward she will get is:
Right away: 30 PERP * 55% = 16.5 PERP
6 months later: 30 PERP * 55% = 16.5 PERP
Q&A
-
What happens when someone opens a long and short position at the same time?
Opening long and short positions at the same time is more like buying PERP futures that expired in 6 months.
-
Will I still receive rewards when I opened a position two weeks ago and don’t make any trade last week?
You will receive 0 transaction mining rewards if you don’t make any trades last week. It sounds a little strange but it’s to prevent wash trading.