November 4

Contango: 400% APR за лупинг USD.

Основные понятия:

Лупинг (Looping)

Лупинг — это стратегия, при которой пользователь многократно использует свои активы в заимствовании и кредитовании для увеличения доходности.

Flash loan

Флеш-займ — мгновенный займ, который позволяет пользователям занимать большие суммы без необходимости предоставления залога, при условии, что займ будет погашен в рамках одной транзакции. Это часто используется для арбитража или ликвидации позиций. Все операции, включая получение займа, выполнение финансовых операций и погашение займа, должны происходить в одном блоке транзакций.

Ликвидация

Ликвидация — это процесс, при котором активы заемщика продаются или используются для погашения долга, если стоимость залога падает ниже определенного уровня. Это происходит для защиты кредиторов от убытков и поддержания стабильности платформы.

APY (Annual Percentage Yield)

APY — это годовая процентная доходность, которая учитывает сложные проценты. Она показывает, сколько вы можете заработать на своих инвестициях за год, включая реинвестирование процентов.

ROE (Return on Equity)

ROE — это показатель доходности собственного капитала, который показывает, насколько эффективно компания использует свои собственные средства для генерации прибыли. На Contango ROE рассчитан как:
ROE = Депозитный APR - (Кредитный APR * Долговая нагрузка / Изначальный депозит)

Депозитный (Lending) APR

Депозитный APR — это годовая процентная ставка, которую вы получаете на свои депозиты. Это доход, который вы зарабатываете на свои вложения.

Кредитный (Borrow) APR

Кредитный APR — это годовая процентная ставка, которую вы платите за заемные средства. Это стоимость заимствования, которую вы должны учитывать при расчете своих расходов.

Долговая нагрузка (Debt ratio)

Долговая нагрузка — это соотношение между заемными средствами и общими активами. Оно показывает, какую часть активов составляет долг, и помогает оценить финансовую устойчивость заемщика.

Общая информация Contango:

Contango — это протокол автоматического лупинга, позволяющий открывать позицию в одну транзакцию благодаря использованию Flash Loan.

Протокол существует 1.5 года и уже представлен на 8 EVM сетях (Base, Arbitrum, Optimism, Ethereum, Polygon, Avalanche, Linea, Gnosis). Contango работает с такими токенами как ETH, стейблкоины, POL, AWAХ, также недавно добавились пулы с BTC. TVL (Общее количество заблокированной ликвидности) ~$40,78m.

Аудиты от Open Zeppelin и Offbeat Security.

Преимущества Contango:

Contango позволяет получать повышенный APR на лупинг различных активов, в том числе за счет дополнительных наград от партнерских программ. Так, во время недавнего сезона раздачи токенов ARB, пара wstETH/ETH приносила общую доходность в ~23% APR (8% APR за стейкинг и лендинг, плюс ~15% APR в токенах ARB).

Кроме того, важно отметить удобство использования протокола: пользователям больше не нужно выполнять по 10 и более кругов депозита, займа и свапа, чтобы открыть позицию лупинга. Все, что необходимо — это внести депозит.

Механизм работы:

  • Депозит wstETH: вы начинаете с добавления wstETH на депозит.
  • Флеш-лоан: Contango берет флеш-лоан в ETH
  • Покупка wstETH: далее он обменивает ETH на wstETH.
  • Депозит wstETH в качестве залога: wstETH добавляется на лендинговый протокол, например Aave, в качестве залога.
  • Займ ETH для погашения: берется ETH в долг под залог wstETH, чтобы погасить флеш-лоан.

Основная идея лупинга заключается в том, чтобы получить прибыль от разницы между вознаграждениями за стейкинг wstETH и затратами на заимствование ETH — по сути, это арбитраж кредитного рынка (лендинга).

Как Contango находит подходящие для лупинга позиции?

Во первых, давайте определимся, какие токены используются для открытия позиций:

  • Стейблкойны — USDC, USDT, DAI и тд.
  • LRT и LST — stETH, wstETH, weETH и др.

Для того, чтобы найти возможность лупинга для стейблов, чаще всего нужно просто сравнить курсы на lending и borrow APR. Если lending APR выше — стратегия получается прибыльной.

