Перейти к основному содержанию
Если вы планируете отслеживать эту покупку с помощью Exit Intelligence Stream, вы должны подключить поток до отправки транзакции покупки. Поток обнаруживает новые позиции, наблюдая за поступлениями токенов в блокчейне в реальном времени. Если поток не подключён, когда покупка попадает в блокчейн, позиция не будет отслеживаться и для неё не будут генерироваться сигналы выхода.

Эндпоинт

POST https://api.lasersell.io/v1/buy

Заголовки

ЗаголовокОбязательныйОписание
Content-TypeДаДолжен быть application/json
x-api-keyДаВаш API ключ LaserSell

Тело запроса: BuildBuyTxRequest

ПолеТипОбязательноеОписание
mintstringДаАдрес минта токена для покупки (base58).
user_pubkeystringДаПубличный ключ вашего кошелька (base58).
amountnumberНет*Читаемая сумма для траты (например, 0.1 для 0.1 SOL, 10.0 для 10 USD1). Взаимоисключающе с amount_in_total.
amount_in_totalnumberНет*Сумма в атомарных единицах входного актива (например, лампорты для SOL). Взаимоисключающе с amount.
slippage_bpsnumberДаМаксимальный допуск проскальзывания в базисных пунктах (например, 2000 = 20%).
inputstringНетВходной актив: "SOL" (по умолчанию) или "USD1".
modestringНетПодсказка режима маршрутизации. Допустимые значения: "fast", "secure". По умолчанию "fast".
send_modestringНетРежим отправки транзакции: "helius_sender", "astralane" или "rpc".
tip_lamportsnumberНетНеобязательная приоритетная комиссия в лампортах.
partner_fee_recipientstringНетКошелёк получателя партнёрской комиссии (base58 pubkey).
partner_fee_bpsnumberНетПартнёрская комиссия в базисных пунктах (макс. 50 = 0.5%). Взаимоисключающе с partner_fee_lamports.
partner_fee_lamportsnumberНетПартнёрская комиссия фиксированная в лампортах SOL (макс. 50 000 000). Взаимоисключающе с partner_fee_bps.
* Должно быть указано ровно одно из amount или amount_in_total. amount автоматически конвертируется в атомарные единицы на основе входного актива (SOL: 10^9, USD1: 10^6).

Ответ: BuildTxResponse

ПолеТипОписание
txstringЗакодированная в Base64 неподписанная Solana VersionedTransaction.
routeobjectНеобязательные метаданные маршрутизации.
debugobjectНеобязательная отладочная информация.

Примеры curl

С читаемым amount:
curl -X POST https://api.lasersell.io/v1/buy \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "mint": "TOKEN_MINT_ADDRESS",
    "user_pubkey": "YOUR_WALLET_PUBKEY",
    "amount": 0.1,
    "slippage_bps": 2000,
    "input": "SOL"
  }'
С атомарным amount_in_total:
curl -X POST https://api.lasersell.io/v1/buy \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "mint": "TOKEN_MINT_ADDRESS",
    "user_pubkey": "YOUR_WALLET_PUBKEY",
    "amount_in_total": 100000000,
    "slippage_bps": 2000,
    "input": "SOL"
  }'

Примеры SDK

import { ExitApiClient, type BuildBuyTxRequest } from "@lasersell/lasersell-sdk";

const client = ExitApiClient.withApiKey("YOUR_API_KEY");

const request: BuildBuyTxRequest = {
  mint: "TOKEN_MINT_ADDRESS",
  user_pubkey: "YOUR_WALLET_PUBKEY",
  amount: 0.1, // 0.1 SOL
  slippage_bps: 2_000,
};

const response = await client.buildBuyTx(request);
console.log("Unsigned tx (base64):", response.tx);

Ответы об ошибках

См. Обработка ошибок для полной спецификации конверта ошибок и логики повторных попыток.