В декабре объем торгов на децентрализованных биржах (Decentralized Exchanges, DEX) превысил $127 млрд. Объем заблокированных средств (Total Value Locked, TVL) на крупнейших из них — Uniswap и PancakeSwap — составил $6,18 млрд и $4,1 млрд соответственно.
Рассказываем о приложении BotSwap, которое позволяет оптимизировать работу на этих торговых платформах.
Коротко о BotSwap
Приложение разрабатывает британский блокчейн-стартап Fetch.ai — создатель одноименной платформы с токеном стандарта ERC-20 FET.
В феврале 2019 года Fetch.ai привлек $6 млн за 22 секунды в ходе IEO на Binance Launchpad. В марте 2021 года компания запустила децентрализованную биржу деривативов Mettalex, а через три месяца — первую версию BotSwap.
BotSwap автоматически выводит ликвидность из пулов Uniswap V2 или PancakeSwap V2 при достижении определенной цены актива. Это позволяет ограничить непостоянные убытки — разницу в стоимости активов при хранении в кошельке и удержании в пуле ликвидности.
Кроме того, пользователи BotSwap могут создавать лимитные ордера для торговых пар: приложение обменяет токены, когда цена достигнет установленной отметки.
Агенты и триггеры
Пользователи создают DeFi-агентов — субаккаунты, которые выполняют действия на бирже. Они срабатывают при достижении определенных условий — триггеров.
BotSwap позволяет создавать до пяти агентов. К каждому из них можно подключить только один триггер.
Стоимость работы одного агента — 30 FET в месяц ($10 на момент публикации). Пользователи BotSwap получают 5 бонусных токенов, которые можно потратить на эти цели.
На момент публикации в BotSwap доступно два триггера:
- Withdraw Liquidity — выводит ликвидность из пула, когда цена токена падает ниже указанного пользователем уровня;
- Swap Token — обменивает токены при достижении указанной пользователем цены.
Для работы c BotSwap понадобятся:
- кошелек MetaMask;
- токены FET;
- LP-токены на PancakeSwap или Uniswap;
- Binance Coin (BNB) или Ethereum (ETH).
Мы протестировали работу приложения в Binance Smart Chain: создали агента и два триггера — для вывода ликвидности из пула и обмена токенами на PancakeSwap.
Создаем DeFi-агента
Для добавления агента перешли в приложение BotSwap и подключили MetaMask. Затем открыли меню Dashboard и нажали кнопку Add Agent. Это также можно сделать во вкладке Agents.

Нажали кнопку Create в открывшемся окне. Оставили значения полей по умолчанию: сеть можно изменить позднее при настройке агента.

DeFi-агент появился во вкладке Agents.

Приложение автоматически сгенерировало идентификатор DeFi-агента — zero-knowledge-performer. Его можно изменить, щелкнув по названию агента.
Выводим ликвидность
Создали триггер для вывода ликвидности с пула anyMTLX/BUSD на PancakeSwap. Для этого перешли во вкладку Triggers и нажали кнопку New Trigger.
Выбрали значение Withdraw Liquidity в открывшемся окне и нажали кнопку Next.

Не стали менять сеть и привязали триггер к агенту zero-knowledge-performer. Снова нажали кнопку Next.

Указали адрес пула ликвидности anyMTLX/BUSD на PancakeSwap.

Приложение автоматически определило 7 LP-токенов — это наша доля в пуле anyMTLX/BUSD.

Установили цену, по достижению которой агент выведет ликвидность из пула — 1.40 anyMTLX/BUSD.
Для оплаты операции выбрали «медленную» комиссию 10 Gwei. В этом окне можно указать более высокую комиссию или указать другое значение в поле Custom.
После задания параметров нажали кнопку Next.

Подтвердили операции по установке триггера в MetaMask:
- разрешили смарт-контракту BotSwap доступ к средствам на кошельке;
- зарегистрировали агента в контракте;
- отправили агенту 0,005 BNB для выполнения транзакции по выводу ликвидности.

После нажатия кнопки Next триггер появился во вкладке Triggers.

BotSwap не позволяет редактировать триггеры. Чтобы изменить параметры, нужно удалить и создать новый триггер.
Обмениваем токены
Последним протестировали триггер для обмена токенов WBNB и BUSD.
Для этого создали нового агента — innovative-crypto-bot по аналогии с инструкцией выше. Затем перешли во вкладку Triggers, выбрали Swap Token Trigger и нажали кнопку Next.

Привязали триггер к агенту innovative-crypto-bot для триггера. Оставили значение BSC Mainnet в поле Network и нажали кнопку Next.

Выбрали токен BNB и стейблкоин BUSD в качестве активов для обмена. В поле Amount указали 0,02 BNB и нажали кнопку Next.

Установили триггер — цену, по которой агент обменяет 0,02 BNB на BUSD. Выбрали комиссию для транзакции обмена и нажали кнопку Next.

При создании триггера BotSwap автоматически обернул BNB во Wrapped BNB (WBNB). Затем приложение попросило подтвердить операции по установке триггера в MetaMask. Одобрили:
- доступ смарт-контракта BotSwapDFA к средствам на кошельке;
- регистрацию агента в контракте;
- отправку агенту 0,005 BNB для выполнения транзакции по обмену токенов.

После этого триггер Swap появился во вкладке Triggers.

Инструкцию по работе с BotSwap на Ethereum можно посмотреть на YouTube-канале Fetch.ai.
Будущее проекта
В ближайшем будущем команда Fetch.ai добавит поддержку DeFi-протоколов SushiSwap и 1inch, а также новые триггеры:
- APY monitor — вывод ликвидности, если доходность упадет ниже установленного пользователем процента;
- Best Pool — перемещение ликвидности в пул с более высокой доходностью;
- ETH Fees — вывод ликвидности, если комиссии в сети Ethereum за определенный период времени растут слишком быстро;
- Stop-loss (Uniswap v3) — перемещение ликвидности в новый активный диапазон, если текущий диапазон больше не зарабатывает комиссии;
- Portfolio management (Uniswap V3) — ребалансировка портфеля;
- ETH fund management V1 — автоматическое пополнение одного или нескольких Ethereum-адресов;
- ETH fund management V2 — обмен ERC20-токенов на Ether, если их цена упадет ниже определенного уровня.
Кроме того, разработчики Fetch.ai рассматривают интеграцию BotSwap с платформой по управлению DeFi-активами Zapper.
Выводы
BotSwap — приложение с минималистичным интерфейсом, которое упрощает работу с популярными децентрализованными биржами Uniswap и PancakeSwap. Его пользователи автоматически обменивают токены и выводят ликвидность из пулов.
Единственным недостатком BotSwap можно назвать скромный набор триггеров. Однако Fetch.ai запустила его всего четыре месяца назад и уже работает над расширением функциональности.