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 →
Instalação
.d.ts junto com seu artefato JS. Toolchain mínima: Node 18+, TypeScript 5.0+, moduleResolution: "bundler" ou "node16".
Inicialização
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, tiers de taxa, etc.). Defina disableFeatureCheck: true em ambientes offline; você terá de fornecer esses valores manualmente para alguns construtores.
As quatro fachadas de módulo
Uma vez carregado, o objetoraydium expõe quatro fachadas de módulo, uma por superfície de produto:
trade e token como utilitários de suporte.)
Construtores de transações
Toda função mutável retorna um construtor 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 assinantes acumulados. Chame.build()para obter umVersionedTransaction[]; útil quando você precisa injetar suas próprias instruções ou assinar com assinantes externos.transaction/innerTransactions— os arrays brutos de instruções. Use ao construir transações compostas multi-programa.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 pesquisa de endereços) é a recomendação padrão — permite que swaps maiores caibam em uma única transação.
Por que construtores assincronos?
Quase todo construtor internamente busca o estado on-chain: informações de pool (para cotações), propriedade do programa de token (para roteamento Token-2022 vs SPL), isenção de aluguel de conta (para criação de ATA), etc. O SDK armazena em cache agressivamente, mas a primeira chamada para um novo pool envolve round-trips de RPC. Mantenha uma instânciaraydium de longa vida para evitar re-buscar.
Adições do módulo CLMM (versão 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 isto para qualquer novo pool que necessite dos novos controles; ocreatePoolclássico continua funcionando para pools com taxa padrão.raydium.clmm.openLimitOrder— abre uma ordem limitada de um único tick em um pool que as suporta. TomapoolInfo,poolKeys,limitOrderConfig(de/main/clmm-limit-order-config),inputMint,inputAmounte otickalvo.raydium.clmm.increaseLimitOrder/decreaseLimitOrder— ajusta a porção não preenchida de uma ordem existente. Diminuir reverte em uma ordem totalmente preenchida comInvalidOrderPhase.raydium.clmm.settleLimitOrder/settleAllLimitOrder— varre saída preenchida para o ATA do proprietário. Tanto o proprietário da ordem quanto o guardiãolimit_order_admindo pool podem chamá-los.raydium.clmm.closeLimitOrder/closeAllLimitOrder— fecha ordens totalmente liquidadas para recuperar aluguel.raydium.api.getClmmDynamicConfigs()/getClmmLimitOrderConfigs()— auxiliares 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 passar 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.
Walkthroughs TypeScript de ponta a ponta vivem em products/clmm/code-demos.
Armadilhas comuns
1. Incompatibilidade de cluster
A configuração de inicialização do SDK é específica de cluster. Misturarcluster: "mainnet" com uma Connection de devnet causa roteamento silencioso incorreto: o SDK cotiza contra AmmConfig de 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 prepende automaticamente uma instruçãoAssociatedTokenAccount::create quando detecta um ATA ausente, que custa uma pequena quantidade de aluguel. Se sua carteira está com pouco SOL, isto 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 ficar abaixo do amount-out on-chain, revertendo. Re-busque poolInfo imediatamente antes de construir transações de alto valor, ou use o computeAmountOut do SDK que re-consulta as reservas.
4. Taxas de prioridade
O SDK não adiciona preços de unidades de computação por padrão. Em janelas de alto volume (lançamentos de novo pool, eventos de moeda meme) isto 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 é provável que reverta. 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 number de JavaScript. Converter valores de quantidade via .toNumber() trunca silenciosamente em 2^53; para qualquer valor acima de ~9 quatrilhões (não incomum em mints de 9 decimais), isto produz o resultado errado. Mantenha tudo em BN até a renderização final da IU.
Política de versionamento
@raydium-io/raydium-sdk-v2é o único SDK que Raydium mantém. Toda documentação, demonstrações e orientação de integração a 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 enviados (v1 nunca ganhou suporte para nenhum dos dois), e não houve lançamentos v1 desde 2024. Trate v1 como fim de vida: não o use para código novo, e migre qualquer integração v1 restante para v2. - O SDK v2 é pré-1.0. Mudanças significativas entre versões menores 0.x são possíveis; fixe a versão que você verificou contra e verifique as notas de lançamento do GitHub ao atualizar.
Atualização
Ao atualizar entre versões menores do SDK:- Re-verifique o tipo de retorno de cada chamada mutável — mudanças de forma (por exemplo,
extInfo) desembarcam frequentemente. - Regenere assinaturas de busca de
poolInfo— um campo pode ter sido renomeado. - Re-verifique sua manipulação de slippage; o SDK mudou entre comportamentos de ligação automática e ligação opt-in em lançamentos.
- 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. A equipe Raydium monitora ativamente.
- Discord — canal
#dev-supportem discord.gg/raydium para ajuda síncrona. - Telegram — chat do desenvolvedor vinculado de raydium.io (evite grupos Telegram não verificados).
security/disclosure.
Apontadores
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 Python viasolana-py.integration-guides/priority-fee-tuning— dimensionandocomputeBudgetConfig.
- Código-fonte do Raydium SDK v2
- Notas de lançamento do Raydium SDK.