Когда мы говорим про LST и LRT, ситуация становится немного сложнее. Contango должен дополнительно получить базовый APR от стейкинга/рестейкинга, затем прибавить к нему lending APR и только после этого сравнить с borrow APR. Если borrow APR ниже, то можно делать лупинг.

ВАЖНО! Получение данных об LST/LRT происходит через протокол стейкинга/рестейкинга (а не с рынка!).

Главная проблема заключается в том, что APR в DeFi динамический. Большинство LST и LRT показывают среднее значение за 7 дней.

Пример:

Если ставки на wstETH за последние 7 дней составляют:

2,7%; 2,9%; 2.8%; 2,7%; 2,9%; 2,6%; 2,75%
Тогда средний показатель LST получится 2,76% APY. При ставке Borrow 2,76% APY и Lending 0,1% APY Contango сообщает, что есть возможность для лупинга.
Но когда вы вошли в позицию, реальный APY wstETH может оказаться 2,6%. Таким образом, ставка Borrow APY получается выше суммы Lending + Staking APY, стало быть вы берете плечо на минусовую позицию.

Позиции на Contango перестают быть прибыльными на следующий день, а иногда и через час. Поэтому всегда наблюдайте за позицией некоторое время перед тем, как войти в нее. Тоже самое относится и к дополнительным наградам.

Открытие позиции в Contango.

Открытие позиции лупинга всегда связано с обменом токенов, и комиссия за этот обмен вычитается из вашего депозита. Используется Odos c проскальзыванием по умолчанию 0.3%.

Также важно помнить, что любое действие на Contango, требующее свапа, подвержено MEV атакам.

Пользователи, часто думают, что у них «забрали» часть депозита или указали не верный APR, хотя на самом деле они просто стали жертвой «сэндвич-атаки». Поэтому, если вы торгуете на сети Ethereum, используйте RPC с защитой от MEV. Например, в кошельке Rabby используются RPC с защитой от MEV на сети Ethereum.

Отдельно хочу обсудить варианты приобретения и продажи токенов LST и LRT для выхода из позиции. Давайте подробно рассмотрим, как это можно сделать.

Покупка:

  1. Минт. Мгновенно по лучшему курсу, но только на сети L1 (Ethereum).
  2. Покупка со спота (на рынке). Можно купить на L1 (Ethereum) и L2 (Base, Arbitrum и тд), но курс будет хуже, чем при минте.

Продажа:

  1. Redeem. Можно сделать только на сети L1 с периодом ожидание 7 дней.
  2. Продажа на споте. Продаем моментально, но курс будет отличаться от значений Lido, причем курс L2 будет отличаться сильнее, чем L1.

Таким образом, чтобы избежать периода ожидания, Contango будет выбирать вариант обмена через свап L1 или L2 в зависимости от выбранной вами сети. Тем самым создавая дополнительную неэффективность в виде отличия прочитанного APY и реального APY LST/LRT.

Пример влияния неэффективности при расчете APY позиции:

Сеть: Base (an L2 network)
Период: 19 days
Плечо: 7x
Депозит: 5.499 ETH
Цена Lido (on L1): 
Открытие: 1.17738458 ETH per wstETH  -> Текущая: 1.17919919 ETH per wstETH
Цена wstETH/ETH L2: 
Открытие: 1.177351 ETH per wstETH -> Текущая: 1.176695 ETH per wstETH
Заявленный Lido APYs: 
При открытие: 2.7983% -> Текущая: 2.9938%
Aave APY:
Кредит: 2.7255%; Депозит: 0.0924%

Cчитаем реальную доходность:

Lido APY за 19 дней: (1 - 1.17738458 ÷ 1.17919919) × 100 ≈ 0.1541%
Lido APY: 0.1541% ÷ 19 days × 365 days ≈ 3%.
L2 Spot APY за 19 дней:  (1 - 1.177351 ÷ 1.176695) × 100 ≈ -0.0557%
L2 Spot APY: (1–0.000557) ^ 19.21–1 ≈ -1.06%

