FAQ

For PTs-related FAQs see this subsection.

For points-related FAQs see this subsection.


What is Contango?

Contango is the ultimate looping layer in DeFi. It lets you loop anything on-chain. You can create leverage (re)staking positions, arb rates differentials, farm points, or simply go long or short like a perp at low funding.

Do I need to deposit before trading?

No. Normally, when you lever up on money markets you need to borrow, swap, lend all in one transaction, and for that you need a smart account (like on Defi Saver or Instadapp). Contango hides this abstraction under the hood since its interface is mainly geared towards trading. This is great for users, as they don’t need to go through additional clicks to create and fund a smart account. On Contango you connect your wallet and can start trading right away. No need to deposit anything!

What pairs can be listed on Contango?

The available pairs offered on Contango are determined by the number of assets available on the underlying money market. Exceptions can arise when the assets used for a specific pair are available in isolation mode and/or can't be used as collateral on the underlying money market. Contango plans to integrate different variable money markets across multiple chains to expand its pair offering as much as possible.

How is the implied funding rate (APY) computed?

The variable funding rate is determined by the difference between the cashflow on the lending and borrowing legs of a position, which you normally see referenced as borrow APY and supply APY on the money market. That’s why it’s also called APY on Contango. Read more about funding rates.

What is the difference between ROE and APY?

Both ROE and APY are useful indicators to estimate your profits and costs on a given position. You can always toggle between them in the app (when opening a position, in the Advance Trade Selection tool and in the Open Positions list). At a high level:

  • APY (annual percentage yield) is determined by the interest rate difference in notional terms (calculated as a percentage of the notional value of the position)

  • ROE (return on equity) is the same concept but computed on your initial equity (margin).

The APY is determined by the difference between the lending profits and the borrowing cost of a position, which you normally see referenced as borrow APY and supply APY on money markets. That’s why it’s also called APY on the Contango UI. The APY is thus the implied funding rate of your position, but its sign is inverted compared to funding rates on other perp venues. It's a useful metric to monitor when trading non-correlated pairs (e.g. ETH/USDC). Please note that the APY varies with leverage: the higher the leverage, the worst the APY (as more money has to be borrowed). On a side note, Contango has the cheapest and most stable funding in the space (source).

On the other hand, ROE is computed on your initial margin and thus offers an insight into the estimated returns you can have on your initial capital. It becomes a useful metric to monitor when doing correlated asset loops (e.g. wstETH/ETH or USDC.e/USDC), as you're not betting on the underlying asset increasing in value, you're just "farming" an interest rate spread. Similarly to the APY, the ROE varies with leverage.

Why are funding rates cheaper and less volatile than competitors?

By design the funding rate on Contango comes from the borrowing and lending rates of the underlying money markets, which tend to be cheaper and less volatile than standard funding rates on other perp trading venues. Contango’s rates are on average 3x less volatile and cheaper than market leaders like Binance and dYdX. More details can be found on this article.

Why is it cheaper to use Contango instead of other looping products?

Contango has some of the lowest trading fees on both non-correlated and correlated loops. It also uses free flash loans most of the time when building positions. And, cherry on top, it uses Balmy (ex Mean Finance)'s DSK when performing swaps to build a position so you always get the best price across DeFi.

What is considered a safe value for leverage?

Selecting a value for leverage is ultimately a personal choice, which relies on your risk tolerance. Correlated pairs like wstETH/ETH or DAI/USDC have less price risk than non-correlated pairs like ETH/USDC, but depeg events can always occur, so never open at max leverage unless you have a clear understanding of the implied risks. Contango provides a liquidation buffer indicator to help you gauge by how much price should drop for your position to get liquidated.

How’s the mark price computed?

Price shown in the opening ticket or in the 'Open Positions' list is the oracle price that the underlying money market uses to value that pair. Therefore this is the most accurate measure of how to compute healthiness and liquidation price of a position. This price is what is used for liquidations, which are indeed performed by the underlying money markets.

Why is the mark price different from the price shown in the charts?

In order to plot charts Contango picks the chain where Chainlink has both the lowest heartbeat and the lowest deviation, so as to make the chart as responsive as possible. This means that the chart is indicative and it’s not specific to the money market you’ve selected. Prices on charts should be seen as mid-market prices, for reference purposes.

Why is the mark price different from the entry price?

