фарминг тудей
77 subscribers
19 photos
22 links
Блог о DeFi с фокусом на фарминге ликвидности на DEX
Download Telegram
Channel name was changed to «фарминг тудей»
Принципы работы AMM DEX на примере Uniswap V2 (#матчасть / содержание)

Автоматизированный маркетмейкер (automated market maker, AMM) на децентрализованной бирже (DEX), с технической точки зрения просто связывает поставщиков ликвидности и трейдеров, гарантируя исполнения правил протокола.

В AMM DEX вы взаимодействуете с пулом ликвидности (liquidity pool, LP). Пул ликвидности — это "резервуар" из различных криптовалют, который создан пользователями. Например, один из популярных пулов может содержать 50% ETH и 50% USDC, добавленных поставщиками ликвидности.

Когда вы хотите обменять свои ETH на USDC, вы просто обращаетесь к этому пулу. Цена обмена определяется алгоритмом, который учитывает текущее соотношение ETH и USDC в пуле. Чем больше ETH вы хотите обменять, тем выше будет цена, так как вы изменяете баланс пула. Это изменение цены в зависимости от суммы называется price impact.

В простейшем случае, AMM использует формулу постоянного произведения для определения цены обмена. Наиболее наглядная "классическая" формула, использованная в Uniswap V2 выглядит следующим образом:

x * y = k

Где:

- x — количество одной криптовалюты в пуле (например, ETH)
- y — количество другой криптовалюты в пуле (например, USDC)
- k — постоянное произведение, которое остается неизменным
Один swap на примере (#матчасть / содержание)

К примеру, в пуле 10000 USDC и 10 ETH (т.е. 1 ETH = 1000 USDC), а комиссия за обмен - 1%.

Тогда если кто-то поменяет 5000 USDC на ETH, то цена будет рассчитана с учётом константы k:

k = x * y = 10_000 * 10 = 100_000

так как k - неизменное число, мы получаем такую формулу для e (выплачиваемой суммы в ETH):

k = (x + 5_000) * (y - e * (100 + 1) / 100)

100_000 = (x + 5_000) * (y - e * 101 / 100)

постараемся "вытащить" e:

(y - e * 101 / 100) = 100_000 / (x + 5_000)

- e * 101 / 100 = 100_000 / (10_000 + 5_000) - 10

e = (100/15 - 10) / 1.01 ~= -3.3... ETH

Как видим, price impact оказался довольно большим: почти 1.7 ETH из 5 было потеряно. Что не удивительно, ведь объём нашей сделки - половина всей ликвидности USDC.
Цена токена в пуле (#матчасть / содержание)

Теперь выведем формулу цены токена в паре в зависимости от их количества.

Пусть x - количество токенов A и y - количество токенов B. Как я писал ранее, их произведение должно подчиняться формуле:

x * y = k, где k = константа, которая меняется только когда добавляется новая ликвидность

Цена одного токена относительно другого высчитывается так:

price(A) = y/x

Если поделить обе части уравнения x * y = k на x², получим:

price(A) = y / x = k / x²

и, очевидно,

price(B) = x / y = k / y²
👍1
Предоставление ликвидности: риски и профит (часть 1) (#матчасть / содержание)

Риски impermanent loss могут перевешивать комиссии и бусты: рассмотрим на примере.

- Пусть в пуле x=100 токена A и y=100 токена B, получается k=10_000
- Все токены, для простоты картины, предоставлены одним поставщиком ликвидности (нами)
- Пусть токены равны в цене в момент предоставления ликвидности, и эта цена равна $1.

Ситуация: Падение цены одного токена в паре

Пусть токен B падает в два раза. Рассчитаем количество токенов в пуле.

Мы уже вывели, что price(B) = k / y²

Обозначим изначальное количество токенов B как y₁, а после падения цены в два раза - как y₂.

Price(B до падения) * 0.5 = Price(B после падения), что можно записать как:

k / y₁² * 0.5 = k / (y₂²)

откуда y₂ = y₁ * √2 = 100 * √2 ≈ 141.4

Тогда x₂ = k / y₂ = 10_000 / (100 * √2) ≈ 70.7

Если предположить, что ценность первого токена не изменилась, то суммарная ценность токенов теперь будет такова:

70.7 * $1 + 141.4 * $0.5 = $141.4

В то время, как если бы мы просто купили оба токена и держали, пока второй падает, мы бы получили:

100 * $1 + 100 * $0.5 = $150

То есть просто держать оба токена в равной пропорции было бы выгоднее на ≈6%: что не удивительно, ведь когда мы предоставляем обмен, более дешёвого токена становится больше, а более дорогого - меньше.

В случае падения цены одного токена до около-нуля, практически вся ликвидность будет переведена в него, и вы потеряете почти всё. Посчитайте сами.
Предоставление ликвидности: риски и профит (часть 2) (#матчасть / содержание)

Ситуация: изменение цены обоих токенов в паре (high price correlation)

Допустим, оба токена падают в цене одинаково. Тогда их пропорция остаётся неизменной, и impermanent loss будет таким же, как если бы вы просто держали оба токена. То же самое происходит и с прибылью при равном росте цены токенов.

Ситуация: рост цены одного из токенов

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

Итог

- Выгоднее всего для поставщика ликвидности, когда цена токенов друг относительно друга не двигается.
- Приемлем вариант, когда она колеблется в рамках какого-то диапазона (но в таком случае выход из пула "не вовремя" повлечёт реализацию impermanent loss)
- И хуже всего, когда цена одного из токенов падает надолго (на больший период, чем вы готовы ждать)
И да, кажется, надо было раньше включить комментарии👇
👍2
Маркет-мейкинг он-чейн (#матчасть / содержание)

Тема, которую стоит проговорить отдельно, связана с таким вопросом: каким же образом "автоматический маркет мейкер" позволяет удерживать цену в актуальных границах, если это просто смарт-контракт, который сам ничего не делает, а только гарантирует корректность действий пользователей?

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

А в DeFi всё это отдано на откуп арбитражников: множество AMM DEX предоставляют каждый свою цену, и как только возникает разница, тот, кто первый сумеет ей воспользоваться, забирает профит. Ручному арбитражу практически нет места в DeFi - благодаря универсальности интерфейсов, даже маленькие DEX и пулы постоянно мониторятся ботами, которые мгновенно пользуются любой возможностью выровнять цену.
Проскальзывание (slippage). Buy/sell tax (#матчасть / содержание)

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

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

Если максимальное допустимое проскальзывание меньше реального, то транзакция завершается ошибкой и обмен не происходит.

Тут важно упомянуть, что многие токены вводят механизм "налога" (tax) на покупку и продажу токена, и этот налог включается в slippage. То есть если налог не нулевой, то обычно нужно увеличивать дефолтный slippage на процент налога, иначе транзакция точно не пройдёт. Процент налога, увы, придётся смотреть на сайте токена.
У нас тут образовался стартап на TON, после того, как я заглянул на хакатон The Open League. Будем делать прайс алерты и портфолио трекер, но слегка не так, как обычно делают (ведь и аудитория TON достаточно необычная для DeFi).

Подписывайтесь пока здесь.
Сэндвич-трейдинг. MEV (#матчасть / содержание)

Обмен больших сумм в одной транзакции значительно изменяет распределение токенов в пуле, чем могут воспользоваться боты для обогащения. Как заработать на изменении цены?

1. Приобрести большое количество токена непосредственно перед тем, как кто-то его купит
2. Дождаться чьей-то покупки
3. Продать сразу же после, по цене, увеличенной в результате пользовательского обмена

Такая последовательность действий называется sandwich trading.

Но как убедиться, что транзакции попадут в чейн ровно в нужном порядке? Можно узнать информацию о поступившей транзакции до того, как она была подтверждена сетью, и постараться вставить свою транзакцию перед ней. Это несложно сделать, если вы - валидатор сети, который ответственен за создание новых блоков и можете сам устанавливать порядок транзакций и вставлять туда свои, но в целом, это может сделать кто угодно (позже расскажу, как).

Эта и подобные атаки обозначаются термином MEV extraction - от "Maximal Extractable Value", или просто "MEV attacks".
2🔥2👍1
Газ. Рынок газа. (#матчасть / содержание)

Газ (Gas) в Ethereum - это единица измерения вычислительных ресурсов, необходимых для исполнения смарт-контрактов.

Каждая транзакция содержит два параметра: лимит газа (максимальное количество "вычислительных ресурсов", которое пользователь готов оплатить) и стоимость газа.

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

Однако, в некоторых случаях, выставление более высокой цены газа недостаточно для победы: например, когда несколько арбитражных ботов "соревнуются" между собой. В этом случае им придётся значительно переплачивать за право включить транзакцию первым - и они могут продолжать "увеличивать ставку" до тех пор, пока их действие будет оставаться экономически выгодным с учётом высокой цены.
1
Приходите к нам в стартап, будет весело 👇
1
Forwarded from @ton_2x_bot - анонсы
У нас произошли изменения в команде, и теперь мы ищем нового продакт менеджера.

От вас: желателен опыт создания массовых B2C продуктов, понимание принципов продвижения, умение создавать контент.
Мы предлагаем: парт-тайм с почасовой оплатой и/или долей в проекте, хорошо проведённое время.

Если вы думаете, что это могли бы быть вы - пишите @klntsky
1
Не было времени писать, пилил очередной микростартап: token.menu

Идея очень простая: берём API coingecko и перегруппировываем монеты/сети в табличку, как на скрине: в каждой клетке уже у нас будет одна монета в какой-то сети.

Туда можно вставить кнопку для простого действия:

- добавить коин в метамаск (по одиночке или сначала выставить чекбоксы, а потом обработать все сразу)
- скопировать contract address
- свапнуть на DEX (по прямой ссылке)

Фичей можно сделать и придумать сильно больше, чем сейчас есть, подписывайтесь пока что на твиттер или на телегу
🔥3
фарминг тудей
Не было времени писать, пилил очередной микростартап: token.menu Идея очень простая: берём API coingecko и перегруппировываем монеты/сети в табличку, как на скрине: в каждой клетке уже у нас будет одна монета в какой-то сети. Туда можно вставить кнопку для…
token.menu нужно радикально переделать, потому что он не взлетел: юзеры не видят смысла.

Появилась идея взять один единственный UI элемент - поисковое поле с cmc и coingecko, и сделать его аналог на сайте - и больше ничего.

Можно сделать очень хорошо, чтобы пользоваться им было лучше, чем оригиналом:

- минимизировать время загрузки страницы и время отклика
- добавить возможность быстро переходить на CMC/Coingecko/dexscreener/etc, по одному хоткею - а не только на один сайт
- добавить быстрые переходы в свапалки
Привет!

Я тут сделал анализатор для пулов ликвидности для dedust (TON): https://dedust.pools.cafe/

Позволяет ввести период предоставления ликвидности и сумму - и получить:

- profit / loss
- APR по дням (комиссии и бусты)
- статы пула по дням: бусты, объём за сутки, ликвидность
- сравнение стратегий: что было бы выгоднее, держать один из токенов или предоставлять ликвидность в пул

Данные приблизительные, основываются на агрегированной статистике

Поддержите репостом! В следующих постах расскажу более подробно
🔥4👏3👍1