contango
Search
K
🔁

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.59DAI100.59 \: DAI
with
SL=100.10DAIS_{L}=100.10 \: DAI
. The protocol owes a debt
D=50.59DAID=50.59 \: DAI
. Let's say the borrowing requires a minimum collaterization ratio (CR) of 140% margin, i.e. the equivalent of
50.59140%=70.83DAI50.59*140\%=70.83 \:DAI
. The trader has only posted
50DAI50 \: DAI
as 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. 1.
    first getting the
    ETHETH
    to be lent
  2. 2.
    lending
    ETHETH
    by buying its zero-coupon version
    zcETHzcETH
    , worth
    0.992999.90=99.19DAI0.9929 *99.90 = 99.19 \:DAI
  3. 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. 4.
    Swap the borrowed
    zcDAIzcDAI
    for
    DAIDAI
    .
  5. 5.
    use the borrowed
    DAIDAI
    plus margin to pay for the initial
    0.9929ETH0.9929 \: ETH
    .
Flashswap steps to open a long position

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. 1.
    0.9924ETH0.9924 \:ETH
    is repaid back from lending and swapped for
    99.14DAI99.14 \:DAI
    .
  2. 2.
    DAIDAI
    is exchanged for its zero-coupon bond version,
    zcDAIzcDAI
    .
  3. 3.
    zcDAIzcDAI
    is then used to reimburse the debt and retrieve
    zcETHzcETH
    which is worth
    49.41DAI49.41 \:DAI
    .
  4. 4.
    The margin is swapped for
    ETHETH
    .
  5. 5.
    ETHETH
    is given back to close the flashswap.
Flashswap steps to close a long position