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

Что такое Transaction API?

Raydium Transaction API (Route V2) — это серверный сервис, который создаёт сериализованные транзакции обмена Solana без необходимости поддерживать RPC-соединение на клиенте или включать весь Raydium SDK. Это значительно упрощает интеграцию для:
  • Веб-фронтенда, который не может запустить локального RPC-клиента
  • Мобильных приложений с ограниченными ресурсами
  • Автоматических торговых ботов
  • Агрегаторов и провайдеров кошельков
Вместо выполнения сложной маршрутизации пулов и конструирования транзакций на клиенте вы запрашиваете котировки обмена и построение транзакций у нашего API, а затем подписываете и транслируете результат, используя любой Solana RPC.

Обзор рабочего процесса

Transaction API разделяет задачи на две фазы:

1. Фаза вычислений: получение котировки

Вызовите /compute/swap-base-in или /compute/swap-base-out, чтобы получить ожидаемый результат обмена (или требуемый вход) на основе текущих состояний пулов. Этот endpoint доступен только для чтения и не требует подписей:
Ответ включает:
  • Ожидаемый объём выходного токена
  • Разбор маршрута (какие пулы и источники ликвидности используются)
  • Влияние на цену

2. Фаза транзакции: построение и подпись

После получения ответа от вычислительного endpoint передайте его (вместе с кошельком и конфигурацией) в /transaction/swap-base-in или /transaction/swap-base-out:
Ответ содержит:
  • Закодированную в base64 версионированную транзакцию, готовую к подписи
  • Адреса таблиц поиска адресов (если txVersion=V0)
Ваш клиент затем:
  1. Декодирует транзакцию
  2. Подписывает её с помощью keypair пользователя
  3. Транслирует её через любой Solana RPC
  4. Ожидает подтверждения

Вычислительные endpoint

GET /compute/swap-base-in

Случай использования: пользователь указывает сумму входа, мы вычисляем выход. Обязательные параметры запроса:
  • inputMint – адрес mint входного токена
  • outputMint – адрес mint желаемого токена
  • amount – сумма входа в lamports (наименьшая единица)
  • slippageBps – максимально допустимое проскальзывание в базовых пунктах (0–10000)
  • txVersionV0 или LEGACY
Опционально:
  • referrerBps – если у вас есть авторитет рефferrера, базовые пункты выхода, которые нужно собрать в виде комиссии рефferrера

GET /compute/swap-base-out

Случай использования: пользователь указывает желаемый выход, мы вычисляем требуемый вход. Обязательные параметры запроса:
  • inputMint, outputMint, amount (желаемый выход), slippageBps, txVersion
Примечание: нет базовых пунктов рефферера для base-out (ещё не реализовано).

Endpoint транзакций

POST /transaction/swap-base-in

Построение транзакции для фиксированной суммы входа. Обязательное содержимое:
  • wallet – адрес вашего подписывающего кошелька
  • swapResponse – весь объект вычислительного ответа
  • txVersion – версия транзакции
  • computeUnitPriceMicroLamports – плата за приоритет в микро-lamports
Опционально:
  • wrapSol – если true, обернуть нативный SOL для входа
  • unwrapSol – если true, развернуть WSOL в SOL на выходе
  • inputAccount – аккаунт токена для входа (обязателен, если не оборачивается SOL)
  • outputAccount – аккаунт токена для выхода
  • nonceInfo – долговечный nonce для автономной подписи
  • jitoInfo – параметры пакета защиты от MEV Jito
  • referrerWallet – кошелёк рефferера для сбора комиссии

POST /transaction/swap-base-out

Построение транзакции для фиксированной суммы выхода. Те же параметры, что и base-in, за исключением:
  • поле referrerInfo в настоящее время закомментировано (ещё не реализовано)

Конверт ответа

Все endpoint возвращают стандартный конверт:
При ошибке success имеет значение false, а msg содержит код ошибки (например, REQ_WALLET_ERROR, REQ_SLIPPAGE_BPS_ERROR).

Форма ответа транзакции

Успешный ответ транзакции выглядит так:

Пример интеграции

Вот типичный поток в псевдокоде:

Объяснение ключевых параметров

txVersion

  • V0: современная транзакция Solana с таблицами поиска адресов (ALTs). Меньший размер сериализации, более низкие комиссии.
  • LEGACY: формат транзакции до ALT. Больше, но работает со всеми RPC endpoint.
Выбирайте V0 по возможности; переходите на LEGACY, если ваш RPC или кошелёк не поддерживает ALT.

computeUnitPriceMicroLamports

Плата за приоритет для более быстрого включения в блок. Установите на 0 для отсутствия платы за приоритет или на более высокие значения (например, 1000) для конкуренции в перегруженных сетях. Единицы — микро-lamports за вычислительную единицу.

slippageBps

Максимальная толерантность к проскальзыванию в базовых пунктах. 100 = 1%, 50 = 0,5%.
  • Используйте более низкие значения (например, 25–50 bps) для большинства стабильных обменов
  • Увеличивайте для волатильных или низколиквидных пар

wrapSol и unwrapSol

  • wrapSol: если true, API оборачивает ваш нативный SOL в WSOL. inputAccount не требуется.
  • unwrapSol: если true, API разворачивает выходной WSOL обратно в нативный SOL. outputAccount не требуется.
Если оба имеют значение false, вы должны предоставить явные аккаунты токенов.

Сетевые endpoint

Коды ошибок

Распространённые сообщения об ошибках:

См. также