VIP Architecture
Last updated
Last updated
At network genesis, a portion of the total INIT token supply will be set aside as rewards for the VIP program, which will be distributed over several years. Let's call this portion of the supply R. These rewards are given out at regular intervals, or stage t, throughout the distribution period.
The total rewards are first distributed to each minitia, then subsequently to the minitia's users and operators.
Before a minitia can be eligible for VIP rewards, it must first be whitelisted by the Initia L1 governance through an on-chain proposal.
At each rewards distribution stage , the total VIP rewards for that stage are distributed amongst each minitia ecosystem. The distribution is split into multiple steps:
Splitting the total rewards allocated for that stage, , between all whitelisted minitias.
Distributing the rewards to each minitia's users.
Distributing the rewards to each minitia's operators.
At each stage , the total VIP rewards for that stage are distributed amongst each minitia ecosystem. The total rewards are then split into two pools: the Balance Pool and the Weight Pool .
These two pools aim to incentivize and reward different aspects of minitia operations. The ratio between and , called poolSplitRatio
, is set by the Initia L1 governance and can be changed through on-chain proposals. The sum follows the equation:
The rewards for each minitia m are then calculated as follows:
Where:
represents the portion of rewards from the Balance Pool allocated to minitia m at stage t.
represents the portion of rewards from the Weight Pool allocated to minitia m at stage t.
Balance Pool
The Balance Pool aims to encourage minitias to find new and interesting uses for the INIT token by distributing rewards based on the proportion of INIT tokens locked in the chain. Specifically, at each stage t, the rewards are allocated according to the amount of INIT locked on each minitia m relative to the total amount locked on all minitias.
Where:
is the total rewards from the Balance Pool for the stage.
is the amount of INIT tokens locked by minitia m during the stage.
is the total number of minitias in the stage.
Weight Pool
The Weight Pool rewards minitias based on their weight value, which is determined by a gauge weight voting process similar to protocols such as Curve's.
Where:
is the total rewards from the Weight Pool for the stage.
is the weight of minitia m during the stage.
is the total number of minitias in the stage.
Once we know how much rewards each minitia receives for a given stage, we then further distribute these rewards to the users of the minitia. The amount of VIP rewards to each user is defined by a scoring methodology decided by the minitia team. The scoring method could be based on factors such as:
Number of transactions a user makes on the minitia.
Value of assets a user borrows.
Trading volume or liquidity provided by the user.
At the end of each stage, the rewards for each user are calculated and stored. Once the rewards for each minitia are known, the rewards are then directly distributed to the users of the minitia.
If a user u on minitia m has a score of , their rewards are:
Where:
is the total rewards from the VIP program for the stage.
is the score of the user on minitia m during stage t.
is the total number of users on minitia m during stage t.
To ensure that minitia operators are also incentivized to keep their minitias active and useful, they can set an operatorCommissionRate
, c. This rate allows them to take a portion of the rewards for their minitia.
The rewards for an operator o of minitia m during a stage are:
The commission rate is set when the minitia is first approved for VIP rewards and can be changed later, but only by a fixed amount each stage to prevent abuse.
Taking into account the operator commissions, the total rewards distributed to a user on a minitia is then:
Rewards from the VIP program are given in the form of escrowed INIT tokens (esINIT). These tokens are initially non-transferable and can be vested in multiple ways depending on whether the receiver is the user or minitia operator.
These tokens are initially non-transferable and can be vested in two ways:
Maintain a VIP Score: Keep a certain score over a number of vestingPeriod
, with each period lasting stageDuration
.
Zap into a Staking Position: Convert the escrowed tokens into a whitelisted INIT:TOKEN staking position.
Maintaining a VIP Score
Vesting Process
VIP esINIT rewards are converted into regular INIT tokens over multiple vestingPeriod
, denoted as p, with each period lasting one stage. For instance, if the vesting period is 52 stages, the user will receive of their esINIT at each stage.
Achieving the Required Score
To fully convert their rewards into INIT tokens, users must maintain a certain score over the vesting periods, p, as determined by Initia L1 governance. The minimum required score is set by a threshold
factor f, also determined by the L1 governance. The score calculation is as follows:
Where:
is the user's score on minitia m during stage t.
is the target score for minitia m during stage t.
Calculating the Target Score
The target score is the user's score for stage t multiplied by the factor f. For example, if a user u has a score of 100 at stage t, their target score to fully vest their esINIT after p stages is .
Failing to Meet Target Score
If a user fails to meet the target score at a certain stage t, they will only vest and receive a portion of their esINIT, calculated by the formula:
For instance, if f is 0.5, a user with a score of 100 must maintain a score of at least for the next p stages to fully vest their esINIT. If after p stages, their score is only 30, their will be , and they will only be able to vest 60% of their esINIT.
Example Scenario
Vesting Period (p): 50 stages
Minimum Score Factor (f): 0.5
stage 1 (t=1)
User Score: 100
esINIT Received for stage 1: 100
Vesting Rate: 100 esINIT / 50 stages = 2 INIT per stage
stage 2 (t=2)
Minimum Score Needed from stage 1: 100 * 0.5 = 50
User Score: 60
Vesting from stage 1: Since 60 >= 50, the user vests the full 2 INIT
Vesting Rate for stage 2: 60 esINIT / 50 stages = 1.2 INIT per stage
esINIT Received for stage 2: 60
stage 3 (t=3)
Minimum Score Needed from stage 1: 100 * 0.5 = 50
Minimum Score Needed from stage 2: 60 * 0.5 = 30
User Score: 40
Vesting from stage 1: Since 40 < 50, the user vests (40/50) * 2 = 1.6 INIT
Vesting from stage 2: Since 40 >= 30, the user vests the full 1.2 INIT
Total Vesting for stage 3: 1.6 INIT (from stage 1) + 1.2 INIT (from stage 2) = 2.8 INIT
Summary Table
1
100
100
2 INIT
-
-
2
60
60
1.2 INIT
50 (stage1)
2 INIT
3
40
-
-
50 (stage1), 30 (stage2)
1.6 + 1.2 = 2.8 INIT
Explanation
stage 1: The user scores 100 and receives 100 esINIT, which will be unlocked at a rate of 2 INIT per stage over 50 stages.
stage 2: The user needs to score at least 50 to unlock the full 2 INIT from stage 1. They score 60, so they unlock the full 2 INIT and receive 60 esINIT for stage 2, which will be unlocked at a rate of 1.2 INIT per stage.
stage 3: The user needs to score at least 50 to unlock the full 2 INIT from stage 1 and at least 30 to unlock the full 1.2 INIT from stage 2. They score 40, so they unlock 1.6 INIT from stage 1 and the full 1.2 INIT from stage 2, totaling 2.8 INIT.
Zapping into a Whitelisted LP Staking Position
Maintaining the score over several periods may be challenging for some users. Therefore, VIP allows users to immediately convert their esINIT into a locked, staked INIT:TOKEN LP position on the InitiaDEX, with the user providing the TOKEN side of the pair. This zapped staking position is then locked for a certain zapLockPeriod
.
By zapping:
The user receives both native staking rewards and swap fees in return for committing liquidity to the chain. The locked staking position also means they receive a boosted reward rate.
The Initia L1 and ecosystem benefit from the increased liquidity generated by the locked staking positions.
Similarly, minitia operators' esINIT rewards are also vested. However, the vesting process is slightly different. Operator esINIT rewards are solely linearly released over a number of operatorVestingStages
. For example, if the operator vesting period is 10 stages, the operator will receive of their esINIT at each stage.