# Element Deep Dive

## How Element Works
The Element Protocol wraps yield bearing assets and splits the resulting shares into a principal and a yield token.

**Basic Features:**
- PTs can be purchased at a discount to lock in a fixed yield rate
- Minting and Staking for additional rewards
## Pricing Principal Tokens
### Constant Power Sum Invariant
\begin{equation}
x^{1-t}+y^{1-t}=k
\end{equation}
**where**
- $x$ is the reserves of the base asset
- $y$ is the reserves of the PT
- $t$ is the time to maturity
- $k$ is a constant
### The Behavior of the Constant Power Sum Invariant Over Time
<iframe src="https://www.desmos.com/calculator/wdj1kujgqg?embed" width="650px" height="500px" style="border: 1px solid #ccc" frameborder=0></iframe>
<br>
<br>
To calculate the result of a swap, solve for $output$:
\begin{aligned}
&(x - output)^{1-t}+(y + input)^{1-t}=k \\
&output=x-\left(k-\left(y+input\right)^{\left(1-t\right)}\right)^{\frac{1}{1-t}}
\end{aligned}
Fees are calculated as a percent of the yield:
\begin{aligned}
fee=(input-output)\ \times\ \phi
\end{aligned}
Currently, $\phi$ is set to .1
:information_source: See [Appendix A](https://paper.element.fi/#a-pricing-principal-tokens) in the Element Construction Paper for more details
## Configuring the Curve
**Time Stretch**
Intuitively, this parameter can be thought of like this:
\begin{aligned}
\require{cancel}
t &= \frac{term\ length}{365 \times time\ stretch}
\end{aligned}
### Goal 1: Optimize the staking requirements for a particular APY
**Time Stretch vs Reserve Ratio**
<iframe src="https://www.desmos.com/calculator/l6ee0zvjoj?embed" width="650" height="500" style="border: 1px solid #ccc" frameborder=0></iframe>
### Goal 2: Price Discovery
**Time Stretch vs Price Discovery**
<iframe src="https://www.desmos.com/calculator/6chgtzfjx4?embed" width="650" height="500" style="border: 1px solid #ccc" frameborder=0></iframe>
### Selecting the Time Stretch
The following plot shows what time stretches result in the ratio of the reserves (base/bond) approximately equal to the spot price of the associated APY:

the green dashed line is the following equation:
\begin{aligned}
t_{stretch}=\frac{3.09396}{0.02789\cdot APY_{PT}}\qquad(21)
\end{aligned}
and approximates the suggested $t_{stretch}$ for a given $APY_{PT}$.
:information_source: See [Appendix B](https://paper.element.fi/#b-convergent-curve-parameter-configuration) in the Element Construction Paper for more details
## Market Simulations
The following represents a ycrvSTETH position, at 20% APY, with PTs trading at 10%:

The following table shows the various scenarios at different trading volumes. The final column shows the resulting output APR.
| target_liquidity | trade_volume_sum | mean_daily_volume | apr |
|------------------------:|--------------------------:|---------------------------:|-------------:|
| 10,000,000 | 140,244,378 | 1,558,271 | 12.38 |
| 10,000,000 | 282,196,292 | 3,135,514 | 21.51 |
:information_source: See [Section 4.3](https://paper.element.fi/#43-staking-principal-tokens) in the Element Construction Paper for more details
## Leverage: Yield Token Compounding
**Calculate the number of PTs and YTs after N Compounds**
\begin{aligned}
Number\ of\ PTs\ &= P\cdot\left(1-R_{fixed}\right)^{N}\\
Number\ of\ YTs\ &=\frac{P\cdot\left(1-\left(1-R_{fixed}\right)^{N+1}\right)}{R_{fixed}}\\
APY_{boosted}&=\frac{P\cdot\left(1-\left(1-R_{fixed}\right)^{N+1}\right)}{R_{fixed}}\cdot R_{variable}\ +\ P\cdot\left(1-R_{fixed}\right)^{N}
\end{aligned}
$where$
- $P$ is the initial principal amount deposited
- $R_{fixed}$ is the fixed yield rate
- $R_{variable}$ is the variable yield rate
**APY vs Number of Compounds Given different Rates**
<iframe src="https://www.desmos.com/calculator/g8lhaynraj?embed" width="550px" height="500px" style="border: 1px solid #ccc" frameborder=0></iframe>
:information_source: See [Appendix C](https://paper.element.fi/#c-compounding-and-yield-with-element) & [Appendix D](https://paper.element.fi/#d-yield-token-compounding-formulation) in the Element Construction Paper for more details
## Element State Machine
**Symbology**
:diamonds: is a decision point
:black_square_button: is an interaction with the Element Protocol
<iframe frameborder="0" src="https://viewer.diagrams.net/?highlight=0000ff&layers=1&nav=1&title=Element%20Flow%20Diagram%20v2#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D1b-RdUBh9jALDOnHzjYI_62bgL11uE6qE%26export%3Ddownload" width="1150px" height="750px" style="border: 1px solid #ccc"></iframe>
## What Can Be Built On Element?
- Automated Leveraging
- Self paying loans
- Yield Ladders
- etc
## We Are Hiring
https://element.fi/careers
## Shoutouts
- Balancer Team
- Yearn Team
- [YieldSpace](https://yield.is/YieldSpace.pdf) authors:
:mega: Allan Niemerg
:mega: Dan Robinson
:mega: Lev Livnev
## The End :microphone:
