Что такое Liquidity Nexus
Liquidity Nexus — это singleton-аккаунт внутри программы Native DEX, в котором хранится ликвидность, принадлежащая протоколу, и из которого она размещается по пулам DEX. Это подсистема, через которую Areal Finance накапливает продуктивную книгу LP-позиций на собственном DEX, зарабатывает swap-комиссии на этих позициях и направляет реализованную прибыль в Казначейство Areal.
В Nexus поступает капитал из двух вышестоящих программ:
- 10% выручки OT в USDC — из
ownership_token::distribute_revenue
- 15% доходности RWT в RWT — из
rwt_engine::claim_yield
Размещение этого капитала в LP-позициях выполняет выделенный бот — Nexus Manager. LP-награды за комиссии, заработанные на позициях, и любая реализованная LP-прибыль выводятся в Казначейство Areal по сигнатуре Authority.
Nexus — это собственный LP протокола. После того как токены попадают внутрь, принципал односторонний — нет инструкции, которая возвращает депонированный капитал к источнику. Единственный путь для принципала покинуть Nexus — это реализованная LP-прибыль, выведенная по Authority.
Подсистема в целом
┌─────────────────────────────────┐ ┌───────────────────────────┐
│ Контракт Ownership Token │ │ Контракт RWT Engine │
│ 10% выручки OT (USDC) │ │ 15% доходности RWT (RWT) │
└──────────────┬───────────────────┘ └─────────────┬─────────────┘
│ │
▼ ▼
┌──────────────────────┐ ┌────────────────────────────┐
│ Crank-кошелёк │ │ PDA LiquidityHolding │
│ USDC ATA │ │ (Yield Distribution) │
│ │ │ RWT ATA │
└──────────┬────────────┘ └──────────────┬──────────────┘
│ │
│ USDC-канал депозита │ RWT-канал депозита
│ (permissionless, │ (Authority,
│ 1 TX: transfer + │ 1 TX: атомарный drain
│ обновление principal floor) │ + CPI обновление floor)
│ │
▼ ▼
┌─────────────────────────────────────────────────────────┐
│ PDA Liquidity Nexus │
│ manager, total_deposited_usdc, total_deposited_rwt │
│ Nexus USDC ATA, Nexus RWT ATA, LP-позиции │
└────────────────────────┬────────────────────────────────┘
│
│ Только Manager:
│ swap, add liquidity, remove liquidity
│
▼
┌─────────────────────────────┐
│ Пулы Native DEX │
│ (LP-позиции, владелец — │
│ PDA Liquidity Nexus) │
└─────────────────────────────┘
Только Authority:
Клейм LP-наград → Казначейство Areal RWT ATA
Вывод реализованной прибыли → Казначейство Areal (USDC или RWT)
Ротация Manager → новый pubkey, или нулевой pubkey для kill-switch
Три уровня доверия
Каждая операция над Nexus гейтится ровно одной из трёх ролей. Роли непересекающиеся по дизайну — Authority не может размещать LP, Manager не может выводить прибыль, permissionless-вызыватель не может ни того, ни другого.
| Уровень | Кошелёк | Может | Не может |
|---|
| Authority (Team Multisig) | Поле authority в Native DEX | Инициализировать Nexus, ротировать Manager, клеймить LP-награды, выводить реализованную прибыль | Размещать или закрывать LP-позиции, перемещать токены между аккаунтами Nexus |
| Manager (keypair бота) | LiquidityNexus.manager | Swap, add liquidity, remove liquidity капиталом Nexus | Переводить токены наружу из аккаунтов Nexus, ротировать сам себя, выводить любую прибыль |
| Permissionless | любой подписант | Триггерить USDC-канал депозита | Что-либо, что трогает LP-позиции или выводит токены из аккаунтов Nexus |
Authority может ротировать или отключить keypair Manager в любой момент. Установка manager на нулевой pubkey работает как kill-switch — каждая Manager-only инструкция падает, пока Authority не выставит реальный pubkey обратно.
Инвариант principal-lock
Главное свойство безопасности подсистемы Nexus:
Для каждой стороны токена t ∈ {USDC, RWT} в любой момент времени: nexus_balance(t) ≥ total_deposited(t).
total_deposited монотонно неубывающее — оно может только расти, никогда не уменьшается. Поля пишутся исключительно двумя каналами депозитов, и в контракте нет инструкции, которая могла бы их уменьшить.
Единственный путь для токенов покинуть аккаунты Nexus с внешним назначением — это Authority-only вывод прибыли. Он валидирует amount ≤ nexus_balance(t) − total_deposited(t) и падает при нарушении. Иными словами, прибыль может покинуть Nexus, а принципал — нет, по конструкции, а не по политике.
Это намеренно односторонне. Капитал не может случайно протечь обратно к программе-источнику, и любой будущий «rebase»-механизм, перераспределяющий общий принципал между Казначейством и Nexus, должен быть отдельной, явной инструкцией с подписью Authority, добавленной в контракт.
Два канала депозита
Две вышестоящие программы маршрутизируют в Nexus разными паттернами. Оба обновляют total_deposited атомарно с SPL-трансфером, который перемещает токены — нет окна, в котором on-chain баланс Nexus и principal floor могли бы расходиться.
| Канал | Источник | Промежуточный аккаунт | Атомарность |
|---|
| USDC | OT distribute_revenue (доля 10%) | USDC ATA crank-кошелька | 1 TX — SPL-трансфер + обновление total_deposited_usdc |
| RWT | RWT claim_yield (доля 15%) | RWT ATA PDA LiquidityHolding в Yield Distribution | 1 TX — SPL-трансфер + CPI, пишущий total_deposited_rwt |
RWT-канал стейджится через выделенную PDA в контракте Yield Distribution, называемую LiquidityHolding. claim_yield пишет 15% RWT в RWT-аккаунт этой PDA, а Authority-callable инструкция в Yield Distribution дренирует её в Nexus за одну транзакцию — включая CPI, который обновляет principal floor Nexus в той же инструкции. Нет окна, в течение которого RWT лежит в Holding, а floor Nexus расходится с фактическим переводом. См. контрактную справку Yield Distribution для детали стейджинговой PDA и инструкций.
Политика прямого SPL Transfer. Токены, отправленные в аккаунт Nexus через прямой SPL Transfer (т.е. в обход документированных каналов депозита), увеличат on-chain баланс, но НЕ продвинут total_deposited. Инвариант principal-lock всё ещё держится — нетрекаемые депозиты эффективно повышают потолок выводимой прибыли — но principal floor будет занижен. Всегда маршрутизируйте капитал через документированные каналы.
LP-операции под управлением Manager
Размещение капитала находится под контролем бота Manager. Он не может перевести токены наружу из аккаунтов Nexus в внешний кошелёк, но может разместить их в LP-позициях через DEX-инструкции, принимающие аккаунты Nexus как источник.
Стандартные операции Manager:
- Swap — ребаланс холдингов Nexus между USDC, RWT или любой стороной токена, поддерживаемой DEX
- Add liquidity — разместить капитал в существующем пуле, создав
LpPosition, владелец которой — PDA Nexus
- Remove liquidity — забрать капитал обратно в аккаунты Nexus в нативных токенах
Каждая из них — Manager-only DEX-инструкция, выполняющая стандартную валидацию пула и дополнительно проверяющая, что подписант совпадает с LiquidityNexus.manager. Если Authority отключил Manager (нулевой pubkey), каждая операция падает.
Действия Manager никогда не трогают principal floor, поэтому сами по себе они не могут нарушить инвариант principal-lock — они лишь перемещают токены между аккаунтами Nexus и резервами пулов. Реализованная прибыль и убыток накапливаются как разрыв между балансом Nexus и total_deposited.
Вывод прибыли — только Authority
LP-комиссии и реализованная прибыль на позициях Nexus клеймятся исключительно по Authority:
- LP-награды за комиссии — когда позиции Nexus в пуле накапливают swap-награды, Authority клеймит их напрямую в RWT ATA Казначейства Areal через выделенную DEX-инструкцию. Principal floor при этом не трогается — награды никогда не считались принципалом.
- Реализованная прибыль — для любой стороны токена Authority может вывести до
nexus_balance(t) − total_deposited(t) (разрыв между текущими on-chain холдингами и principal floor). Инструкция падает при переполнении. Выводы оседают в Казначействе Areal.
Оба потока гейтятся полем authority Native DEX — по умолчанию Team Multisig.
Off-chain оператор
Бот Nexus Manager владеет keypair Manager и запускает периодический цикл принятия решений. Он читает on-chain состояние пулов, оценивает, нужно ли перевзвесить капитал Nexus между пулами или оставить как есть, и подаёт соответствующие swap- / add-liquidity- / remove-liquidity-транзакции.
Бот по умолчанию работает в режиме dry-run для staging-проверки; для on-chain отправки требуется отдельный флаг. Резервирование multi-RPC, single-instance lock и pre-flight проверка SOL-баланса — часть operator-hardening. См. Off-Chain сервисы для операционных деталей.
Каналы депозита не требуют Manager — USDC-канал permissionless, RWT-канал гейтится Authority. Manager — исключительно для размещения капитала после того, как депозиты приземлились.
Границы
Nexus — это слой ликвидности, не yield-слой и не governance-слой. Чтобы trust-модель оставалась чистой, несколько смежных возможностей намеренно не входят в Nexus:
- Нет вывода принципала. Нет инструкции, которая возвращает депонированный капитал к источнику. Любой будущий ребаланс общего принципала протокола между Казначейством и Nexus должен идти через отдельную, явную инструкцию с подписью Authority.
- Нет распределения yield. Дележ 70 / 15 / 15 доходности RWT настраивается на vault RWT Engine, а не на Nexus. Nexus видит свои 15% только после их прихода.
- Нет управления master-пулами. То, принимает ли master-пул user-side LP или только Nexus LP, — параметр пула, а не Nexus.
Связанные документы