Skip to main content

Yield Multiplier

Overview

The yield multiplier strategy allows you to supercharge your on lending markets like Weft and Root Finance, allowing you to leverage your deposits, and increase your exposure to the asset, and APY, by (sometimes) over 5x!

Lending markets incentivize providing liquidity to their pools by rewarding those who do with yield. The yield multiplier strategy takes advantage of this by using flash loans, which are deposited into the pool alongside the user’s deposit, this increasing their exposure to the supplied asset. The value of the flash loan is then re-borrowed in another asset— with an interest rate lower than that of the deposit —and then repaid.

Risk

Your position in any given lending market has an attached risk (health) value, which indicates whether your deposit is worth more than your loans. The higher you leverage with the strategy, the more is borrowed in proportion to your supply. This means that even if the difference between the deposit and loan APYs is widely in favor of the deposit asset, you increase your risk of liquidations due to price fluctuations in the supply and debt assets, more so if they are volatile.

For more information see:

How it works

image.png

Opening an account within a Yield Multiplier cluster deposits a CDP (Collateralized Debt Position) from Weft or Root into the cluster. From there, in order to for the frontend to interact with it— e.g. deposit or withdraw assets —the start_execution and end_execution methods can be used, which allow any arbitrary interaction with the CDP, as long as it is returned to the cluster within the same transaction— see transient resources, and the GitHub for more info.

In order to enact the desired changes to the CDP— such as depositing 100XRD at 2x leverage —this general algorithm is used.

  1. Fetch current supply value (ss) and debt value (dd) of the CDP.
  2. Calculate the liquidity, q=sdq=s-d. If d>sd>s, so risk 1≥1, then a different algorithm is applied to put the CDP into a valid state.
  3. Get the product of user input (ii, can be 0\ge 0 or <0< 0) and liquidity,
    q=q+iq’=q+i
  4. Calculate the new supply and debt values from the liquidity and leverage (ll),
    s=qls’=q’*l
    d=q(l1)d’=q’*(l-1)
  5. Calculate the change in supply and change in debt,
    Δs=ss\Delta s=s’-s
    Δd=dd\Delta d=d’-d

From Δs\Delta s and Δd\Delta d, different steps are applied depending on whether

  1. Δs0\Delta s \ge 0 and Δd0\Delta d \le 0
  2. Δs0\Delta s \le 0 and Δd0\Delta d \ge 0
  3. Δs>0\Delta s > 0 and Δd>0\Delta d > 0
  4. Δs<0\Delta s < 0 and Δd<0\Delta d < 0

as flash loans, supplying & borrowing, and withdrawing & repaying, have to be applied in differing configurations depending on the 4 outlined cases.

Configuration

These parameters are used when calculating the maximum leverage of a position.

ProtocolMax. LTVMax. Risk
WeftV20.950.95
Root0.950.95

This is the fee configuration for the deployed clusters.

ProtocolSupplyDebtOpen FeeExecute FeeClose Fee
WeftV2xUSDCxUSDT1644
WeftV2xUSDTxUSDC1644
WeftV2xUSDTXRD1644
WeftV2xUSDCXRD1644
WeftV2xUSDTxwBTC1644
WeftV2XRDxETH1644
WeftV2xUSDTxETH1644
WeftV2xUSDCxETH1644
WeftV2xUSDCxwBTC1644
RootxUSDTxETH1644
RootxUSDTLSULP1644
RootxUSDTXRD1644
RootXRDLSULP1644
RootxUSDCXRD1644
RootxUSDTxwBTC1644
RootxUSDCxETH1644
RootxUSDCLSULP1644
RootxUSDCxwBTC1644
RootxUSDCxwBTC1644

Radix

Yield Multiplier - WeftV2

Package address: package_rdx1phd58kfk9pyn5wny986tzwxsayfgs7dx4spq0shc29zcfj6cxgk3nx

GitHub repository.

Yield Multiplier - Root

Package address: package_rdx1pkds3jnkp40x6yjs2mfzn4l3tkayjsmqf2xjs7qvq9zkwysyynqla5

GitHub repository.