Перейти к основному содержанию

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Источник истины. На этой странице адреса программ указаны только один раз. Все остальные страницы ссылаются на неё. При изменении идентификатора обновляйте его только здесь, и все ссылки на сайте останутся согласованными.Всегда проверяйте значения через live API (https://api-v3.raydium.io/main/info) перед подписанием реальных транзакций.

Mainnet-beta

Основное правило: если программный ID, который вы встретили, не совпадает с таблицей ниже, не подписывайте транзакцию. Несоответствие программного ID — это самый простой способ потерять средства в Solana.

On-chain программы

ПрограммаProgram IDИсточник
AMM v4 (Hybrid AMM + OpenBook)675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8raydium-amm
CPMM (Standard AMM)CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1Craydium-cp-swap
CLMM (Concentrated Liquidity)CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqKraydium-clmm
Stable AMM (StableSwap-style curve)5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3hисходный код не публичен
Farm v3 (legacy RAY staking)EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Qисходный код не публичен
Farm v5 (legacy ecosystem farms)9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4zисходный код не публичен
Farm v6 (current ecosystem farms)FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhGисходный код не публичен
LaunchLabLanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3ujисходный код не публичен
AMM Routing (Raydium’s on-chain router)routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xSисходный код не публичен
Burn & Earn / LP LockLockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwEисходный код не публичен
Примечания:
  • AMM v4 и Farm v3/v5 сохраняются для существующих пулов и позиций. Интерфейс Raydium и SDK направляют создание новых пулов и новых экосистемных ферм на CPMM, CLMM и Farm v6 соответственно — см. protocol-overview/versions-and-migration.
  • ID Farm v3 выше также служит программой одноактивного стейкинга $RAY. Поведение идентично Farm v3 для LP стейкинга.
  • Stable AMM — это отдельная программа, на которую может указывать программа AMM Routing наряду с AMM v4, CPMM и CLMM. Ликвидность невелика по сравнению с тремя другими программами, и SDK не предоставляет для неё API первого класса; интеграторы, направляющие трафик через неё, обычно делают это через маршрутизатор.
  • Доступность исходного кода. Из on-chain программ выше только raydium-amm (AMM v4), raydium-cp-swap (CPMM) и raydium-clmm (CLMM) поставляются с публичными репозиториями исходного кода в github.com/raydium-io. Stable AMM, LaunchLab, AMM Routing, Burn & Earn / LP Lock и программы Farm не являются открытыми — проверяйте их через live API, on-chain bytecode и опубликованные IDL в raydium-io/raydium-idl.

Общая админ-авторитет

Все программы на основе Anchor (CLMM, CPMM, LaunchLab, Lock) используют один жёстко закодированный публичный ключ админа для контроля доступа на уровне инструкций к админ-функциям (например CreateAmmConfig или UpdatePoolStatus):
КластерАдмин
mainnet-betaGThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ
devnetDRayqG9RXYi8WHgWEmRQGrUWRWbhjYWYkCRJDd6JBBak
Авторитеты на уровне аккаунта (например protocol_owner, fund_owner на AmmConfig CPMM/CLMM или кошельки миграции на GlobalConfig LaunchLab) хранятся on-chain и могут отличаться от админа программы. Читайте их непосредственно из соответствующего конфиг-аккаунта перед отправкой критичных транзакций.

Общие конфиги и PDA соглашения

Несколько программ Raydium предоставляют конфиг-аккаунты, публичные ключи которых стабильны и указаны в публичном API. Предпочитайте поиск через API вместо жёсткого кодирования:
# CPMM fee configs (returns an array of {id, index, tradeFeeRate, ...})
GET https://api-v3.raydium.io/main/cpmm-config

# CLMM fee configs
GET https://api-v3.raydium.io/main/clmm-config
Параметры комиссии AmmConfig CPMM по умолчанию с индексом 0 (стандартный пул 0.25%) для справки:
ПолеЗначениеЗначение
trade_fee_rate25000.25% от объёма торговли
protocol_fee_rate12000012% от комиссии за торговлю (не объёма) направляется протоколу
fund_fee_rate400004% от комиссии за торговлю направляется фонду multisig
creator_fee_rate5000.05% от объёма торговли создателю пула (опционально)
См. products/cpmm/fees для понимания того, как комиссии распределяются, и reference/fee-comparison для матрицы сравнения продуктов.

PDA seeds

Приведённые ниже seeds являются каноническими и используются как SDK, так и on-chain CPI. Всегда вычисляйте PDA; не жёстко кодируйте полученные адреса.
// CPMM — all seeds are static ASCII strings unless noted.
const [ammConfig]   = PublicKey.findProgramAddressSync(
  [Buffer.from("amm_config"), u16ToBytes(index)],
  CPMM_PROGRAM_ID,
);
const [authority]   = PublicKey.findProgramAddressSync(
  [Buffer.from("vault_and_lp_mint_auth_seed")],
  CPMM_PROGRAM_ID,
);
const [poolState]   = PublicKey.findProgramAddressSync(
  [Buffer.from("pool"), ammConfig.toBuffer(), token0Mint.toBuffer(), token1Mint.toBuffer()],
  CPMM_PROGRAM_ID,
);
const [lpMint]      = PublicKey.findProgramAddressSync(
  [Buffer.from("pool_lp_mint"), poolState.toBuffer()],
  CPMM_PROGRAM_ID,
);
const [vault0]      = PublicKey.findProgramAddressSync(
  [Buffer.from("pool_vault"), poolState.toBuffer(), token0Mint.toBuffer()],
  CPMM_PROGRAM_ID,
);
const [vault1]      = PublicKey.findProgramAddressSync(
  [Buffer.from("pool_vault"), poolState.toBuffer(), token1Mint.toBuffer()],
  CPMM_PROGRAM_ID,
);
const [observation] = PublicKey.findProgramAddressSync(
  [Buffer.from("observation"), poolState.toBuffer()],
  CPMM_PROGRAM_ID,
);
token0Mint / token1Mint должны быть отсортированы в порядке байт публичного ключа (token0 < token1) перед хешированием. Ошибка здесь приведёт к валидному PDA для несуществующего пула. Эквивалентные CLMM seeds следуют тому же стилю; см. products/clmm/accounts.

Devnet

ПрограммаProgram ID
AMM v4DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav
CPMMDRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb
CLMMDRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH
Stable AMMDRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m
LaunchLabDRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6
AMM RoutingDRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd
Burn & Earn / LP LockDLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC
Farm v3 / v5 / v6Не публикуется надежно для devnet — проверьте через live API (https://api-v3-devnet.raydium.io/main/info) перед использованием.
REST API base для devnet: https://api-v3-devnet.raydium.io/ (та же схема маршрутов, что и на mainnet).

Как проверить адрес on-chain

  1. Solana Explorer. Вставьте адрес в explorer.solana.com и убедитесь, что он помечен как Program с текущей авторитетом обновления. На mainnet-beta должны отображаться деплои, подписанные авторитетом обновления Raydium.
  2. CLI. Используйте solana program show <PROGRAM_ID> -u mainnet-beta для проверки слота деплоя, BPF loader, авторитета обновления и длины данных. Запишите это в ваш runbook.
  3. IDL attachment. Запросите on-chain IDL с помощью anchor idl fetch <PROGRAM_ID> --provider.cluster mainnet. Поле address в IDL должно совпадать. Те же IDL зеркалируются на github.com/raydium-io/raydium-idl — сравните on-chain IDL с репозиторием перед тем как доверять ему.
  4. Авторитеты конфига/админа. Для конфиг-аккаунтов CPMM/CLMM прочитайте поле owner/protocol_owner и убедитесь, что оно совпадает с текущим multisig Raydium, опубликованным в security/admin-and-multisig.
Если какая-либо из четырёх проверок выше не согласуется с этой страницей, рассматривайте эту страницу как неправильную и откройте проблему перед написанием нового кода для этих адресов.

Обновление этой страницы

  • Изменения в программных ID являются критичными для безопасности. Не выпускайте изменение программного ID без (a) ссылки на объявление Raydium, (b) добавления записи в reference/changelog и (c) проверки всех ссылок в документации, чтобы убедиться, что ни одна страница всё ещё не ссылается на старое значение.
  • Deprecated программы остаются в таблице с примечанием о статусе, а не удаляются — существующие пулы всё ещё разрешаются через старую программу.
Источники: