Перейти к основному содержанию
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →

Модель комиссий

Stable AMM использует ту же структуру комиссий, что и AMM v4. На пул приходится только один уровень комиссии (устанавливается при инициализации); пулы не могут быть переконфигурированы на более высокие уровни.
ПолеПо умолчаниюЗначение
swap_fee_numerator / swap_fee_denominator25 / 10_000Валовая комиссия за торговлю: 0,25% от объёма входящего токена.
trade_fee_numerator / trade_fee_denominator25 / 10_000Та же 0,25%; устаревшее поле, ранее использовавшееся для ценообразования ордеров OpenBook, сохранено для совместимости макета.
pnl_numerator / pnl_denominator12 / 100Доля протокола в комиссии: 12% — то есть 0,25% × 12% = 0,03% от объёма.
min_separate_numerator / min_separate_denominator4 / 10_000Внутренний порог округления.
Нет комиссии фонда и нет комиссии создателя — это изобретения после AMM v4 (CPMM/CLMM). Stable AMM предшествует этому соглашению.

Как вычисляется распределение

При каждом своппе:
gross_fee = ceil(amount_in * (swap_fee_numerator / swap_fee_denominator))    // например, 0,25% от amount_in
pnl_portion = gross_fee * (pnl_numerator / pnl_denominator)                  // 12% от gross_fee
lp_portion = gross_fee − pnl_portion                                          // 88% от gross_fee
  • lp_portion остаётся в хранилище, увеличивает k и приносит пользу LP при выводе.
  • pnl_portion увеличивает AmmInfo.out_put.need_take_pnl_coin или need_take_pnl_pc (в зависимости от входящего токена) и выводится через WithdrawPnl.
Тот же трюк сохранения инварианта, что и в CPMM: сумма PnL физически находится в хранилище, но вычитается из «эффективных резервов», используемых в математике кривой, поэтому её удаление не смещает цену.

PnL OpenBook (снято с обслуживания)

На ранних этапах пул также размещал лимитные ордера на OpenBook; когда они исполнялись, он получал или терял спред маркет-мейкера/тейкера, рассчитываемый во время MonitorStep, и отслеживал результат в счётчиках out_put.total_pnl_{coin,pc}. Этот путь неактивен уже много лет — пул не держит открытых ордеров, поэтому единственное начисление комиссии — это 0,03% доля протокола, описанная выше. Счётчики total_pnl_* остаются в макете, но больше не увеличиваются. Обновление от 2026-06-22 удалило оставшийся код OpenBook (включая MonitorStep). CPMM стал стандартом для новых пулов отчасти из-за этой прежней связи с OpenBook; Stable AMM независим от книги ордеров.

Сбор

Мультиподпись Raydium (или тот, кто контролирует amm_admin) вызывает WithdrawPnl для вывода:
  1. Переводит need_take_pnl_coin и need_take_pnl_pc из хранилищ на счета, назначенные администратором.
  2. Обнуляет счётчики.
Операция не перемещает кривую. LP не видят изменения цены.
WithdrawPnl был изменён в обновлении от 2026-06-22: теперь он использует фиксированный макет из 10 счётов, только для администратора, без пути совместимости (старые макеты завершаются с ошибками типа InvalidTokenCoin), и когда доступных средств пула недостаточно для покрытия PnL, он возвращает TakePnlError напрямую вместо отключения пула. См. products/stable/instructions.

Реализация комиссии LP

Нет отдельной инструкции «собрать комиссии». Комиссии LP накапливаются в хранилищах, увеличивая резервы. LP реализуют их, сжигая LP через Withdraw. Стоимость токена LP растёт по мере роста резервов.

Визуализация: куда идёт $1 000 объёма

При своппе, ориентированном на USDC, объёмом $1 000 против пула Stable с параметрами по умолчанию:
Валовая комиссия за торговлю (0,25%):     $2,50
  Доля LP   (0,22%):         $2,20  → остаётся в пуле, увеличивает k
  Доля PnL  (0,03%):         $0,30  → need_take_pnl_pc, выводится через WithdrawPnl
Пользователь получает (минус кривая):  $997,50
Сравните с AMM v4 (идентично) и CPMM (уровень 0,25%, без комиссии создателя): CPMM даёт LP $2,10, протоколу $0,30, фонду $0,10.

Таблица сравнения

Stable AMMAMM v4CPMM index=0
Комиссия за торговлю0,25%0,25%0,25%
LP0,22%0,22%0,21%
Протокол0,03%0,03%0,03%
ФондНетНет0,01%
СоздательНетНет0 по умолчанию
Полная матрица: reference/fee-comparison.

Примечания для интеграторов

  • Котировки: Всегда читайте AmmInfo из цепи; не жёстко кодируйте комиссии. Поскольку SetParams теперь удалён, параметры комиссии на существующих пулах фактически зафиксированы.
  • Кривая и комиссии: Комиссия 0,25% независима от того, является ли кривая формулой (x·y=k в AMM v4) или таблицей поиска (Stable). Обе применяют одинаковые 0,25% к входящей сумме.
  • Без вознаграждений: Пулы Stable не поддерживают выпуск вознаграждений в пуле. Экосистемные фермы (Farm v3/v5/v6) обрабатывают стейкинг в другом месте.

Что дальше

Источники:
  • raydium-stable/program/src/state.rs (структура Fees)
  • Поля AmmInfo.fees в цепи на активных пулах mainnet