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

Единственный опубликованный уровень

В отличие от CPMM и CLMM, AMM v4 не имеет аккаунта AmmConfig. Комиссии хранятся непосредственно в структуре AmmInfo.fees каждого пула и фиксируются при создании пула. Значения по умолчанию, которые охватывают практически все активные пулы AMM v4: Обратите внимание, что pnl_numerator / pnl_denominator — это доля от комиссии своп, а не от объёма торговли — частая ошибка при чтении. Доля LP — это дополнение (88% комиссии = 0,22% объёма) и подразумевается неявно; отдельного числителя «доля LP» нет. Небольшое количество ранних пулов было создано с другими числителями; всегда читайте AmmInfo.fees перед цитированием. Нет комиссии фонда и нет комиссии создателя: это изобретения CPMM/CLMM, которых не было в исходной модели комиссий AMM v4.

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

При каждом своп пул взимает валовую торговую комиссию с суммы входа, затем распределяет:
  • lp_portion остаётся в хранилище и способствует следующему k. LP получают её, позже сжигая LP-токены.
  • pnl_portion увеличивает AmmInfo.state_data.need_take_pnl_coin или need_take_pnl_pc в зависимости от того, какая сторона является входом своп.
Тот же трюк сохранения инварианта, что и в CPMM: сумма PnL физически находится в хранилище, но вычитается из резервов, используемых в кривой, поэтому TakePnl перемещает токены без изменения цены.

PnL из OpenBook (историческое)

Удалено. Интеграция OpenBook была удалена из программы, поэтому второй поток PnL, описанный в этом разделе, больше не генерируется. Счётчики total_pnl_{coin,pc} теперь являются устаревшими полями — они содержат замороженные исторические значения и никогда не обновляются. Путь протокольной комиссии 0,03% (выше) не затронут и остаётся активным.
Исторически AMM v4 имел второй поток доходов, похожий на комиссию: когда его лимитные ордера на OpenBook заполнялись, пул мог быть на стороне тейкера заполнения и зарабатывать или платить спред маркет-мейкера/тейкера. Эти события PnL урегулировались в хранилищах пула во время MonitorStep, и программа кредитовала их в state_data.total_pnl_{coin,pc} как информационные счётчики.
  • Когда опубликованная сетка пула была правильно откалибрована вокруг цены кривой, заполнения OpenBook, как правило, были положительны по комиссии для пула — AMM эффективно создавал рынок на OpenBook и зарабатывал скидки маркет-мейкера.
  • Когда OpenBook приостанавливался или очередь событий заполнялась, пул мог остаться с устаревшими ордерами, которые заполнялись по невыгодным ценам, создавая отрицательный PnL. Эта операционная связь была одной из мотиваций для отхода от гибридного дизайна.
Этот PnL OpenBook не был тем же, что протокольная комиссия 0,03%. PnL OpenBook напрямую увеличивал резервы пула (принося пользу LP + протоколу пропорционально разделению комиссии), в то время как протокольная комиссия 0,03% была помечена специально для сбора администратором. Без стороны OpenBook единственное накопление комиссии сегодня — это 0,25% на AMM свопах и его разделение 22/3.

Сбор

Администратор (мультиподпись Raydium) вызывает WithdrawPnl для сбора need_take_pnl_* в аккаунты «владельца PnL» на уровне пула, настроенные в AmmConfig программы (другой, ограниченный программой конфиг — не CPMM-подобный AmmConfig для каждого пула). Сбор:
  1. Передаёт need_take_pnl_coin / need_take_pnl_pc из хранилищ пула в пункт назначения PnL.
  2. Обнуляет счётчики.
Больше нет шага урегулирования OpenBook. Если баланса хранилища недостаточно для покрытия накопленного PnL, инструкция теперь возвращает TakePnlError напрямую. Операция не перемещает кривую — LP не должны видеть никакого изменения цены при вызове WithdrawPnl. Обратите внимание, что макет аккаунта WithdrawPnl изменился в обновлении 2026-07 (см. инструкции).

Погашение комиссии LP

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

Визуализация: куда идёт 1000 USDC объёма

На своп с преобладанием USDC в размере $1000 против пула с параметрами по умолчанию:
Сравните с CPMM AmmConfig[0] (уровень 0,25%, без комиссии создателя): LP получает $2.10, протокол $0.30, фонд $0.10. CPMM вводит строку фонда, вырезая её из того, что была бы доля LP в эквивалентном уровне AMM v4.

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

Полная матрица в reference/fee-comparison.

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

  • Котировки. Получите AmmInfo через SDK или api-v3.raydium.io/pools/info/ids. Резервы теперь только из хранилища, поэтому вы можете котировать непосредственно по балансам хранилища — просто помните вычесть need_take_pnl_* (накопленный PnL находится в хранилище, но исключён из кривой).
  • Устаревшие параметры комиссии. В принципе SetParams может изменить swap_fee_numerator, но на практике мультиподпись Raydium не изменила значения по умолчанию ни для одного активного пула. Тем не менее, всегда читайте из состояния в блокчейне, а не жёстко кодируйте.
  • Нет вознаграждений. AMM v4 не поддерживает эмиссии вознаграждений на уровне пула. Экосистемные фермы наследия (Farm v3 / v5 / v6) — это эквивалент уровня стейкинга — см. products/farm-staking.

Что дальше

Источники: