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

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.

Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →

Что вам понадобится

  • Минт токена — токен, который вы хотите продать. Должен быть только что выпущен со следующими условиями:
    • Весь объём поставки получен вашим кошельком (чтобы вы могли пополнить кривую).
    • Право на минтинг отозвано перед запуском (иначе цену кривой можно манипулировать, выпустив новые токены).
  • Метаданные — название, символ, изображение, ссылки в соцсетях. Метаплекс-метаданные или аналогичные.
  • Кошелёк — ~1 SOL на плату за создание + финансирование хранилища + приоритетные комиссии (выпуск оплачивает лицо, инициирующее выпуск, а не вы).
  • Решения по:
    • Тип кривой (квадратичная или виртуальные резервы CPMM).
    • Порог выпуска.
    • Политика распределения LP (Сжечь / Заблокировать / Создателю).
    • Начальная цена и лимит.

Выбор кривой

LaunchLab поддерживает две семьи кривых:

Квадратичная (curve_type = 0)

Цена растёт квадратично с объёмом проданных токенов. Классическое ощущение «честного запуска» — ранние покупатели получают ценовое преимущество, поздние платят больше, цена растёт плавно.
price(s) = a * s^2 + b * s + c
где s — объём проданных токенов. Обычно a > 0 (выпуклая). Спред между начальной и конечной ценой определяется параметрами a, b, c и лимитом. Лучше для: новинок, мемов, проектов, ориентированных на сообщество.

Виртуальные резервы CPMM (curve_type = 1)

Имитирует constant-product AMM с использованием виртуальных резервов — кривая ведёт себя как CPMM с x * y = k, но пул инициализируется синтетическими токенами, которые никогда не выводятся.
price = virtual_quote_reserve / virtual_base_reserve
По мере покупок virtual_base_reserve снижается, а virtual_quote_reserve растёт — кривая выглядит идентично CPMM пулу после выпуска. Более гладкий переход. Лучше для: запусков, требующих предсказуемую ценовую непрерывность после выпуска.

Пошаговое прохождение через UI

На raydium.io/launchpad/create:
  1. Токен. Введите адрес минта. UI загружает метаданные и показывает их.
  2. Тип кривой. Выберите квадратичную или виртуальную CPMM; UI показывает предпросмотр ценовой диаграммы для каждой.
  3. Порог выпуска. По умолчанию: кривая заканчивается после продажи всего total_base_supply. Альтернатива: завершить при определённой сумме graduation_quote_amount (например, 85 SOL).
  4. Минт котировки. SOL (по умолчанию), USDC или любой другой минт. SOL — стандарт.
  5. Политика распределения LP:
    • Сжечь — LP токены отправляются на непригодный адрес при выпуске. Создатель не может вывести ликвидность; пользователи доверяют пулу навсегда.
    • Заблокировать — LP токены отправляются в escrow с временной блокировкой на lock_duration.
    • Создателю — LP токены отправляются создателю. Наиболее гибко, минимум минимизации риска.
    Уважаемые запуски обычно используют Сжечь.
  6. Проверка. UI резюмирует: ожидаемый диапазон цен, начальный сбор при полной продаже кривой, конфигурацию выпущенного CPMM.
  7. Подписать. Одна транзакция создаёт состояние запуска + базовое хранилище + хранилище котировки, переводит total_base_supply из вашего кошелька в базовое хранилище.

Программный процесс

import { Raydium, TxVersion } from "@raydium-io/raydium-sdk-v2";
import { PublicKey } from "@solana/web3.js";
import BN from "bn.js";

const raydium = await Raydium.load({ connection, owner, cluster: "mainnet" });

const baseMint  = new PublicKey("MyNewToken...");
const quoteMint = new PublicKey("So11111111111111111111111111111111111111112"); // SOL

const { execute, extInfo } = await raydium.launchpad.createLaunchpad({
  programId:      LAUNCHPAD_PROGRAM_ID,
  baseMint,
  quoteMint,
  curveType:      0,                           // quadratic
  totalBaseSupply:    new BN("1000000000000000000"),   // 1B tokens with 9 decimals
  graduationQuoteAmount: new BN("85000000000"),         // 85 SOL
  lpDisposalPolicy:   "Burn",
  priceCurveParams: {
    a: new BN("1"),
    b: new BN("0"),
    c: new BN("0"),
  },
  startTime: new BN(Math.floor(Date.now() / 1000) + 300),  // start in 5 min
  txVersion: TxVersion.V0,
  computeBudgetConfig: { units: 400_000, microLamports: 50_000 },
});

const { txId } = await execute({ sendAndConfirm: true });
console.log("Launch ID:", extInfo.launchId.toBase58());
console.log("Base vault:", extInfo.baseVault.toBase58());
console.log("Quote vault:", extInfo.quoteVault.toBase58());

Мониторинг перед выпуском

Отслеживайте активность через API:
const status = await fetch(
  `https://api-v3.raydium.io/launchpad/status?launchId=${launchId}`
).then(r => r.json());

console.log("Продано пока:",       status.baseSold.toString());
console.log("Собрано котировки:",      status.quoteRaised.toString());
console.log("Текущая цена:",     status.currentPriceUsd);
console.log("Прогресс выпуска:", status.graduationProgress, "%");
Или декодируйте состояние on-chain напрямую:
const launchState = await raydium.launchpad.fetchLaunchState(launchId);
console.log({
  baseSold:   launchState.baseSold.toString(),
  quoteHeld:  launchState.quoteHeld.toString(),
  graduated:  launchState.graduated,
});

