Saltar para o conteúdo principal
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
A Trade API é um conjunto simples de endpoints em transaction-v1.raydium.io (e alguns caminhos espelhados em api-v3.raydium.io) que fornece uma cotação de swap, constrói uma transação Solana pronta para assinar e a retorna em uma única rodada. É a mesma superfície que a UI do Raydium usa. Use-a quando você quer roteamento Raydium sem agrupar o TS SDK — backends, manipuladores de Blinks, bots de Telegram, apps de terceiros.

Quando usar a Trade API vs o SDK

O SDK é mais rico; a Trade API é mais simples. Ambos envolvem os mesmos programas CPMM/CLMM/AMM v4 subjacentes, então o swap na cadeia resultante é idêntico.

Os três endpoints

1. GET /compute/swap-base-in

Dado um valor de entrada, escolha uma rota e retorne uma cotação.
Resposta:
O campo id é um identificador de cotação opaco passado para o próximo endpoint. A cotação é estável por ~30 segundos; além disso, re-cotize.

2. GET /compute/swap-base-out

Forma invertida: “Quero receber exatamente N da saída; cotize-me a entrada necessária.”
Forma de resposta simétrica a swap-base-in; semântica do campo amount inverte.

3. POST /transaction/swap-base-in e /transaction/swap-base-out

Pega a cotação da etapa 1 e retorna uma transação versionada pronta para assinar:
Resposta:
Múltiplas transações podem ser retornadas se o swap requer setup (ex: criar ATAs, envolver SOL). Assine e envie-as em ordem.

Exemplo mínimo de ponta a ponta (Python)

Isso são ~20 linhas. O equivalente com o TS SDK é ~30, mas oferece controle mais rico (seletor de rota personalizado, orçamento de Compute Unit por pool, metadados de erro detalhados).

Roteamento e seleção de pool

A Trade API roteia entre todos os programas Raydium (CPMM, CLMM, AMM v4) e escolhe a melhor execução para o tamanho cotado. Características:
  • Multi-hop suportado. Um swap SOL→USDC pode rotear através de wSOL→JUP→USDC se for mais barato.
  • Divisão de múltiplos pools do mesmo programa não suportada. Uma cotação única passa por exatamente um caminho; se você quer dividir tamanho entre pools, faça lado cliente (duas cotações, duas txs).
  • Estável vs concentrado. O roteador prefere usar CLMM quando a liquidez in-range é adequada, recorrendo a CPMM para pares de cauda longa.
  • Inclusão AMM v4. Pools AMM v4 são incluídos no roteamento mas apenas escolhidos quando oferecem melhor preço que alternativas CPMM/CLMM.
Para forçar roteamento através de um pool específico, use o SDK — a Trade API não expõe um parâmetro de pin de pool.

Parâmetro de referrer

Acrescente &referrer=<wallet_pubkey> ao endpoint compute para tomar um corte de referência de 1% no swap. Veja user-flows/referrals-and-blinks para semântica. Quando presente:
  • referrerAmount na resposta de cotação é a quantidade absoluta (em mint de entrada) que será roteada para o referrer.
  • A transação final contém uma transferência de token SPL extra para a ATA do referrer.

Taxas de prioridade

computeUnitPriceMicroLamports na solicitação de build define a taxa de prioridade para a transação retornada. Regra de ouro:
  • 50_000 (0.00005 lamports/CU × 200k CU ≈ 0.00001 SOL): mínimo, bom para momentos sem congestionamento.
  • 200_000: congestionamento moderado.
  • 1_000_000: congestionamento pesado.
Para ajuste adaptativo, chame getRecentPrioritizationFees em seu RPC primeiro e passe a mediana. Veja integration-guides/priority-fee-tuning.

Versões de transação

  • "V0" retorna uma transação versionada (MessageV0) com uma lookup table para contas comuns. Menor, mais rápida. Recomendado.
  • "LEGACY" retorna uma transação legada. Maior; use apenas se sua carteira/infra não trata V0.

Formas de erro

A API retorna HTTP 200 com success: false para erros lógicos, HTTP 4xx/5xx para erros de transporte / infraestrutura. Erros lógicos comuns:
  • "No route found" — nenhum caminho entre os dois mints neste tamanho. Reduza amount ou reconsidere o par.
  • "Insufficient liquidity" — uma rota existe mas ultrapassaria slippageBps. Amplie slippage.
  • "Quote expired"swapResponse tem >30s. Re-cotize.
  • "Unsupported mint" — mint não está no universo Raydium (não listado, ou em um programa descontinuado).

Limites de taxa

  • Endpoints de cotação: 120 req/min por IP.
  • Endpoints de build: 60 req/min por IP (custo mais alto no servidor).
  • Exceder limites retorna HTTP 429 com cabeçalho Retry-After.
Para maior throughput contacte relações com desenvolvedores do Raydium; chaves de nível agregador estão disponíveis.

Padrão arquitetural para integradores

Tudo é stateless — a única coisa que você precisa passar entre a chamada de cotação e a chamada de build é o corpo da resposta de cotação em si.

Para onde ir a seguir

Fontes:
  • Endpoints live transaction-v1.raydium.io.
  • Inspeção de aba de rede da UI Raydium (mesma superfície consumida).