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 by
DFminDF_{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 modified 2mo ago