Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Stable AMM — это отдельная программа; её структура счетов на стороне пула напоминает AMM v4 (AmmInfo, хранилища, authority), и дополнительно содержит счет
ModelDataInfo, в котором хранится таблица поиска. На этой странице рассматриваются оба компонента.Реестр
Чистый AMM. Stable AMM хранит всю ликвидность в собственных хранилищах и не зависит от OpenBook. На ранних этапах в нём была реализована интеграция с OpenBook для маркет-мейкинга, но эта функция была неактивна в течение многих лет, и обновление от 2026-06-22 удалило оставшийся код. Счета
serum_* и amm_open_orders ниже являются устаревшими: они могут всё ещё появляться в старых транзакциях для обратной совместимости, но программа их не проверяет и не читает, а новые инструкции их полностью опускают.AmmInfo
Корневой счет состояния. Макет почти идентичен AMM v4 — параметры пула, десятичные разряды, комиссии, ссылки на хранилища и минты — с одним дополнением: поле model_data_key, указывающее на таблицу поиска.
model_data_key— адрес таблицы поиска. Должен передаваться в каждую инструкцию.fees— идентичная структура AMM v4. По умолчанию комиссия 0,25%, разделение 0,22% LP / 0,03% протокол.coin_vault,pc_vault— хранилища пула.status— битовая маска, управляющая включением/отключением swap/deposit/withdraw/crank.out_put.need_take_pnl_*— выводятся инструкциейWithdrawPnl.
ModelDataInfo
Таблица поиска. Большой разреженный массив точек цены и количества.
InitModelData (создавал счет) и UpdateModelData (заполнял элементы, устанавливая valid_data_count) — были удалены в обновлении от 2026-06-22. Таблицы в существующих пулах теперь зафиксированы. Во время выполнения оставшиеся вызываемые инструкции всё ещё их используют:
- Swap / deposit / withdraw вызывают функции поиска, которые выполняют двоичный поиск и интерполяцию в пределах
elements[0..valid_data_count].
DataElement
Атомарная запись в таблице. Должна быть отсортирована (x по возрастанию, y по убыванию, price по возрастанию) для корректной работы двоичного поиска.
Authority и хранилища
Аналогично AMM v4:amm_authority— это единый PDA на уровне программы, производный от seed["amm authority"]. Он владеет всеми хранилищами пула и подписывает их операции.- Хранилища — это счета SPL Token, владельцем которых является
amm_authority, а не ATA.
Битовая маска статуса
Идентична AMM v4. Управляет тем, включены ли swap/deposit/withdraw/crank.Отслеживание комиссий и PnL
Структураout_put отслеживает:
need_take_pnl_coin,need_take_pnl_pc— комиссии протокола, накопленные, но ещё не выведенные.WithdrawPnlвыводит их.swap_coin_in_amount,swap_pc_in_amountи т. д. — счётчики аналитики.
Размер счета
ModelDataInfo имеет большой размер (~1,2 МБ, так как 50 000 элементов × 24 байта на элемент). Поэтому создание пула Stable требует явного выделения ренты и предварительного выделения счета. SDK Raydium и инструменты обрабатывают это прозрачно; интеграторам редко нужно вручную выделять память.
Вывод счетов с нуля
Как и AMM v4, Stable AMM использует ключи с seed (не чистые PDA). Каноническая идентификация пула производится следующим образом:Что читать где
- Списки счетов инструкций:
products/stable/instructions. - Как интерполяция использует таблицу:
products/stable/math. - Структура комиссий и WithdrawPnl:
products/stable/fees. - Разделение OpenBook от 2026-06-22:
reference/changelog.

