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.
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Informações de versão
- SDK:
@raydium-io/raydium-sdk-v2@0.2.42-alpha - Rede: mainnet-beta
- ID do programa roteador:
routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS - Verificado: abril de 2026
Exemplo 1: Roteamento baseado em SDK
Fonte:src/trade/routeSwap.ts
O SDK da Raydium abstrai a construção de rotas. Use as funções de negociação do SDK para compor uma rota multi-hop e executá-la através do roteador automaticamente.
Configuração
Construir um swap multi-hop
O roteamento em@raydium-io/raydium-sdk-v2 é exposto em raydium.tradeV2. A forma completa — buscando dados do pool, computando rotas, classificando por output e construindo a transação de swap — é mostrada abaixo; isto corresponde ao exemplo canônico em raydium-sdk-V2-demo/src/trade/routeSwap.ts.
Comportamento esperado
O SDK trata:- Descoberta de rotas através de AMM v4, CPMM, CLMM e Stable AMM.
- Derivação de contas (estados do pool, vaults, contas de observação, pré-criação de ATA).
- Empacotamento de instruções para o programa roteador (
Router) quando a rota é multi-hop, ou um swap de pool direto quando um único pool já oferece o melhor preço. - Aplicação de slippage através do parâmetro
slippageemgetAllRouteComputeAmountOut.
raydium.tradeV2.swap pode retornar mais de uma transaction — a primeira geralmente inicializa ATAs intermediárias e a segunda realiza o swap propriamente. Sempre passe sequentially: true para execute() para que elas se confirmem na ordem correta.
Exemplo 2: Construção manual de instruções (pseudocódigo semelhante ao Rust)
Se você precisa de controle mais fino ou está construindo um programa que faz CPI no roteador, construa as instruções manualmente. O exemplo abaixo usa tag 8 (SwapBaseIn) — a variante Current recomendada — e roteamento através de ATAs de propriedade do usuário de ponta a ponta.
Cenário: USDC → SOL (CPMM) → mSOL (CPMM)
Passo 1: Derivar as ATAs do usuário
Passo 2: Coletar contas para cada hop
Hop 1 é USDC/SOL no CPMM. Hop 2 é SOL/mSOL no CPMM.Passo 3: Construir a instrução
Passo 4: Enviar transação
Exemplo 3: Tratamento de erros
Erros comuns e como recuperar:ExceededSlippage
O output foi menor queminimum_amount_out. Tente novamente com tolerância de slippage mais alta ou obtenha uma nova cotação da rota.
SqrtPriceX64 (CLMM)
O preço de um hop CLMM saiu dos limites delimit_prices. Atualize os limites e tente novamente.
InvalidOwner
Uma ATA intermediária ou de output não é de propriedade do chamador. O roteador valida a propriedade a cada slot; certifique-se de que cada ATA que você passa foi derivada da carteira do usuário (não de nenhuma outra autoridade).Dicas e melhores práticas
Pré-criar ATAs intermediárias
Antes de rotear através de um novo token intermediário pela primeira vez, crie a ATA do usuário para que a rota não falhe na validação:CreateSyncNative (tag 5) — ele cria a ATA, transfere o SOL e sincroniza em uma única instrução.
Obter cotação antes de executar
Sempre consulte os pools e calcule o output esperado antes de construir a instrução:Use as variantes mais novas de instruções (8–9)
As tags 8 e 9 (SwapBaseIn e SwapBaseOut) são mais flexíveis com limit_prices. Prefira-as sobre as variantes legadas se você não precisar de validação de preço CLMM.
Próximos passos
products/routing/instructions— referência completa de instruções.products/routing/accounts— detalhes de derivação de contas.products/cpmm/code-demos— exemplos de swap CPMM para comparação.reference/program-addresses— IDs de programa canônicos e endereços devnet.
@raydium-io/raydium-sdk-v2on npmraydium-io/raydium-sdk-V2(open source)raydium-io/raydium-sdk-V2-demo— demonstrações oficiais de ponta a ponta incluindorouteSwap.ts- O código-fonte do programa AMM Routing não está disponível publicamente; verifique o ID do programa contra a API ao vivo e o bytecode on-chain


