Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Stable AMM — это отдельная программа; её структура счетов на стороне пула напоминает AMM v4 (AmmInfo, хранилища, authority), и дополнительно содержит счет
ModelDataInfo, в котором хранится таблица поиска. На этой странице рассматриваются оба компонента.Реестр
Чистый AMM. Stable AMM хранит всю ликвидность в собственных хранилищах и не зависит от OpenBook. На ранних этапах в нём была реализована интеграция с OpenBook для маркет-мейкинга, но эта функция была неактивна в течение многих лет, и обновление от 2026-06-22 удалило оставшийся код. Счета
serum_* и amm_open_orders ниже являются устаревшими: они могут всё ещё появляться в старых транзакциях для обратной совместимости, но программа их не проверяет и не читает, а новые инструкции их полностью опускают.| Категория | Счет | Владелец | Роль |
|---|---|---|---|
| Пул | AmmInfo | Программа Stable | Состояние пула, ссылки на хранилища и счет данных модели. |
| Пул | amm_authority | Программа Stable | Управляемый программой PDA, подписывающий операции с хранилищами. Общий для всех пулов Stable AMM. |
| Пул | amm_target_orders | Программа Stable | Счет сетки на стороне пула (сохранён в макетах; больше не управляет заказами OpenBook). |
| Пул | pool_coin_token_account | SPL Token | Хранилище пула на стороне coin. |
| Пул | pool_pc_token_account | SPL Token | Хранилище пула на стороне pc. |
| Пул | lp_mint | SPL Token | Взаимозаменяемый минт LP. |
| Модель | model_data_account | Программа Stable | Таблица поиска: 50 000 × DataElement. |
| Устаревшее | amm_open_orders | OpenBook | Старый счет OpenOrders пула в OpenBook. Не используется. |
| Устаревшее | serum_market | OpenBook | Рынок OpenBook. Не используется. |
| Устаревшее | serum_bids, serum_asks | OpenBook | Очереди заявок и предложений. Не используются. |
| Устаревшее | serum_event_queue | OpenBook | Очередь событий. Не используется. |
| Устаревшее | serum_coin_vault, serum_pc_vault | SPL Token | Хранилища рынка OpenBook. Не используются. |
| Устаревшее | serum_vault_signer | OpenBook | Подписант хранилища на уровне рынка. Не используется. |
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.