Мы видим, что цена wstETH на споте не всегда растет, а также подвержена временным просадкам.

Итоговая доходности с учетом плеча:

Debt Ratio = 1 — (1 ÷ 7) = 1–0.1429 = 0.8571
Lending APR = -1.06% + 0.0924% = -0.9676%
Leveraged borrow APR = 2.7255% × 0.8571 ≈ 2.3353%
Итоговый APY = -0.9676% — 2.3353% = -3.3029%

При этом Сontango будет показывать вам положительный APR на плашке с возможностями.

Ликвидации на Contango.

Прежде чем перейти к теме ликвидации, я хочу немного поговорить об оракулах, ведь именно они определяют, когда позиция будет ликвидирована.

Если говорить простыми словами, оракул — это сводка цен разных активов в определенный момент времени. Оракул передает информацию о ценах активов на лендинг-протоколы и, исходя из этих данных, происходит расчет HF и других параметров.

Оракулы бывают двух видов: рыночные (Market Rate) и обменные (Exchange Rate). Обменные оракулы имеют еще два популярных названия: NAV Oracle и Fundamental Oracle.

Рыночный оракул использует индекс цен из различных источников, обычно комбинируя данные с децентрализованных (DEX) и централизованных (CEX) бирж.

Обменный оракул, вместо индекса цен, опирается на базовую стоимость актива, которая определяется через залог (коллатерал).

Пример:

Рыночный оракул для ETH использует двадцать один источник данных (CEX и DEX), чтобы создать единый индекс цены, к которому потом смогут обращаться протоколы.

Очень важно понимать, что рыночные оракулы чувствительны к любым изменениям цены. Если, например, wstETH отклонится на 5% из-за того, что пользователи начали панически его продавать во время очередного «черного лебедя», то вашу позицию wstETH/ETH Contango с плечом под 10x точно ликвидируют.

В то же время, при использовании обменного оракула ликвидации бы не произошло. Обменные оракулы чаще всего ассоциируются с LST и LRT, потому что оба этих дериватива полностью обеспечены застейканными или рестейканными формами ETH.

Вот пример обменного оракула Сhainlink для wstETH/stETH, который использует обеспечение stETH в ETH для определения стоимости wstETH.

Обратите внимание, что это не индекс цен и график никогда не падает. Поскольку эти оракулы используют обеспечение, а не рыночный курс, то отклонения, вызванные продажами, НЕ могут привести к ликвидациям.

Как определить какой оракул использует тот или иной лендинговый протокол?

Самый простой и надежный способ — спросить у команды в Discord (тут надо полагаться на компетентность отвечающего). Также вы можете попробовать найти эту информацию прямо на странице лендингового протокола, в худшем случае вам придется обратиться к смарт-контракту.

Например, в протоколе Morpho тип оракула указан на странице с активами.

Morpho лендинг маркет sUSDe-DAI.

Но это не означает, что каждый оракул Morpho является обменным. Вот еще одна страница с sUSDe, где заимствуется USDT, и мы видим оракул Redstone, а не «Exchange Rate».

Mopho лендинг маркет sUSDe-USDT.

Его уже нужно проверять через смарт-контракт -> read contract -> description и там чаще всего написан его тип.

К сожалению, не всегда можно быстро найти:

  • Смарт-контракт оракула для конкретного пула.
  • Тип оракула в описании смарт-контракта.

Поэтому, если после всех усилий вы все еще не уверены, какой оракул используется в вашей позиции, вернитесь к пункту 1 и напишите команде в Discord.

Заключение

Также важно учитывать, что даже если ваша позиция открыта с помощью обменного оракула, она все равно может быть ликвидирована из-за изменения ставок на займ и обеспечение.

APY в лендинговых протоколах начисляется сразу на основную сумму, соответственно, ваш депозит и долг автоматически увеличиваются. При открытом 10x плече в случае резкого роста Borrow APR позиция может быть ликвидирована в течение нескольких дней.

Если вдруг нашли ошибки в расчетах или ссылках, пишите в личку, все поправим.

Канал | Чат | YouTube | Обучение