Mark price is an oracle price, while the entry price is a firm quote of a market price. There are two scenarios (let's assume you're going long):

  1. The entry price is lower than the mark price: in this case, this is better for you as you got a cheaper price.

  2. The entry price is higher than the mark price: in these rare instances, what could happen is that, if you open at max leverage, the transaction may fail, as the amount you’re actually getting will probably not be enough to collateralise the debt of your position. This is because no money market would let you open a position that is already violating the max LTV rule.

How’s the market impact on the rates computed?

With every trade the prevailing interest rates change due to the lending and borrowing activity that happens as a result. The market impact on rates is computed by looking at your trade size and checking by how much it moves the rates on the underlying market. To our knowledge, this metric is not even shown on the underlying money markets, but it’s particularly useful especially if you’re trading with size and you don’t want to move the rates against your trade.

Why is leverage sometimes lower compared to competitors’ products?

Contango adds around an extra 2.5% liquidation buffer on markets that don't differentiate between max loan-to-value (LTV) and liquidation threshold. This is meant to spare users from nasty surprises. This is also why the max leverage on some markets (e.g. on MorphoBlue) can be lower in Contango than on competitors’ products. For instance, instead of 13.8x on Contango, you could lever up to 18x on stETH/ETH on other competitors’ products, but you’ll be right on the edge of liquidation. Said buffer can be smaller on some specific instruments, like sUSDe and USDe, where it's 0.25%.

What is the dust button on the UI?

When you close a position and chose to get the money in the base currency (quote currency for shorts), due to the fact that Contango needs to sell base to pay the debt - but can't know exactly how much it needs to be sold - it sells a bit more, and the remainder goes to the user's account in the vault, in the form of dust. This can be claimed by the trader anytime by clicking the dust button at the top.

Is there a liquidation penalty?

Money market might have different liquidation penalties. The liquidation penalty is a fee paid on the price of assets of the collateral when liquidators purchase it as part of the liquidation process. You can find more information on the liquidation process of each money market in their respective docs. As a reminder, Contango doesn't perform liquidations.

Are trades MEV-protected?

No. Any action on Contango that requires a spot trade is susceptible of MEV attacks. If you're trading on mainnet it is highly recommended to use a MEV protected RPC. Rabby wallet has a built-in RPC protection feature, which you need to enable manually before placing a trade.

Should I use permit, permit2 or approval?

Permits are used by default on Contango for most tokens, but you can still select your favourite choice among Permit, Permit2, Approval: after clicking the ‘Review trade’ button, select your preferred option by clicking the dropdown arrow in the ‘Approve’ button. Read the Permits and approvals section for more details. Broadly speaking:

  • Permits are your best and safest option. Using permits allows for a smoother user experience as you don’t have to pay gas for the approval transaction and you don’t expose yourself to the risk of infinite allowances. But remember: the cost of setting an allowance will still be batched into the real transaction that you sign when opening a position.

  • Permit2 is the second best option. Contango automatically defaults to permit2 for tokens that don't support permits. This option offers the benefit of infinite allowance, just like approvals, but via an immutable and verified contract from Uniswap, with all the benefits of permits.

  • Approvals are the least safe option. You can benefit from having an infinite allowance and avoid further approvals later on, but at the same time you expose yourself to the risk of potential Contango exploits that could use this allowance and drain funds from your wallet. If you decide to use approvals, in order to mitigate risks: don’t input an infinite allowance and use revoke.cash to revoke unwanted approvals.

How often is the information displayed on the open ticket updated?

Lending and borrowing rates shown in the trade ticket when opening a position are automatically updated once every 60 seconds. For the bearing rates, like wstETH, all data is usually updated every 24 hours, except for Pendle's PT assets and Ethena's assets, which are updated every 60 minutes.

Why is the bearing rate shown for sUSDe different from Ethena's page?

Contango computes sUSDe yield by measuring the price change over the last 300 blocks and extrapolating this to get an annualised rate. We believe this reflects a more realistic staking rate; so please bear in mind that this differs from Ethena's official page, as their rate is computed as the annualised hourly rate differential and gets diluted by new users minting sUSDe.

What's the difference between an exchange rate oracle and a market rate oracle?

An oracle price uses a decentralised price feed to value an asset.

It is worth noticing that there are 2 types of oracle feeds that could be used by money markets:

a) exchange rate feed: reports the rate at which you can exchange, for instance, wstETH/stETH on the mainnet wstETH contract, so it's not affected by market forces trading on venues like Balancer, Uniswap, etc.

