Перейти к основному содержанию
Breaking17 апреля 2026

Обзор

Дизайн концентрированной ликвидности для мастер-пулов RWT был переработан с симметричной пирамиды 2:1 с периодическими сдвигами диапазона на Monotonic Ladder — одностороннюю, кумулятивно растущую bid-структуру, использующую rwt_engine::mint_rwt как синтетическую ask-сторону. Это изменение удваивает эффективную capital efficiency Nexus LP, устраняет ask-side impermanent-loss-подобный дрейф при росте NAV и заменяет stateful репозиционирование диапазонов аддитивным ростом.

Почему изменение

Прежняя пирамида 2:1 была прямой адаптацией стандартных CL-AMM паттернов (Meteora, Trader Joe). Она предполагала, что цена RWT может дрейфовать в обе стороны, поэтому обе стороны книги требовали пред-финансированной ликвидности. Три свойства RWT делают это предположение неверным:
  1. NAV монотонно не убывает в нормальной работе (70% доходности зачисляется в book value, redeem отсутствует)
  2. mint_rwt — это всегда доступная ask-сторона по детерминированной цене NAV × 1.01. Любой пред-финансированный RWT выше NAV × 1.005 — экономически мёртвый капитал, покупатели всегда предпочтут mint
  3. Exit-ликвидность — дефицитный ресурс — держателям нужен глубокий bid; у покупателей уже есть безлимитная глубина через mint
Новый дизайн идеально соответствует этим свойствам.

Что изменилось

Было (симметричная пирамида)

BinArray на 70 бинов, 40 активных вокруг NAV
Асимметричная пирамида 2:1: 2/3 USDC ниже NAV, 1/3 RWT выше NAV
shift_liquidity: двигает весь диапазон при дрейфе NAV > 1%
  — сливает старые крайние бины
  — перераспределяет в новый диапазон вокруг текущего NAV
  — эффективно «продаёт» RWT по старому NAV при росте (ask-side IL)
Проблемы:
  • ~33% LP-капитала сидело в RWT ask-side, экономически мёртвом (mint дешевле)
  • Ребалансировка на росте NAV выталкивала LP из растущих RWT-позиций
  • Размер BinArray ограничивал кумулятивный рост ~7% до упора
  • Нет различия между «permanent stress buffer» и «активной торговой зоной»

Стало (Monotonic Ladder)

BinArray на 1000 бинов в log-scale (MAX_BINS = 1000)
Три зоны:
  1. Permanent tail: тонкий USDC в [initial_NAV - 1% .. initial_NAV - 0.3%]
     — иммутабельная, никогда не двигается, исторический floor на жизнь протокола
  2. Active bid wall: плотный USDC, geometric density r = 0.85
     — пик на active_bin, расширяется влево через extended bid
  3. Organic ask: RWT, накопленный от продаж пользователей
     — не пред-финансируется, не управляется Rebalancer

Nexus LP вносит только USDC. RWT никогда не пред-депонируется в мастер-пулы.

Инструкции:
  shift_liquidity        → удалена
  grow_liquidity         → НОВАЯ: расширяет bid wall вправо при росте NAV
                           Извлекает свежий USDC из аккумулятора Nexus
                           Permanent tail и organic ask не трогаются
  compress_liquidity     → НОВАЯ: пересчитывает density на более низком NAV при writedown
                           Замороженная ask-стенка сохраняется для восстановления
                           Капитал никогда не уничтожается

Swap (USDC → RWT, только мастер-пулы):
  Если organic ask существует И цена ≤ NAV × 1.005:
    → bin-walk свап, применяются LP и протокольная комиссии
  Иначе:
    → CPI rwt_engine::mint_rwt
    → DEX-комиссия НЕ взимается (mint fee уже компенсирует DAO)
Преимущества:
  • 100% Nexus LP productive (только bid-side) — ~2× capital efficiency
  • LP никогда не вынуждены продавать RWT при росте NAV (нет ask-side IL)
  • Кумулятивная структура: каждый исторический уровень NAV сохраняет bid-глубину навсегда
  • 1000-бинный массив при шаге 0.1% покрывает рост NAV × 2.7 (~10+ лет при 7% APY)
  • Маршрутизация в mint гарантирует детерминированную worst-case ask-цену
  • Самоусиливающийся flywheel глубины: рост NAV↑ → yield↑ → приток USDC в Nexus↑ → глубина bid↑

Breaking-изменения

Интерфейс контракта

ИнструкцияСтатус
shift_liquidityУдалена
grow_liquidityНовая — сигнатура включает аккаунты liquidity_nexus и nexus_usdc_ata
compress_liquidityНовая — без аккаунтов Nexus (capital-нейтральная)
swapИзменена — USDC→RWT путь на мастер-пулах теперь ветвится по наличию ask и цене mint; требуются дополнительные аккаунты (rwt_vault, rwt_mint, capital_accumulator_ata, dao_fee_account, user_rwt)
create_concentrated_poolИзменена — новый параметр permanent_tail_offset_bps; не-RWT сторона должна быть USDC или USDY; BinArray под 1000 бинов
add_liquidity / zap_liquidityОграничены — падают с MasterPoolUserLpDisabled на пулах Monotonic Ladder (StandardCurve не затронут)

State

  • Размер BinArray PDA: ~32 КБ (было ~2 КБ для 70 бинов). Rent: ~0.22 SOL на мастер-пул.
  • PoolState добавляет: left_anchor_bin, permanent_tail_floor_bin, last_rebalance_nav_bin, active_zone_lower.

Off-chain сервисы

  • Логика Pool Rebalancer разделена на путь роста (grow_liquidity) и путь сжатия (compress_liquidity). Добавлены проверки доступности аккумулятора Nexus до вызовов роста.

Без изменений

  • Пулы StandardCurve (OT/RWT, сторонние пары) — никаких изменений в поведении, математике или структуре комиссий
  • Модель per-pool fee vault и claim_lp_fees (для bin-path свопов)
  • compound_yield для OT-пулов (без изменений)
  • Комиссия казначейства OT на OT-парах (без изменений)
  • Механика mint_rwt (без изменений в делении комиссий или учёте NAV)

Миграция

Это изменение дизайна протокола, а не миграция живого стейта — мастер-пулы ещё не запущены в mainnet. Разработчики, реализующие по обновлённой спеке, должны игнорировать прежние ссылки на shift_liquidity и семантику 70-бинов / пирамиды 2:1.

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