Saltar al contenido principal
Si planeas rastrear esta compra con el Exit Intelligence Stream, debes conectar el stream antes de enviar la transacción de compra. El stream detecta nuevas posiciones observando llegadas de tokens en cadena en tiempo real. Si el stream no está conectado cuando la compra aterriza, la posición no será rastreada y no se generarán señales de salida para ella.

Endpoint

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

Encabezados

EncabezadoRequeridoDescripción
Content-TypeDebe ser application/json
x-api-keyTu clave API de LaserSell

Cuerpo de solicitud: BuildBuyTxRequest

CampoTipoRequeridoDescripción
mintstringDirección mint del token a comprar (base58).
user_pubkeystringTu clave pública de wallet (base58).
amountnumberNo*Cantidad legible a gastar (por ejemplo, 0.1 para 0.1 SOL, 10.0 para 10 USD1). Mutuamente excluyente con amount_in_total.
amount_in_totalnumberNo*Cantidad a gastar en unidades atómicas del activo de entrada (por ejemplo, lamports para SOL). Mutuamente excluyente con amount.
slippage_bpsnumberTolerancia máxima de slippage en puntos base (por ejemplo, 2000 = 20%).
inputstringNoActivo de entrada: "SOL" (por defecto) o "USD1".
modestringNoSugerencia de modo de enrutamiento. Valores válidos: "fast", "secure". Por defecto "fast".
send_modestringNoModo de envío de transacción: "helius_sender", "astralane" o "rpc".
tip_lamportsnumberNoTip opcional de priority fee en lamports.
partner_fee_recipientstringNoWallet receptora de comisión de partner (clave pública base58).
partner_fee_bpsnumberNoComisión de partner en puntos base (máximo 50 = 0.5%). Mutuamente excluyente con partner_fee_lamports.
partner_fee_lamportsnumberNoComisión de partner en lamports fijos de SOL (máximo 50,000,000). Mutuamente excluyente con partner_fee_bps.
* Exactamente uno de amount o amount_in_total debe proporcionarse. amount se convierte automáticamente a unidades atómicas según el activo de input (SOL: 10^9, USD1: 10^6).

Respuesta: BuildTxResponse

CampoTipoDescripción
txstringVersionedTransaction de Solana sin firmar codificada en base64.
routeobjectMetadatos opcionales de enrutamiento.
debugobjectInformación de depuración opcional.

Ejemplos con curl

Usando amount legible:
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"
  }'
Usando amount_in_total atómico:
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"
  }'

Ejemplos de 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);

Respuestas de error

Ver Manejo de errores para la especificación completa del formato de error y la lógica de errores reintentables.