Перейти к основному содержимому

Управление ликвидностью через NFT

Метаданные

ПараметрЗначение
Дата создания2026-02-16
Дата последнего изменения2026-02-20
Статус апрува⏳ На рассмотрении
Дата апрува-

Протоколы для управления ликвидностью через NFT. Пользователи могут покупать NFT, которые дают им долю от общей позиции в пуле ликвидности, или покупать личные NFT-позиции. В дальнейшем они могут запрашивать (клеймить) доход с этих позиций, а также продавать свои NFT другим пользователям. При этом все средства от продажи NFT и доходы распределяются через партнерскую программу в Diamond. Функционал инициализации реинвестирования, ребалансировки и получения выплат по партнерской программе в будущем будет реализован через биржу труда. Протокол применим во всех EVM-совместимых сетях для пулов Uniswap/PancakeSwap V3.


2.1. Пользовательские сценарии

Покупка NFT

Пользователь покупает NFT за один токен; система автоматически обменивает эти токены в необходимые активы для пары и, в зависимости от типа NFT:

  • либо добавляет ликвидность в общий пул и выдает пользователю долю;
  • либо создает отдельную позицию ликвидности.

Средства от покупки NFT распределяются согласно партнерской программе и в компанию по заданным в конфигурации процентам.

Продажа NFT

Пользователь продает свою NFT другому пользователю (если это разрешено). В момент продажи происходит смена цепочки партнеров.

Клейм доходов от пулов ликвидности

Пользователь клеймит доход со своей NFT. В момент клейма происходит распределение средств вышестоящим партнерам.

Клейм выплат по партнерской программе вышестоящими партнерами

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

Добавление ликвидности

Пользователь добавляет ликвидность (если это разрешено) в том же токене, в котором производилась покупка NFT. При добавлении ликвидности распределения не производятся, средства просто добавляются в пул.

Удаление ликвидности

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

Автореинвестирование (требуется NFT-доступ)

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

Реинвестирование через биржу труда (требуется NFT-доступ)

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

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

Пользователь перемещает ликвидность из одного ценового диапазона в другой.

Авторебалансировка (доступна только для личных позиций, требуется NFT-доступ)

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

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

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

2.2. Бизнес-логика

Общая логика протоколов

Контракт протокола управляет позициями ликвидности на Uniswap/PancakeSwap V3. При покупке NFT происходит обращение к протоколу, средства распределяются по партнерской программе, а оставшаяся часть обменивается в необходимой пропорции и добавляется в пул ликвидности. К использованию допускаются только пользователи, активированные в Diamond.

Доступ к протоколу осуществляется через NFT, прямое обращение к нему запрещено.

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

Протокол общих позиций

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

Протокол личных позиций

Контракт создает отдельную позицию, привязанную к конкретной NFT. Пользователи могут самостоятельно ребалансировать такие позиции, выбирая пулы строго из списка, установленного в конфигурации.

Перезарядка NFT

Для получения дохода (процентов из пулов) необходимо периодически «перезаряжать» NFT. Доход начисляется только за время активности NFT; когда NFT неактивна, доход направляется в компанию (на адрес, указанный в конфигурации).

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

Должна быть возможность отключения необходимости перезарядки для всех или конкретных NFT.

Функции администратора

Включение/отключение трансфера NFT.

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

Пример перемещения половины позиции в общем пуле: была позиция ETH/USDC, затем от туда вывели 80% и перевели в пул ETH/USDT. Тогда оставшиеся 20% в пуле ETH/USDC продолжат приносить доход, но не будут расширяться. А в пуле ETH/USDT будет новая позиция, которая будет расширяться. Потом уже ETH/USDT может быть разделен по такому же принципу и тогда будет уже 3 позиции, но активна только одна. Это нужно для активного управления и диверсификации между пулами.

В протоколе общих позиций при изменении пулов необходимо указывать активную позицию: в неё будут направляться средства от продажи новых NFT и пополнений существующих. Неактивные позиции продолжат приносить доход, но не будут расширяться.

Клейм доходов

При клейме дохода пользователь получает не два токена пары, а только один из них (какой именно — указывается в конфигурации). Для некоторых NFT предусмотрена возможность клейма токенов без конвертации напрямую из пула; это определяется подписью от бэкенда, в которой будет указан тип клейма (с конвертацией или без).

Если пользователь долго не запрашивает доход (например, полгода), у владельца контракта появляется возможность перевести эти средства на кошелек компании.

Конвертация активов

При покупке NFT пользователь платит в токенах ERC20, которые не обязательно входят в торговую пару, поэтому выполняется их обмен на необходимые активы.

При клейме дохода с конвертацией в один актив остатки во втором токене автоматически обмениваются. Например, в паре ETH/USDT активы будут конвертированы в ETH, и пользователь получит только ETH.

Распределение средств

Существует два типа распределений:

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

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

Как хранить балансы партнерки по линиям:

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

Цепочка пользователей id1->id2->id3->id4->id5->id6

