Rehypothecation

As was described for Dynamic Lenders, we take a portion of the LP deposit reserve and supply this to a floating rate market. This reserve amount is dynamically managed based on a set of preset parameters from the DAO.

Reserve Allocation Model

We define a parameter a reserve ratio ϕ\phi representing the ratio of liquid (unrehypothecated) FW-USDC reserves to the total FW-USDC supply in the pool:

ϕ=USDCreserveFW-USDCpool\phi = \frac{USDC_{\text{reserve}}}{\text{FW-USDC}_{\text{pool}}}

We also define a target reserve ratio ϕtarget\phi_{\text{target}}, along with lower and upper tolerance bounds ϕmin\phi_{\min} and ϕmax\phi_{\max}, respectively. This reserve ratio is calculated with every market action. If the calculated reserve ratio ϕ\phi falls outside the acceptable range [ϕmin,ϕmax][\phi_{min},\phi_{max}], the system rebalances the reserves to restore ϕ\phi to the target value:

if ϕ[ϕmin,ϕmax],ϕϕtarget\text{if } \phi \notin [\phi_{\min}, \phi_{\max}], \quad \phi \leftarrow \phi_{\text{target}}

For example, if ϕ\phi drops below ϕmin\phi_{\min}, additional FW-USDC from the liquid reserve is allocated to the variable-rate vault, effectively increasing rehypothecation. Conversely, if ϕ\phi exceeds d ϕmax\phi_{\max}, FW-USDC is withdrawn from the vault to increase liquid reserves.


Example Flows

Let's assume a market has 1000 FW-USDC and of this amount, 200 currently have their corresponding USDC reserve allocated to a variable rate market. Therefore, 800 remain in reserve, making ϕ=8001000=0.8\phi = \frac{800}{1000}=0.8.

  • ϕtarget=0.75\phi_{target} = 0.75

  • ϕmin=0.65\phi_{min} = 0.65

  • ϕmax=0.85\phi_{max} = 0.85

Case 1 - Withdrawal

Let's assume a borrow trade comes through the market (swap BT for FW) and a user borrows 500 FW-USDC, making the remaining reserve 500 FW-USDC. Upon recomputing our reserve ratio, we now have ϕ=300500=0.6ϕ<ϕmin\phi = \frac{300}{500}=0.6 \rightarrow\phi<\phi_{min} which triggers a reserve rebalance.

To do this, the smart contract rebalanaces the reserves by withdrawing 75 USDC from the variable rate market to bring the reserve ratio to the target rate ϕnew=375500=0.75=ϕtarget\phi_{new}=\frac{375}{500}=0.75=\phi_{target}.

Case 2 - Deposit

In this case, let's assume a lending trade comes through the market (swap FW for BT) and a user lends 400 FW-USDC, making the new reserve 1200 FW-USDC. Upon recomputing our reserve ratio, we now have ϕ=120014000.857ϕ>ϕmax\phi = \frac{1200}{1400}\approx0.857 \rightarrow\phi>\phi_{max} which triggers a reserve rebalance.

To do this, the smart contract rebalanaces the reserves by deposting 150 USDC of the unrehypothecated reserves to the variable rate market to bring the reserve ratio to the target rate ϕnew=10501400=0.75=ϕtarget\phi_{new}=\frac{1050}{1400}=0.75=\phi_{target}.

Last updated