Skip to main content
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Информация о версии.
  • SDK: @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • Кластер: Solana mainnet-beta
  • Program ID: см. reference/program-addresses
  • Последняя проверка: 2026-04
Зафиксируйте версию SDK в package.json. Интерфейс bonding curve эволюционировал между минорными релизами.

Подготовка

Примеры здесь повторяют файлы из raydium-sdk-V2-demo/src/launchpad. Инициализация следует шаблону из репо демо config.ts.template:

Создание запуска

Источник: src/launchpad/createMint.tscreateBonkMintApi.ts для варианта Bonk через API)
Замечания:
  • initialK — масштабирующий коэффициент для квадратичной кривой. Настройте его под целевую цену открытия CPMM при graduation. См. products/launchlab/bonding-curve для вывода.
  • SDK создаёт базовый mint, PDA метаданных и оба хранилища в одной транзакции. При длинном URI метаданных она может превысить 1232 байта; в таком случае SDK разбивает процесс на две транзакции.
  • После Initialize запуск не торгуется, пока не наступит openTime. Установите openTime на минуту-две вперёд, чтобы дать фронт-раннерам меньше шансов схватить первую покупку.

Получение состояния запуска

getLaunchById возвращает декодированное состояние LaunchState плюс вычисленную долю «прогресса к graduation» как Decimal.

Покупка — точное количество quote на входе

Источник: src/launchpad/buy.ts
computeBuyBase зеркалит on-chain Newton solver (квадратичная кривая) или closed-form CPMM-inverse (curve_type 1). Используйте его для заполнения UI-поля «You receive».

Покупка — точное количество base на выходе

Полезна для интерфейсов «купить ровно X токенов». Отклоняет с ExceededSlippage, если кривая сместилась настолько, что требуемое количество quote превышает maximumQuoteIn.

Продажа

Источник: src/launchpad/sell.ts
Путь sell на кривой симметричен путю buy: уменьшение base_sold на baseIn возвращает quote_out, равный интегрированной площади под кривой между base_sold − baseIn и base_sold, минус комиссия sell.

Автоматическая graduation при пересечении порога

SDK цепляет инструкцию Graduate внутрь транзакции buy*, когда обнаруживает, что состояние после покупки пересечёт порог:
Поскольку Graduate разрешена всем, любой (включая MEV бота) может попытаться закрепить первый Graduate после пересечения порога — обычно секунды спустя, не минуты. Первый участник просто платит арендную плату за аккаунты пула CPMM; других преимуществ они не получают.

Ручная Graduate

Если autoGraduate была отключена или транзакция пересечения порога не удалась, вы можете запустить graduation отдельно:
Отклоняет с NotAtThreshold, если quote_reserve_real < quote_reserve_target во время отправки. Безопасна для повторений — второй Graduate после успеха отклоняет с NotActive.

Сбор комиссий создателя

Источник: src/launchpad/claimCreatorFee.ts (один mint) и collectAllCreatorFees.ts (пакетный)
Переводит накопленное количество quote в счёт комиссии создателя на ATA создателя по mint quote. Можно вызывать до или после graduation; используйте периодически, а не дожидайтесь накопления огромного баланса.

Отслеживание жизненного цикла запуска

Собирая всё вместе, мониторинговый скрипт может выглядеть так:

Rust CPI

Вызов LaunchLab из собственной Anchor программы редок (большинство интеграций запусков только с TS-стороны). Если нужно, программа поставляется крейтом Anchor raydium_launchlab с cpi::accounts::Buy, cpi::accounts::Sell и т. д. — паттерн повторяет примеры CPMM / CLMM CPI. См. sdk-api/rust-cpi для обобщённого шаблона, когда этот сайт будет заполнен.

Подводные камни

  • Ошибка в арифметике разделения комиссий. Если total_share не точно равен lp_share + creator_share + protocol_share, Initialize отклоняет с InvalidFeeShares. Установите totalShare равным сумме.
  • Использование non-allowed quote mint. launch_config.allowed_quote_mints — фиксированный список; передача любого другого mint отклоняет. Сначала проверьте с raydium.launchpad.getConfig().
  • Размер метаданных. Длинные строки uri выводят Metaplex CPI за бюджет. Держите uri под ~200 символов — большинство CDN-хостированных JSON метаданных легко подходят.
  • Гонка graduation. Автоматизированные боты мониторят quote_reserve_real и делают фронт-ран Graduate в течение слота или двух после пересечения порога. Это безопасно — это стоит им только арендную плату — но это означает, что ваш UI должен рассматривать переходы status как быстрые события.

Что дальше

Источники:
  • Raydium SDK v2
  • Исходный код программы Raydium LaunchLab