# How it works

Contango protocol synthesises expirable positions by using spot exchanges and borrowing and lending at a fixed rate, i.e. cash flows of expirable positions are replicated through [fixed interest rate markets](https://contango-2.gitbook.io/exchange/resources/glossary#fixed-rate-market). The different steps are realized atomically, i.e. in one transaction each time a trader buys or sells an expirable. If for any reason the transaction fails then no position will be taken neither by the trader nor by the protocol.

## Position opening

Below are presented the steps to open an expirable position.

![Steps to open a position on ETHDAI.](https://11462415-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlYcfaHqcHo4hLwj7Q5M7%2Fuploads%2F58TWPcTIfihhe8bMyJoF%2FScreenshot%202022-06-17%20at%2013.22.04.png?alt=media\&token=8aebb800-9bd2-465a-b41c-cb1d4212452c)

| Short                                                                                                                                                                                                                                                                               | Long                                                                                                                                                                                                                                                                            |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <ol><li>Trader sells a expirable</li><li>Protocol borrows the base currency</li><li>Protocol sells the borrowed amount for an equivalent amount of the quote currency on the spot market to synthesize a short position.</li><li>The amount of the quote currency is lent</li></ol> | <ol><li>Trader buys a expirable</li><li>Protocol borrows the quote currency</li><li>Protocol sells the borrowed amount for an equivalent amount of the base currency on the spot market to synthesize a long position</li><li>The amount of the base currency is lent</li></ol> |

## Position closing

Below are presented the steps to close an expirable position.

![Steps to close a position on ETHDAI.](https://11462415-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlYcfaHqcHo4hLwj7Q5M7%2Fuploads%2F2ziq6yeTsbBvrmwaHCRI%2FScreenshot%202022-06-17%20at%2013.21.28.png?alt=media\&token=a80822e0-9b9d-4050-81d0-1a760651754d)

| Short                                                                                                                                                                                                                                                                                                  | Long                                                                                                                                                                                                                                                                                             |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <ol><li>Trader closes a short position</li><li>Protocol gets the principal and the interest from lending the quote currency</li><li>Protocol swaps the quote currency for the base currency on the spot market</li><li>Protocol gives back the borrowed funds including the accrued interest</li></ol> | <ol><li>Trader closes a long position</li><li>Protocol gets the principal and interest from lending the base currency</li><li>Protocol swaps the base currency for the quote currency on the spot market</li><li>Protocol gives back the borrowed funds including the accrued interest</li></ol> |

{% hint style="info" %}
In order to quote a price to a trader, Contango simulates what would happen in a real execution and enriches the answer with min/max values, also simulating how the position status would look like after execution. To achieve that Contango uses the "preview" functions provided by the underlying protocols.
{% endhint %}