b) market rate feed: reports at the current price at which, for instance, wstETH could be traded on the spot markets, regardless of the chain.

It's up to each money market to do the risk analysis on which feed they want to use. For instance, for wstETH/ETH, Aave and Spark use the exchange rate feed, while Exactly use the market rate feed. An excellent thread by Stephen from Defi Dojo recaps the differences and the risks of the two types.

The source of truth for what the Lido exchange rate is lives on Ethereum mainnet, because the real wstETH smart contract is on Ethereum mainnet. That's indeed where deposits and redemptions happen. If you want to use the exchange rate to value wstETH on other chains (Base, OP mainnet, Arbitrum, etc.), you need a trusted source of what the actual exchange rate is since you can't call the Lido contract directly, because it doesn't exist on these L2s. That's where Chainlink comes in: they've created wstETH/stETH feeds and deployed them on the L2s. They call them exchange-rate oracles because they're not tracking secondary market trades, but just reporting what the exchange rate of wstETH-stETH is on Ethereum mainnet. On mainnet, you have the option of trading the wstETH/ETH loop on Morpho (labeled with 94.5% E) which just tracks the exchange rate directly, with no deviation (that's because it's on mainnet, where you can get the exchange rate directly form the ultimate source of truth, the Lido contract). Aave also uses same exchange rate Chainlink oracles on L2s.

Why am I at a loss even if the ROE is always positive?

  1. When you open, close or modify a position, a swap needs to happen. This normally occurs for the full size of your position, not just your margin. Which means that, with leverage, even a small difference in your entry price gets amplified (e.g. a 0.1% difference at 10x leverage moves your ROE by 1%). Basically, when entering a position you will always have a negative PnL because you’ll be crossing the spread and incur fees (swap fees + flash loan fees which are free 99% of the times + Contango fees which are 0 atm).

  2. Market impact also plays a role: for instance, long-tail assets or some L2s markets might have thinner liquidity. Illiquid markets will give you a bigger market impact, which can bring your PnL down.

  3. Sometimes the spot price sourced from dexes can be far off from its oracle price. Contango always sources the best price available, and it even tells you when it’s too far off from the oracle price, but finally you are the one who should decide if you’re ok with it or not. (edited)

  4. PnL can be displayed using an oracle price (used by lending markets to value your debt and liquidate) or a market price from a dex source (used by Contango when closing or modifying your trade). Ideally, Contango would always show the market price because it is way more accurate, but it’s too computing-intensive. This is why the default is the oracle price, which can indeed be off sometimes, but hey, just toggle the market one.

  5. Any action on Contango that requires a swap is susceptible to MEV attacks. Users that don’t know this tend to think they’ve been robbed of some PnL, while in reality they just got sandwiched. So, if you're trading on mainnet we highly recommend using a MEV-protected RPC. Rabby wallet has a built-in RPC protection feature, which you need to enable manually before placing every trade.

  6. Rates, not just price, can suffer from market impact. When you are trading with size, you can easily move the rates on the underlying lending market. Thankfully, Contango shows you the market impact on rates on the trade ticket, to prevent you from entering a bad trade and diluting the yields of other users. What happens sometimes is that users ape into a given trade because they see a nice ROE, but don’t check the market impact, and then they realize they’ve flipped the rates and complain about a decrease in returns. Contango’s interface has been built with lots of community inputs, from traders and farmers alike. Plenty of metrics are currently displayed on the UI, some of which have probably never been shown before in defi (like the 𝘮𝘢𝘳𝘬𝘦𝘵 𝘪𝘮𝘱𝘢𝘤𝘵 𝘰𝘯 𝘳𝘢𝘵𝘦𝘴). We do our best to help traders understand all the variables that underpin their trades. If you still have questions about the above, please reach out on Discord. We’re always happy to mansplain things.

How can I move my position to a different wallet?

All positions are tokenized as an NFT held in your wallet. You can transfer this NFT to a different address with a couple of clicks: using the Rabby wallet just head to your transaction history and click on the NFT of your position (called "CTGP" as in Contango Position) and then "send". Enter the new address and then "send" again. Once the transaction goes through, if you connect with the new address you'll see the position under your position list. Please note, however, that the transaction history of the position is not imported to the new address. If you don't use Rabby, a more cumbersome altearnative is to call the safeTransferFrom method on the NFT contract.

Last updated