Technical Document

For geeks that care.

Demand Factor

In V1, we have chosen Price and TVL as the demand metrics. The chosen target levels are $0.18, and soon 500M, for Price and TVL respectively. The TVL metric will only be added in Q4 after launching, due to oracle-feed requirements.

DF=0.75 ⋅ PPbaseline+0.25 ⋅ TVLTVLbaselineDF = 0.75\ \cdot\ \frac{P}{P_{baseline}} + 0.25\ \cdot\ \frac{TVL}{TVL_{baseline}}

And to make sure demand factor does not go out of control, we have introduced some limitations for demand factor.

DF≥0.10, and DF≤1.00DF \geq 0.10,\ and\ DF \leq 1.00

Distribution

Max Distribution

During the staking program duration PP we can distribute total AmaxA_{max} amount of DAFI. This means each second, the maximum amount of DAFI we can distribute is:

AmaxP\frac{A_{max}}{P}

However, we need to convert users' reward at the end using reward multiplication. This means at the most extreme case, reward will be multiplied by DFmaxDF_{max} and divided byDFminDF_{min}. We call this action Conversion Multiplier - CMCM , and it has some characteristics:

  • DF∈R, and 0.1≤DF≤1DF \in R,\ and\ 0.1 \leq DF \leq 1

  • ⇒CM∈R,and 0.01≤CM≤10 ⇒ CMmax=10\Rightarrow CM\in R, and\ 0.01 \leq CM \leq10 \ \Rightarrow\ CM_{max} = 10

To make sure the total distributed DAFI will never become greater than Max DAFI, the maximum distribution per second needs to acknowledge the multiplier.

Dmax=DFminDFmaxâ‹…AmaxPD_{max} = \frac{DF_{min}}{DF_{max}}\cdot\frac{A _{max}}{P}

Actual Distribution

Actual distribution is the maximum distribution multiplied by demand factor.

D=Dmaxâ‹…DFD = D_{max} \cdot DF

Fees

Fee Deposited

Every time users claim their rewards, 25% of their rewards will be deducted and distributed to other stakers.

Fu=25%∗RF_u = 25\% * R

Fee Distribution

F=∑i=0tFiF = \sum\limits_{i=0}^t F_i

Reward

Users' rewards are the accumulated amounts of reward every time demand factor changes. The actual implementation is similar to other staking programs like Sushi's MasterChef.

R=∑i=0tRiR = \sum\limits_{i=0}^t R_i

Final Reward

Rfinal=R ⋅ DFlatestDFstaking+FR_{final} = R\ \cdot\ \frac{DF_{latest}}{DF_{staking}} + F

Last updated