Партнерка распределяется от каждого человека вверх по цепочке на 4 линии. То есть id2 получит партнерку от id3,id4,id5,id6 что будет эквивалентно четырем линиям партнерки. И необходимо сохранить отдельно суммы которые пришли с каждой линии. Чтобы потом мы могли через подпись с бекенда при клейме регулировать сколкько линий человек имеет право склеймить. Например, только две линии, тогда ему будет доступен доход только от id3 и id4 (не конкретно от этих айди, а со всех айди на этой линии которые передали ему партнеру). Доход от id5 и id6 будет висеть на смарт контракте и станет доступен только тогда когда подпись с бекенда разрешит.

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

Распределения происходят:

  • При покупке NFT.
  • При клейме дохода.

Распределения НЕ происходят:

  • При ребалансировке.
  • При реинвестировании (в т. ч. ручное пополнение).
  • При удалении ликвидности.

Для распределений при покупке NFT и при клейме дохода используются отдельные конфиги. В конфиге распределений при покупке нфт должно быть указано распределяется токен оплаты, или токены пула после свопа токена оплаты.

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

Кроссчейн-партнерская программа

Поскольку протоколы могут быть развернуты в любых EVM-сетях, а данные о партнерах хранятся в Diamond (сеть Polygon), цепочки партнеров устанавливаются оракулом с бэкенда в специальные контракты во всех сетях, где развернуты протоколы.

Реинвестирование

Автоматическое реинвестирование и реинвестирование через биржу труда доступны только при накоплении определенного дохода (задается в конфигурации).

Пользователь может настроить порог дохода для реинвестирования (например, при накоплении 0.1 ETH доход запрашивается и полностью вкладывается в тело позиции). Также это можно сделать вручную. При автоматическом реинвестировании или использовании биржи труда пользователь платит комиссию за каждую операцию.

Для доступа к реинвестированию, автоматизации и бирже труда требуются NFT-разрешения (в смарт-контракт передается подпись с бэкенда).

При реинвестировании распределения не производятся.

Ребалансировка

Для протокола общих позиций:

Ребалансировка выполняется вручную администратором или автоматически в соответствии с настройками оракула на бэкенде.

Для протокола личных позиций:

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

Также доступны автоматическая ребалансировка и ребалансировка через биржу труда; в этих случаях пользователь платит дополнительную комиссию.

Для автоматизации ребалансировки необходимо настроить параметры (например, изменение цены актива А на N% или выход позиции из диапазона), при которых система переместит средства в новый диапазон.

Автоматизация

Комиссии

Комиссии разделены на две части:

  • комиссии за реинвестирование и ребалансировку (автоматическую или через биржу труда);
  • комиссии за перезарядку NFT на бирже труда.

Пользователь приобретает пакеты автоматизаций или перезарядок за PLS + XMGT; система конвертирует их в POL для оплаты газа оракульных транзакций.

Купленные пакеты расходуются на соответствующие операции. Каждая транзакция списывает одну единицу из купленного пакета.

Трансфер и продажа NFT

Трансфер NFT может быть включен или отключен для всех или конкретных токенов (через белые и черные списки).

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

Доступы по NFT

n/a

2.3. UI/UX требования

n/a


3.1. Архитектура

Абстрактная схема взаимодействий:

NFT Product -> Magnet Liquidity Protocol
| |
Dex Router Crosschain Module
|
Diamond

3.2. Описание технической реализации

Добавление нового модуля для кроссчейн хранения цепочек партнеров из Diamond в apps/contracts-v2/contracts/PartnerChainBridge.sol.

Реализация двух протоколов управления позициями (Uniswap и PancakeSwap):

  • Общие позиции
  • Личные позиции

Для ребалансировки, реинвестирования и свопа токенов к нужным пропорциями использовать или брать как референс логику uniswap-v3-automan

Интеграция управления контрактами протокола в NFT Product. Реализация оракулов в NFT-модуле основного бэкенда apps/backend.


4. Проблемы и компромиссы

4.1. Известные ограничения

  1. Совместимость только с Ethereum-адресами для партнерской программы
    • Поскольку в Diamond у всех партнеров Ethereum-адреса, в сетях типа Solana или Tron партнерская программа работать не будет.
    • Возможное решение: создание виртуального счета для пользователя с хранением приватного ключа на сервере и последующим предоставлением доступа пользователю.

4.2. Технический долг

n/a

4.3. Риски

Потенциальная уязвимость оракула. При сбоях или взломах может быть установлена неверная партнерская цепочка.


5. Вопросы на дополнительное обсуждение

n/a


6. План реализации

6.1. Этапы разработки

  • Этап 1: Реализация модуля для кроссчейн-интеграции партнерской программы (Solidity-модуль).
  • Этап 2: Реализация смарт-контракта протокола общих позиций.
  • Этап 3: Реализация смарт-контракта протокола личных позиций.
  • Этап 4: Реализация механик ребалансировки и реинвестирования в смарт-контрактах и на бэкенде.
  • Этап 5: Реализация оракула для кроссчейн-партнерской программы на бэкенде.
  • Этап 6: Подключение к NFT-контракту.
  • Этап 7: UI и интеграция логики.

6.2. Критические зависимости

n/a


8. Документация

Что нужно добавить/изменить:

  • документация нового смарт-контракта;
  • документация Solidity-модуля для кроссчейн-партнерской программы;
  • документация оракула для кроссчейн-партнерской программы;
  • обновление документации NFT (добавление информации о ликвидности).

9. Ссылки

n/a