Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Banner de versão. Esta página documenta
@raydium-io/raydium-sdk-v2@0.2.64-alpha, a versão fixada que todos os exemplos de código neste site usam. O SDK está em pré-1.0 e a superfície de tipos evoluiu entre releases — fixe sua versão.A versão foi atualizada de 0.2.42-alpha em 2026-09-09 junto com as atualizações de programa: 0.2.64-alpha é o release atual do SDK. O repositório raydium-sdk-V2-demo que as páginas de exemplos de código vinculam instala 0.2.62-alpha, então fixe qualquer um se estiver seguindo um demo verbatim. Os demos nessas páginas foram executados pela última vez contra 0.2.42-alpha (2026-04); suas assinaturas de chamada foram re-verificadas contra a fonte 0.2.64-alpha em 2026-09-09, mas trate qualquer discrepância como um bug de documentação e abra uma issue.Instalar
.d.ts junto com seu artefato JS. Toolchain mínimo: Node 18+, TypeScript 5.0+, moduleResolution: "bundler" ou "node16".
Inicializar
O ponto de entrada éRaydium.load:
Raydium.load é assíncrono porque busca um pequeno payload /config de api-v3.raydium.io na inicialização (listando contas AmmConfig atuais, níveis de taxa, etc.). Defina disableFeatureCheck: true em ambientes offline; você terá que fornecer esses valores manualmente para alguns builders.
As quatro fachadas de módulos
Uma vez carregado, o objetoraydium expõe quatro fachadas de módulos, uma por superfície de produto:
trade e token como utilitários de suporte.)
Construtores de transações
Toda função mutante retorna um builder em vez de executar imediatamente:execute— uma função de conveniência que assina + envia. Equivalente abuilder.execute.builder— a instânciaTxBuildercom todas as instruções e signatários acumulados. Chame.build()para obter umVersionedTransaction[]; útil quando você precisa injetar suas próprias instruções ou assinar com signatários externos.transaction/innerTransactions— os arrays de instruções brutos. Use ao construir transações multi-programa compostas.extInfo— extras específicos do produto. Por exemplo,createPoolretornaextInfo.poolId;createLaunchpadretorna o novo PDA de estado de lançamento.
txVersion controla o formato de transação legado vs V0. V0 (tabelas de lookup de endereço) é a recomendação padrão — permite que swaps maiores caibam em uma única transação.
Por que builders assíncronos?
Quase todo builder busca internamente o estado on-chain: informações de pool (para quotes), propriedade do programa de token (para roteamento Token-2022 vs SPL), aluguel de isenção de conta (para criação de ATA), etc. O SDK faz cache agressivamente, mas a primeira chamada para um novo pool envolve round-trips de RPC. Mantenha uma instânciaraydium de longa duração para evitar re-buscar.
Adições do módulo CLMM (release mais recente)
A fachada CLMM ganhou superfícies para os novos recursos de taxa dinâmica, taxa de um lado e ordem limitada:raydium.clmm.createCustomizablePool— superconjunto decreatePoolque aceitacollectFeeOn,enableDynamicFeeedynamicFeeConfigId. Use isso para qualquer novo pool que precise dos novos controles;createPoolclássico continua funcionando para pools com taxa padrão.raydium.clmm.openLimitOrder— abra uma ordem limitada de um único tick em um pool que as suporte. LevapoolInfo,poolKeys,limitOrderConfig(de/main/clmm-limit-order-config),inputMint,inputAmounte otickalvo.raydium.clmm.increaseLimitOrder/decreaseLimitOrder— ajuste a porção não preenchida de uma ordem existente. Diminuir reverte em uma ordem totalmente preenchida comInvalidOrderPhase.raydium.clmm.settleLimitOrder/settleAllLimitOrder— varre a saída preenchida para o ATA do proprietário. Tanto o proprietário da ordem quanto o keeperlimit_order_admindo pool podem chamá-los.raydium.clmm.closeLimitOrder/closeAllLimitOrder— feche ordens totalmente liquidadas para recuperar aluguel.raydium.api.getClmmDynamicConfigs()/getClmmLimitOrderConfigs()— helpers REST que acessam os novos endpoints/main/clmm-dynamic-confige/main/clmm-limit-order-config.
utils/ para libraries/. Código que importava de @raydium-io/raydium-sdk-v2/utils/... deve mudar para @raydium-io/raydium-sdk-v2/libraries/.... O barrel do pacote de nível superior permanece inalterado, então a maioria dos usuários nunca vê a renomeação.
Passo a passo completo em TypeScript vivem em products/clmm/code-demos.
Armadilhas comuns
1. Incompatibilidade de cluster
A configuração de inicialização do SDK é específica do cluster. Misturarcluster: "mainnet" com uma Connection devnet causa roteamento silencioso incorreto: o SDK faz quotes contra AmmConfig mainnet mas envia para devnet. Sempre passe ambos.
2. Esquecer de pré-criar ATAs
Na primeira interação com um mint, a Conta de Token Associada do usuário pode não existir. O SDK pré-anexa automaticamente uma instruçãoAssociatedTokenAccount::create quando detecta um ATA ausente, o que custa uma pequena quantidade de aluguel. Se sua carteira está com pouco SOL, isso falhará silenciosamente. Verifique e financie antes de tentar novamente.
3. poolInfo obsoleto
poolInfo é um snapshot em cache. Se o estado do pool mudou desde que você o buscou (um grande trade moveu o preço, digamos), o minAmountOut do swap pode ser computado contra o estado antigo e cair abaixo do amount-out on-chain, revertendo. Re-busque poolInfo imediatamente antes de construir transações de alto valor, ou use computeAmountOut do SDK que re-consulta as reservas.
4. Taxas de prioridade
O SDK não adiciona preços de unidade de computação por padrão. Em janelas de alto volume (lançamentos de novo pool, eventos de meme-coin), isso significa que sua transação compete com muitas outras e pode não chegar. Forneça umcomputeBudgetConfig explícito:
integration-guides/priority-fee-tuning para orientação de dimensionamento.
5. A tolerância de slippage deve corresponder ao tipo de pool
CPMM e AMM v4 são matemática CPMM (baixo impacto em trades normais). CLMM é por partes (impacto salta em cruzamentos de tick). Se você copiar uma tolerância de slippage de 0,5% de um exemplo CPMM para um swap CLMM que cruza vários ticks, a transação provavelmente reverterá. OcomputeAmountOut do SDK retorna priceImpact; dimensione sua tolerância acima dele.
6. BN vs number
Todos os campos de quantidade no SDK são instâncias BN de bn.js — nunca JavaScript number. Converter valores de quantidade via .toNumber() trunca silenciosamente em 2^53; para qualquer valor acima de ~9 quadrilhões (não incomum em mints de 9 casas decimais), isso produz o resultado errado. Mantenha tudo em BN até a renderização final da UI.
Política de versionamento
@raydium-io/raydium-sdk-v2é o único SDK que Raydium mantém. Todos os docs, demos e orientação de integração o direcionam.- Um pacote v1 mais antigo (
@raydium-io/raydium-sdk) existe no npm por razões históricas. A manutenção terminou após CPMM e LaunchLab serem lançados (v1 nunca ganhou suporte para nenhum dos dois), e não houve releases v1 desde 2024. Trate v1 como fim de vida: não o use para novo código e migre qualquer integração v1 restante para v2. - SDK v2 está em pré-1.0. Mudanças quebradas entre releases menores 0.x são possíveis; fixe a versão que você verificou e verifique as notas de release do GitHub ao atualizar.
Atualizando
Ao atualizar entre versões menores do SDK:- Re-verifique o tipo de retorno de toda chamada mutante — mudanças de forma (ex.
extInfo) chegam frequentemente. - Regenere assinaturas de busca de
poolInfo— um campo pode ter sido renomeado. - Re-verifique seu tratamento de slippage; o SDK mudou entre comportamentos de auto-bound e opt-in bound entre releases.
- Se você usar
raydium.trade(roteamento), re-verifique a forma da rota — é a parte mais instável da superfície.
Obtendo ajuda
Para perguntas sobre SDK e API:- GitHub issues — arquivo em github.com/raydium-io/raydium-sdk-V2/issues para bugs e solicitações de recursos. O time Raydium monitora ativamente.
- Discord — canal
#dev-supportem discord.gg/raydium para ajuda síncrona. - Telegram — chat de desenvolvedor vinculado de raydium.io (evite grupos Telegram não verificados).
security/disclosure.
Referências
sdk-api/rest-api— o complemento HTTP do SDK.sdk-api/trade-api— transações de swap construídas pelo servidor.sdk-api/anchor-idl— regenerando clientes diretamente de IDLs de programa.sdk-api/python-integration— equivalente em Python viasolana-py.integration-guides/priority-fee-tuning— dimensionandocomputeBudgetConfig.
- Fonte do Raydium SDK v2
- Notas de release do Raydium SDK.

