šŸ”Borrowing and lending

Fixed rate markets

Each time the protocol opens an expirable position for a user, borrowing and lending at a fixed rate occur on other DeFi protocols. At a high level:

  • lending at a fixed rate is equivalent to buying a discounted zero-coupon bond

  • borrowing at a fixed rate is equivalent to selling a discounted zero-coupon bond.

The maturity of the expirable needs to match the maturity of the zero-coupon bonds.

Contango uses different protocols to borrow and lend at a fixed rate. In this section, you would find more information about our integration with:

Flash swaps

Contango uses the concept of flash swaps to make the protocol capital efficient. Let's say a trader wants to buy 1 ETH with 100 DAI. Without using flash swaps the trader would need to first give DAI before receiving ETH. With flash swaps the trader could get 1 ETH first as long as the 100 DAI are given back in the same block. If that's not the case the transaction is reversed. This allows the trader, or a protocol such as Contango, to perform some actions between receiving the 1 ETH, at the start of the transaction, and giving 100 DAI at the end of the transaction.

Position opening

Let's start by taking the example in the position opening section, where a trader buys 1 expirable at 100.59ā€…DAI100.59 \: DAIwith SL=100.10ā€…DAIS_{L}=100.10 \: DAI. The protocol owes a debt D=50.59ā€…DAID=50.59 \: DAI. Let's say the borrowing requires a minimum collaterization ratio (CR) of 140% margin, i.e. the equivalent of 50.59āˆ—140%=70.83ā€…DAI50.59*140\%=70.83 \:DAI. The trader has only posted 50ā€…DAI50 \: DAIas margin, i.e. CRborrow=50/50.59=98.83%CR_{borrow}={50}/{50.59}=98.83 \% , there is clearly not enough money to do the borrowing with over-collaterisation.

Using flash swaps on the spot market, e.g. on Uniswap, the protocol is now able to meet the collaterisation ratio requirement by:

  1. first getting the ETHETH to be lent

  2. lending ETHETH by buying its zero-coupon version zcETHzcETH, worth 0.9929āˆ—99.90=99.19ā€…DAI0.9929 *99.90 = 99.19 \:DAI

  3. using this zero-coupon as margin to borrow the required fund. The collaterisation ratio for borrowing would be CRborrow=99.19/50.59=196.07%CR_{borrow}={99.19}/{50.59}=196.07 \% which is above the required 140%.

  4. Swap the borrowed zcDAIzcDAI for DAIDAI.

  5. use the borrowed DAIDAI plus margin to pay for the initial 0.9929ā€…ETH0.9929 \: ETH.

Position closing

Contango closes a position by reverting the above steps. In the long example in the position closing section, the protocol follows these steps:ā€‹

  1. 0.9924ā€…ETH0.9924 \:ETH is repaid back from lending and swapped for 99.14ā€…DAI99.14 \:DAI.

  2. DAIDAI is exchanged for its zero-coupon bond version, zcDAIzcDAI.

  3. zcDAIzcDAI is then used to reimburse the debt and retrieve zcETHzcETH which is worth 49.41ā€…DAI49.41 \:DAI.

  4. The margin is swapped for ETHETH.

  5. ETHETH is given back to close the flashswap.

Last updated