VIP Architecture

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.

Minitia Eligibility

Before a minitia can be eligible for VIP rewards, it must first be whitelisted by the Initia L1 governance through an on-chain proposal.

Rewards Distribution

At each rewards distribution stage , the total VIP rewards for that stage RtR_t are distributed amongst each minitia ecosystem. The distribution is split into multiple steps:

  1. Splitting the total rewards allocated for that stage, RtR_t , between all whitelisted minitias.

  2. Distributing the rewards to each minitia's users.

  3. Distributing the rewards to each minitia's operators.

Rewards Split Between Minitias

At each stage tt , the total VIP rewards for that stage RtR_t are distributed amongst each minitia ecosystem. The total rewards are then split into two pools: the Balance Pool RBR_B and the Weight Pool RWR_W.

These two pools aim to incentivize and reward different aspects of minitia operations. The ratio between RBR_B and RWR_W , called poolSplitRatio, is set by the Initia L1 governance and can be changed through on-chain proposals. The sum follows the equation:

Rt=RB+RWR_t = R_B + R_W

The rewards for each minitia m are then calculated as follows:

Rm,t=RB,m,t+RW,m,tR_{m,t} = R_{B,m,t} + R_{W,m,t}

Where:

  • RB,m,tR_{B,m,t} represents the portion of rewards from the Balance Pool RBR_{B} allocated to minitia m at stage t.

  • RW,m,tR_{W,m,t} represents the portion of rewards from the Weight Pool RWR_W 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.

RB,m,t=RB,tIm,ti=1N,tIi,tR_{B,m,t} = R_{B,t} \frac{I_{m,t}}{\sum_{i=1}^{N,t} I_{i,t}}

Where:

  • RB,tR_{B,t} is the total rewards from the Balance Pool for the stage.

  • Im,tI_{m,t} is the amount of INIT tokens locked by minitia m during the stage.

  • NtN_{t} is the total number of minitias in the stage.

Weight Pool

The Weight Pool RWR_W rewards minitias based on their weight value, which is determined by a gauge weight voting process similar to protocols such as Curve's.

RW,m,t=RW,tWm,ti=1N,tWi,tR_{W,m,t} = R_{W,t} \frac{W_{m,t}}{\sum_{i=1}^{N,t} W_{i,t}}

Where:

  • RW,tR_{W,t} is the total rewards from the Weight Pool for the stage.

  • Wm,tW_{m,t} is the weight of minitia m during the stage.

  • NtN_{t} is the total number of minitias in the stage.

Distribution to Minitia Users

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 Su,m,tS_{u,m,t}, their rewards are:

Ru,m,t=Rm,tSu,m,ti=1Nu,m,tSi,m,tR_{u,m,t} = R_{m,t} \frac{S_{u,m,t}}{\sum_{i=1}^{N_{u,m,t}} S_{i,m,t}}

Where:

  • Rm,tR_{m,t} is the total rewards from the VIP program for the stage.

  • Su,m,tS_{u,m,t} is the score of the user on minitia m during stage t.

  • Nu,m,tN_{u,m,t} is the total number of users on minitia m during stage t.

Distribution to Minitia Operators

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:

Ro,m,t=Rm,tcmR_{o,m,t} = R_{m,t} c_{m}

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:

Ru,m,t=(1cm)Rm,tSu,m,ti=1Nu,m,tSi,m,tR_{u,m,t} = (1-c_{m}) R_{m,t} \frac{S_{u,m,t}}{\sum_{i=1}^{N_{u,m,t}} S_{i,m,t}}

Rewards Vesting

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.

User Vesting

These tokens are initially non-transferable and can be vested in two ways:

  1. Maintain a VIP Score: Keep a certain score over a number of vestingPeriod, with each period lasting stageDuration.

  2. 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 152\frac{1}{52} 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:

Starget,m,t=Su,m,tfS_{\text{target},m,t} = S_{u,m,t} \cdot f

Where:

  • Su,m,tS_{u,m,t} is the user's score on minitia m during stage t.

  • Starget,m,tS_{\text{target},m,t} is the target score for minitia m during stage t.

Calculating the Target Score

The target score Starget,m,tS_{\text{target},m,t} 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 100f100 \cdot f.

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:

cuser=Su,m,tStarget,m,tc_{\text{user}} = \frac{S_{u,m,t}}{S_{\text{target},m,t}}

For instance, if f is 0.5, a user with a score of 100 must maintain a score of at least Starget,m,t=1000.5=50S_{\text{target},m,t} = 100 \cdot 0.5 = 50 for the next p stages to fully vest their esINIT. If after p stages, their score Su,m,tS_{u,m,t} is only 30, their cuserc_{\text{user}} will be 3050=0.6\frac{30}{50} = 0.6, 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

stageUser ScoreesINIT ReceivedVesting Rate (per stage)Min Score NeededActual Vesting

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

  1. 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.

  2. 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.

  3. 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 zz.

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.

Operator Vesting

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 110\frac{1}{10} of their esINIT at each stage.

Last updated

Logo

© 2024 Initia Foundation, All rights reserved.