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

Documentation Index

Fetch the complete documentation index at: https://docs.areal.finance/llms.txt

Use this file to discover all available pages before exploring further.

Что такое 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.managerSwap, 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 могли бы расходиться.
КаналИсточникПромежуточный аккаунтАтомарность
USDCOT distribute_revenue (доля 10%)USDC ATA crank-кошелька1 TX — SPL-трансфер + обновление total_deposited_usdc
RWTRWT claim_yield (доля 15%)RWT ATA PDA LiquidityHolding в Yield Distribution1 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.

Связанные документы