Пулы ликвидности в Minter 2
Одним из основных нововведений Minter 2 станут пулы ликвидности, которые позволят:
- Обменивать любые монеты (резервные, безрезервные, глобальные и локальные)
- Создавать собственные торговые пары (например: ваша кастомка со стейблкоином USDC)
- Зарабатывать на предоставлении ликвидности
В статье рассмотрим как это все работает.
До выхода Minter 2 в мейннет, будем пользоваться тестовой сетью, потом статья будет обновлена.
Полезные ссылки:
- Эксплорер
- Консоль
- Получить тестовые монеты MNT
- Minter 2 Testnet (🌮 TacoNet)
- Bug Bounty (вознаграждения за найденные баги с бюджетом 3 000 000 BIP)
- Minter 2 для бабушек
- Видео: кросс-чейн переводы через Minter Hub
AMM
Пул ликвидности (Liquidity pool) - торговая пара монет/токенов с заблокированными средствами провайдеров ликвидности, которые обеспечивают ликвидность этой пары. Покупая или продавая монету через пул ликвидности, трейдер использует заблокированные средства пула. В отличие от централизованных бирж с лимитными ордерами и стаканами, в пулах ликвидности не нужно выставлять ордер и ожидать его исполнения. Торговля осуществляется автоматическим маркет-мейкером (АММ).
АММ обеспечивает автоматическое вычисление цены токена в торговой паре путем уравновешивания количества обоих токенов в этой паре. Существует понятие константы, которая вычисляется по формуле:
x * y = k
Где x
- количество первой монеты, y
- количество второй монеты, k
- их произведение. Эта константа обозначает размер пула и измеряется в единицах. Для примера, возьмем пул MNT/USDM:
X = 160388.49 MNT
Y = 99.19 USDM
K = X * Y = 160388.49 * 99.19 = 15908934.32
Эта константа не может уменьшаться при совершении покупки/продажи токенов в этой паре. Наоборот, с каждым свапом, она увеличивается благодаря комиссиям 0.2%, таким образом увеличивая размер самого пула. А чем больше пул за счет комиссий, тем больше на этом зарабатывают провайдеры ликвидности (о них поговорим чуть ниже).
На данный момент, цена 1 MNT = 0.00062 USDM (Y / X, то есть 99.19 / 160388.49). Давайте попробуем купить 50 USDM за MNT и посмотрим как изменится цена и константа:
В подтверждающем окне видим сколько покупаем USDM, сколько тратим MNT, путь (роут) и комиссию.
Итак, мы купили 50 USDM (то есть забрали их из пула), потратили 163369.6 MNT (то есть добавили их в пул). В потраченную сумму включается комиссия пула 0.2%, то есть 326.73 MNT. После совершения трейда, параметры пула стали такими:
Количество монет в пуле изменилось, также как и цена (стала 1 MNT = 0.00015 USDM). Проверим константу, умножив друг на друга количество обоих токенов:
X = 323758.09 MNT
Y = 49.19 USDM
K = X * Y = 323758.09 * 49.19 = 15925660.45
Константа увеличилась за счет комиссий -> Соотношение монет изменилось -> Цена изменилась.
Формулы
Для начала, определим переменные:
X
- количество первой монеты в пуле до трейдаY
- количество второй монеты в пуле до трейдаK
- константа пула до трейдаX_new
- количество первой монеты в пуле после трейда (X - Coin0)Y_new
- количество второй монеты в пуле после трейдаK_new
- константа пула после трейдаCoin0
- количество первой монеты для трейдаCoin1
- количество второй монеты для трейдаFee
- комиссия пула 0.2%
Текущая цена первого токена:
Price = Y / X
Цена первого токена после трейда:
Price_new = Y_new / X_new
Количество первой монеты в пуле после трейда:
X_new = X - Coin0
Сколько нужно потратить второй монеты Coin1
(включая комиссию Fee
), чтобы купить определенное количество первой монеты Coin0
:
Coin1 = (K / (X - Coin0) - Y) / (1 - Fee / 100)
Количество второй монеты в пуле после трейда:
Y_new = Coin1 + Y
Комиссия за трейд, которая пополняет пул:
Coin1 / 100 * Fee
Провайдеры ликвидности
Для того, чтобы трейдер мог покупать и продавать токены через пул, в этом пуле должна быть ликвидность. Ее обеспечивают провайдеры ликвидности. Зачем им это делать? Чтобы получать долю от тех самых 0.2% комиссии, которую трейдер платит за каждую сделку в пуле.
Добавление и удаление ликвидности
Добавление ликвидности - это предоставление собственных средств в пул. Благодаря этим средствам, трейдеры могут совершать сделки, а АММ контролирует соотношения монет в пуле и регулирует цену в зависимости от направления сделки (покупка или продажа).
Добавить ликвидность можно в уже существующий пул. Допустим, вышеупомянутый MNT/USDM. Для начала, посмотрим еще раз на текущие параметры пула:
При добавлении ликвидности, соотношение монет всегда должно быть 50% / 50%. Это базовое правило, которое позволяет сохранить пропорции монет в пуле, не влияя на цену. То есть, добавляя ликвидность, провайдер увеличивает объем пула, ликвидность, но никак не влияет на цену.
Добавить ликвидность можно через соответствующее меню консоли (Pools -> Add Liquidity):
Допустим, мы хотим добавить 100 000 MNT, для этого у нас должно быть 15.19 USDM (при цене ≈0.00015). После добавления ликвидности, балансы токенов в пуле увеличились на 100 000 MNT и 15.19 USDM:
Токены пула
После того как мы добавили ликвидность в пул, взамен мы получили токены пула. Эти токены - наша квитанция, которая в любой момент времени позволит обратно забрать свою ликвидность + долю от комиссий пула.
Технически, токены пула имеют вид: P-*
Где * - это идентификатор пула в виде цифры. Например, токены пула MNT/USDM называются P-1. Перейдя на страницу такого токена в эксплорере, мы можем посмотреть его параметры:
Технически, это безрезервный токен с CRR=0%, привязанный к конкретному пулу и имеющий свой объем (количество выпуска).
Справка. Токены пулов можно:
- Отправлять на любой адрес (тогда адрес получателя будет иметь возможность забрать ликвидность из пула)
- Добавлять в собственные пулы с любыми другими монетами и токенами. То есть, любой токен пула может свободно торговаться в сети Minter
Зачем это нужно? Все просто: теперь можно торговать долями ликвидности в пулах. Вы можете как купить чью-то долю в конкретном пуле, так и продать собственную.
В кошельке эти токены пула выглядят так:
Каждый кто добавляет ликвидность - получает токены пула, это его доля ликвидности. Сумма всех токенов пула отображается на странице пула:
Таким образом, мы можем посчитать свою долю пула, то есть Share (это процент ваших токенов пула от суммы всех токенов пула). Найти всех провайдеров ликвидности и посмотреть их доли можно на этой же странице:
Все ваши пулы, в которых вы провайдите ликвидность можно найти в консоле:
Последний пул на скриншоте - тот, в который мы добавили только что ликвидность, став провайдером с долей 23.6%.
Забрать ликвидность можно обратной операцией:
Здесь достаточно указать процент своей ликвидности, которую вы хотите забрать из пула. В этой форме можно увидеть количество обоих токенов, которые мы забираем.
Важно! Из-за волатильности цен, которая может быть в одном или обоих токенах пула, провайдер ликвидности может нести убытки в долларовом эквиваленте при отзыве ликвидности. Это называется непостоянная потеря (Impermanent Loss).
Непостоянная потеря происходит, когда вы предоставляете ликвидность пулу ликвидности, и цена ваших депонированных активов изменяется по сравнению с тем, когда вы их депонировали. Чем больше это изменение, тем больше вы подвержены непостоянным потерям. В этом случае убыток означает меньшую стоимость в долларах на момент вывода средств, чем на момент депозита.
Почитать подробнее об этом можно здесь (англ) или здесь (рус).
Создание пула ликвидности
Нет пула, в который вы хотите добавить ликвидность? Не проблема, его можно создать, например с нашей собственным токеном MYCOIN и стейблкоином USDT. В Minter 2 мы можем создавать не только резервные монеты, но и безрезервные токены:
Создадим токен MYCOIN с начальной эмиссией 1 млн токенов. Они не будут обеспечены BIP, а также могут быть допечатаны (Mintable) или сожжены (Burnable) владельцем монеты.
Т.к. токен безрезервный, то для его обменности в сети Minter нужно создать с пул ликвидности, например со стейблом USDT (который уже есть в Minter, купить можно за MNT в пуле MNT/USDT).
В соответствующем меню (Pools) выбираем обе монеты и их пропорции, не забывая, что цена первой монеты = количество второй монеты / количество первой монеты. Если мы хотим сформировать цену 1 MYCOIN = 2 USDT, при создании пула нам нужно добавить в него в 2 раза больше USDT, чем MNT:
1 MYCOIN = 2000 USDT / 1000 MYCOIN = 2 USDT
После создания пула, его можно проверить в эксплорере.
За добавление ликвидности в пул (в данном случае вместе с созданием пула), мы получили токены пула, которые называются P-38. Теперь, любой другой участник сети сможет стать провайдером ликвидности в моем пуле. Для этого нужно:
- Купить MYCOIN (потому что кроме нашего пула, эту монету нигде не получить)
- Купить или иметь на счету USDT
Другой пользователь решает купить 10 MYCOIN и добавить их в ликвидность пула, став провайдером, совершает 2 операции:
Теперь, в этом пуле 2 провайдера ликвидности. Мы с 99% долей и другой участник с долей 1%:
Таким образом, помимо своих депонированных средств, при отзыве мы получим 99% комиссий, собранных пулом с момента моего провайдинга.
Вывод: чем дольше вы держите ликвидность в пуле, тем больше вы зарабатываете т.к. пул увеличивается за счет комиссий.
В следующих статьях разберем торговые возможности пулов ликвидности, арбитраж между пулами одной сети, межсетевой арбитраж и инструменты.
Подписывайтесь на канал @BipLenta 🌶, чтобы не пропустить новые гайды.