Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Начиная с обновления 2026-07, зависимость AMM v4 от OpenBook / Serum была удалена — ни одна инструкция больше не читает и не записывает состояние OpenBook. Аккаунты маркета ниже сохранены только как позиционные заполнители в старых макетах инструкций v1 (принимаются, но игнорируются) и как справочные поля на
AmmInfo. Используйте точки входа V2 для свопов, которые полностью их опускают. На этой странице аккаунты по-прежнему разделены на секции «принадлежащие пулу» и «OpenBook (устаревшие)» для чтения старых транзакций.Реестр
Пул AMM v4 записывает один привязанный маркет наAmmInfo при создании. Полная картина:
Примечание: префикс «serum» сохранён в IDL и названиях полей AMM v4 для обратной совместимости. Эти аккаунты больше не функциональны после удаления OpenBook.
AmmInfo
Корневой аккаунт состояния пула. Большой (≈ 752 байта), так как содержит ссылки на пул и OpenBook встроенными.
Макет структуры не изменился (совместим по байтам), поэтому существующие десериализаторы продолжают работать, но после удаления OpenBook поля, отмеченные как
УСТАРЕВШЕЕ выше, больше не записываются — счётчики объёма swap_* заморожены на последнем значении. Для аналитики объёма используйте логи торговли вместо этих полей. Только need_take_pnl_* и pool_open_time активно поддерживаются.coin_vault,pc_vault— хранилища SPL Token пула.coin— этоtoken_0по соглашению Serum/OpenBook (базовый),pc— этоtoken_1(котировка).coin_decimals,pc_decimals— соответствующие минтам.open_orders,target_orders,market— устаревшие справочные поля. По-прежнему присутствуют наAmmInfoи по-прежнему передаются позиционно в макетах инструкций v1, но программа больше их не читает и не проверяет. Точки входа V2 для свопов их опускают.fees.swap_fee_numerator / swap_fee_denominator— объединённая комиссия торговли. По умолчанию25 / 10_000 = 0.25%.status— битовая маска, ограничивающая операции. Устанавливается администратором черезAdminSetStatus.state_data.need_take_pnl_*— дельта между валовыми накопленными комиссиями и тем, что было снято.TakePnlобнуляет эти значения.
Проводка OpenBook
Удалена. Зависимость OpenBook / Serum была удалена из программы (обновление 2026-07). Аккаунты, описанные в этом разделе, больше не проверяются и не используются. Они остаются справочными полями на
AmmInfo и позиционными заполнителями в старых макетах инструкций v1. Используйте точки входа V2 для свопов (SwapBaseInV2 / SwapBaseOutV2), которые полностью пропускают эти аккаунты.SwapBaseIn / SwapBaseOut, Deposit или Withdraw, количество аккаунтов должно по-прежнему соответствовать старому макету (аккаунты маркета занимают свои исторические позиции), но их содержимое больше не проверяется — никакой CPI не выполняется против них. Новый код должен использовать варианты V2 для свопов, которые вообще не принимают эти аккаунты.
amm_open_orders пула — это принадлежащий OpenBook аккаунт, содержащий состояние лимитных ордеров пула на этом маркете: активные ордеры, урегулированные балансы, рефереры и т. д. amm_target_orders — со стороны AMM: он содержит предполагаемую сетку AMM (цена/размер для каждого слота ордера), чтобы программа могла дёшево сравнить с тем, что в настоящий момент выставлено, и разместить / отменить разницу.
Authority PDAs
Существует ровно один PDAamm_authority для всей программы AMM v4. Его seed тривиален (["amm authority"]), а его bump хранится на каждом AmmInfo. Эта authority подписывает все перемещения токенов для всех пулов AMM v4.
amm_authority выше фактически охватывает обе в дизайне этой программы; разные версии использовали разные получения, поэтому проверьте AmmInfo.nonce конкретного пула в коде).
Хранилища
Хранилища SPL Token пула — это стандартные аккаунты токенов, чейowner — это amm_authority. Не ATAs — их адреса — это специфичные PDAs, полученные при Initialize с seeds ["amm_associated_seed", coin_mint_or_pc_mint, market, amm_id]. Адреса хранятся на AmmInfo; получение — это одноразовая любопытство.
Token-2022 не поддерживается. Программа жёстко кодирует ID программы SPL Token для всех перемещений хранилищ. Попытка привязать пул AMM v4 к минту Token-2022 не удаётся при Initialize.
LP mint
Классический SPL Token mint, чья authority — этоamm_authority. Общее предложение отслеживает владение LP пулом; сжигание LP возвращает токены из обоих хранилищ пропорционально. Поскольку AMM v4 предшествует CPMM, в состоянии пула нет зеркала lp_supply — читайте предложение минта в цепи напрямую.
Битовая маска статуса
AmmInfo.status ограничивает операции. Биты (позиция может отличаться в разных версиях программы — подтвердите через исходный код):
Multisig Raydium устанавливает эти значения через
SetParams (с param = Status). (AdminCancelOrders был удалён.)
Наблюдение / оракул
AMM v4 не имеет выделенного аккаунта наблюдения. Другие протоколы, которым нужен TWAP в цепи, обычно потребляют пересечения книги OpenBook косвенно или читают вне цепи. Если вам нужен TWAP Raydium с поддержкой программы, используйте CPMM или CLMM.Получение аккаунтов пула с нуля
Поскольку AMM v4 не был разработан для детерминированных PDAs для каждой пары (это предшествует этому соглашению Solana), каноническийamm_id — это seeded keypair, полученный с:
amm_open_orders, amm_target_orders, amm_withdraw_queue, pool_temp_lp, pool_coin_token_account, pool_pc_token_account и lp_mint. SDK и API предварительно вычисляют эти значения для вас; см. raydium-sdk-v2’s Liquidity.getAssociatedPoolKeys.
На практике интеграторы читают полный набор аккаунтов пула из GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID> или из SDK. Ручное получение редко требуется.
Краткая справка по жизненному циклу
Пулы и их аккаунты сохраняются неопределённо долго. Даже если ликвидность полностью выведена,
AmmInfo остаётся.
Что читать где
- Математика и арифметика комиссий:
products/amm-v4/math. - Разделение комиссий и сравнение с CPMM/CLMM:
products/amm-v4/fees. - Списки аккаунтов инструкций:
products/amm-v4/instructions. - Получение аккаунтов OpenBook: Документация программы OpenBook (
github.com/openbook-dex/program).
- Программа Raydium AMM —
raydium-io/raydium-amm reference/program-addressesдля канонических ID программ- Протокол OpenBook / Serum для аккаунтов контрагента