Метрики для отслеживания

  • Доля продаж: процент проданных базовых токенов. Порог выпуска обычно составляет 80–100% от всего объёма.
  • Текущая цена: рассчитывается по кривой при текущем значении baseSold.
  • Уникальные покупатели: количество различных плательщиков по данным индексатора.
  • Соотношение покупок и продаж: ранние запуски видят интенсивное давление спроса, которое замедляется.
Если доля продаж менее 10% спустя 24 часа, рассмотрите, адекватна ли маркетинг. LaunchLab не спасает недокреплённые запуски.

Выпуск

Выпуск — это отдельная транзакция, которую может вызвать кто угодно (обычно первый, кто заметит, что порог достигнут, получает небольшой бонус graduation_bounty). От вас как создателя не требуется никаких действий помимо первоначальной настройки.

Что делает выпуск

  1. Читает балансы хранилищ.
  2. Закрывает кривую (больше никаких покупок/продаж против неё).
  3. Создаёт новый CPMM пул с балансами хранилищ как начальная ликвидность.
  4. Минтит начальные LP токены на основе балансов хранилищ.
  5. Распределяет LP токены согласно настроенной политике (Сжечь / Заблокировать / Создателю).
После выпуска CPMM пул работает и торги идут через обычную маршрутизацию Raydium.

Мониторинг выпуска

const launchState = await raydium.launchpad.fetchLaunchState(launchId);
if (launchState.graduated) {
  const cpmmPoolId = launchState.graduatedCpmmPool;
  console.log("Выпущен на CPMM пул:", cpmmPoolId.toBase58());
}

Ручной выпуск

Если никто не заявил бонус и вы хотите принудительно выпустить, вы можете сделать это сами:
await raydium.launchpad.graduate({
  launchId,
  txVersion: TxVersion.V0,
  computeBudgetConfig: { units: 600_000, microLamports: 100_000 },
});
Выпуск требует значительных CU; запланируйте 600k.

После выпуска

Проверьте CPMM пул

const pool = await raydium.cpmm.getPoolInfoFromRpc({ poolId: cpmmPoolId });
console.log("CPMM цена:", pool.poolInfo.price);
console.log("CPMM TVL:  ", pool.poolInfo.tvl);
CPMM пул должен содержать (приблизительно):
  • Баланс базового токена: total_base_supply - baseSold + остаток кривой.
  • Баланс котировочного токена: quoteRaised - graduationFee.
  • Цена: совпадает с последней ценой кривой.

Проверьте распределение LP

  • Сжечь: поставка LP минта показывает отправку на 1nc1nerator11111111111111111111111111111111 или похожий адрес.
  • Заблокировать: LP токены в escrow PDA с временной меткой разблокировки.
  • Создателю: LP токены в кошельке создателя.

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

Если вы настроили долю комиссии создателя, вызывайте периодически:
await raydium.launchpad.collectCreatorFees({
  launchId,
  txVersion: TxVersion.V0,
});
Комиссии начисляются на торги кривой до выпуска и на выпущенный CPMM пул после выпуска (если LP отправляется создателю).

Чеклист объявления

Объявление после выпуска должно включать:
  • Хеш транзакции выпуска.
  • ID нового CPMM пула.
  • Доказательство распределения LP (сжигание / блокировка / кошелёк создателя).
  • ETA покрытия агрегатором (кошельки обычно индексируют в течение 5 минут).
  • Проверка контракта токена (совпадение адреса минта во всех каналах объявления).

Ошибки

1. Право на минтинг не отозвано

Если baseMint.mintAuthority всё ещё под вашим контролем, вы можете выпустить новые токены и продать их в свою кривую. Запуски без отозванного права обычно помечаются как высокорискованные или непроверенные агрегаторами и сайтами листингов. Отзовите перед запуском.

2. Неправильные параметры кривой

Квадратичные кривые с очень высоким a делают ранние токены почти бесплатными (цена ≈ 0) и поздние — абсурдно дорогими. Кривые с очень низким a становятся почти линейными (теряют «бондинговое» ощущение). Сначала протестируйте параметры на devnet.

3. Порог выпуска слишком высокий

Если выпуск требует больше капитала, чем реальный спрос, кривая никогда не выпускается, и покупатели застревают с токенами, которые могут только продать обратно кривой (по худшим ценам). Выберите порог, который вы действительно можете достичь.

4. Мошенничество с котировочным минтом

Если ваш котировочный минт — это пользовательский токен (не SOL/USDC), пользователи ему не доверят. Придерживайтесь SOL или USDC для котировки.

5. Забыли пополнить базовое хранилище

SDK переводит totalBaseSupply из вашего кошелька при создании. Если у кошелька её нет, транзакция откатывается. Подтвердите баланс перед подписью.

6. Распределение LP = Сжечь необратимо

После отправки LP на 1nc1nerator никто не может вывести ликвидность, включая вас. В этом суть — минимизация риска. Не выбирайте Сжечь, если не уверены.

7. Уровень комиссии CPMM после выпуска

Выпущенный пул использует конфигурацию CPMM LaunchLab по умолчанию (0.25%). Если вам нужна 1% или 0.01%, вам нужно создать второй CPMM пул самостоятельно после выпуска и перенести ликвидность — неудобно и фрагментировано. Примите стандарт или запускайте через прямое создание CPMM вместо LaunchLab.

Ссылки

Источники:
  • Раздел launchpad SDK Raydium v2.
  • Статус запуска через конечные точки api-v3.raydium.io.