Detailing the process of minting and redeeming FRAX

All FRAX tokens are fungible with one another and entitled to the same proportion of collateral no matter what collateral ratio they were minted at. This system of equations describes the minting function of the Frax Protocol:

$F = \overbrace{(Y*P_y)}^{\text{collateral value}} + \overbrace{(Z*P_z)}^{\text{FXS value}}$

$(1-C_r)(Y*P_y) = C_r(Z*P_z)$

$F$ is the units of newly minted FRAX $C_r$ is the collateral ratio $Y$ is the units of collateral transferred to the system $P_y$ is the price in USD of $Y$ collateral $Z$ is the units of FXS burned $P_z$ is the price in USD of FXS

To be explicit, we can start by finding the FXS needed to mint FRAX with `200 USDC`

(`$1/USDC`

) at a collateral ratio of 1.00

$(1-1.00)(100*1.00) = 1.00(Z*P_z)$

$0 = (Z * P_z)$

Thus, we show that no FXS is needed to mint FRAX when the protocol collateral ratio is 100% (fully collateralized). Next, we solve for how much FRAX we will get with the `200 USDC`

.

$F = (200*1.00) + (0)$

$F = 200$

`200 FRAX`

are minted in this scenario. Notice how the entire value of FRAX is in dollar value of the collateral when the ratio is at `100%`

. Any amount of FXS attempting to be burned to mint FRAX is returned to the user because the second part of the equation cancels to `0`

regardless of the value of $Z$ and $P_z$.

First, we need to figure out how much FXS we need to match the corresponding amount of USDC.

$(1 - 0.8)(120 * 1.00) = 0.8(Z*2.00)$

$Z = 15$

Thus, we need to deposit 15 FXS alongside 120 USDC at these conditions. Next, we compute how much FRAX we will get.

****$F = (120*1.00) + (15*2.00)$

$F = 150$

`150 FRAX`

are minted in this scenario. `120 FRAX`

are backed by the value of USDC as collateral while the remaining `30 FRAX`

are not backed by anything. Instead, FXS is burned and removed from circulation proportional to the value of minted algorithmic FRAX.

First, we start off by finding the FXS needed.

$(1-.50)(220*.9995) = .50(Z*3.50)$

$Z = 62.54$

Next, we compute how much FRAX we will get.

****$F = (220*.9995) + (62.54*3.50)$

$F = 437.78$

`437.78 FRAX`

are minted in this scenario. Proportionally, half of the newly minted FRAX are backed by the value of USDC as collateral while the remaining 50% of FRAX are not backed by anything. `62.54 FXS`

is burned and removed from circulation, half the value of the newly minted FRAX. Notice that the price of the collateral affects how many FRAX can be minted – FRAX is pegged to 1 USD, not 1 unit of USDC.

If not enough FXS is put into the minting function alongside the collateral, the transaction will fail with a `subtraction underflow`

error.

Redeeming FRAX is done by rearranging the previous system of equations for simplicity, and solving for the units of collateral, $Y$, and the units of FXS, $Z$.

$Y = \dfrac{F*(C_r)}{P_y}$

$Z = \dfrac{F*(1-C_r)}{P_z}$

$F$ is the units of FRAX redeemed $C_r$ is the collateral ratio $Y$ is the units of collateral transferred to the user $P_y$ is the price in USD of $Y$ collateral $Z$ is the units of FXS minted to the user $P_z$ is the price in USD of FXS

$Y = \dfrac{170*(.65)}{1.00}$

$Z = \dfrac{170*(.35)}{3.75}$

Thus, $Y = 110.5$ and $Z = 15.867$

Redeeming `170 FRAX`

returns `$170`

of value to the redeemer in `110.5 USDC`

from the collateral pool and `15.867 of newly minted FXS`

tokens at the current FXS market price.

Additionally, there is a `2`

block delay parameter (adjustable by governance) on withdrawing redeemed collateral to protect against flash loans.