# Technical Document

## 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\ \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 \geq 0.10,\ and\ DF \leq 1.00
$$

## Distribution

### Max Distribution

During the staking program duration $$P$$ we can distribute total $$A\_{max}$$ amount of DAFI. This means each second, the maximum amount of DAFI we can distribute is:&#x20;

$$
\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 $$DF\_{max}$$ and divided by$$DF\_{min}$$.  We call this action `Conversion Multiplier` -  $$CM$$, and it has some characteristics:

* $$DF \in R,\ and\ 0.1 \leq DF \leq 1$$&#x20;
* $$\Rightarrow CM\in R, and\ 0.01 \leq CM \leq10 \ \Rightarrow\ CM\_{max} = 10$$&#x20;

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

$$
D\_{max} = \frac{DF\_{min}}{DF\_{max}}\cdot\frac{A
\_{max}}{P}
$$

### Actual Distribution

Actual distribution is the maximum distribution multiplied by demand factor.

$$
D = 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.

$$
F\_u = 25% \* R
$$

### Fee Distribution

$$
F = \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 = \sum\limits\_{i=0}^t R\_i
$$

### Final Reward

$$
R\_{final} = R\ \cdot\ \frac{DF\_{latest}}{DF\_{staking}} + F
$$
