Skip to main content
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.
  • SDK: @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • Cluster: Solana mainnet-beta
  • ID do programa Stable AMM: 5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h (veja reference/program-addresses)
  • Última verificação: 2026-04
O módulo liquidity do SDK lida nativamente com pools Stable AMM. Pools estáveis aparecem como version: 5 (ou pooltype: "StablePool") em ApiV3PoolInfoStandardItem; os mesmos helpers addLiquidity / removeLiquidity / swap funcionam para eles como para pools de produto constante AMM v4 (version: 4) — o SDK detecta a variante e emite as instruções corretas automaticamente. A matemática off-chain da curva estável fica em src/raydium/liquidity/stable.ts.

Configuração

Identificando um pool Stable

Dois sinais equivalentes em ApiV3PoolInfoStandardItem:
Tanto AMM v4 (version: 4, produto constante) quanto Stable AMM (version: 5) fluem através da mesma API LiquidityModule no SDK. Internamente o módulo despacha para:
  • InstructionType.AmmV4AddLiquidity / AmmV4RemoveLiquidity para pools v4
  • InstructionType.AmmV5AddLiquidity / AmmV5RemoveLiquidity para pools v5 (Stable)
O programId do pool (retornado com as chaves do pool) diz ao SDK qual programa fazer CPI; você não precisa codificá-lo.

Encontrar um pool por par de mints

Se o par de mints tem tanto um pool v4 (produto constante) quanto um pool v5 (estável), a resposta inclui ambos — escolha o que seu fluxo precisa, ou passe-os para o programa AMM Routing e deixe-o escolher a melhor rota.

Fazer swap através de um pool Stable

O fluxo LiquidityModule.swap tem a mesma forma que para pools v4 — apenas passe um objeto pool v5:
O SDK lê o programId do pool a partir das chaves do pool e despacha para o programa Stable AMM. Nenhum argumento programId especial é necessário.

Adicionar e remover liquidez

addLiquidity e removeLiquidity funcionam identicamente em pools v4 e v5:
Internamente o SDK emite InstructionType.AmmV5AddLiquidity porque pooltype.includes("StablePool") é verdadeiro. O fluxo correspondente de removeLiquidity é simétrico — forneça lpAmount e os valores mínimos que você aceitará em cada lado.

Helpers de quote off-chain (stable.ts)

Para quoting do lado do servidor ou backtesting, o SDK expõe a matemática subjacente da curva estável:
Estas são funções puras — sem RPC, sem assinatura. O ModelDataInfo on-chain é buscado uma vez por initLayout() e armazenado em cache em raydium.liquidity.stableLayout. Passe as reservas atuais (x, y) e os helpers computam fazendo busca binária na tabela de lookup e interpolação linear entre as duas linhas DataElement circundantes. Veja products/stable/math para o algoritmo subjacente.

Roteamento através do AMM Routing (multi-hop / melhor preço)

Se você não quer escolher um venue você mesmo, o programa AMM Routing considerará cada AMM Raydium (v4 / CPMM / CLMM / Stable) e roteará através de qualquer combinação que seja melhor:
Este é o caminho recomendado para swappers e agregadores em produção — você nunca precisa decidir manualmente se um pool Stable existe ou se é o melhor venue hoje.

Recomendações

  1. Para swaps de usuário final, prefira o fluxo de roteamento tradeV2. Ele lida com cada tipo de pool Raydium incluindo Stable.
  2. Para operações específicas de pool (LP add / remove em um pool Stable conhecido), use o LiquidityModule diretamente — ele detecta automaticamente pools v5.
  3. Para quoting off-chain / análise, chame getStablePrice / getDyByDxBaseIn / getDxByDyBaseIn após initLayout(). Sem tráfego RPC por quote após o modelo de dados ser armazenado em cache.
  4. Não codifique manualmente instruções SwapBaseIn brutas. A atualização de 2026-06-22 removeu as contas OpenBook mortas, então o novo layout de swap leva 9 contas (o layout antigo de 18 contas ainda analisa para compatibilidade com versões anteriores). Deposit agora é 12 contas (14 antigas compatíveis), Withdraw 12 (21/22 antigas compatíveis), e WithdrawPnl 10 com nenhum caminho de compatibilidade. Os helpers pré-construídos do SDK selecionam o layout e ordenação corretos para você; fazer o seu próprio é propenso a erros. Veja products/stable/instructions para as tabelas de contas completas.

Para onde ir a seguir

  • Math — como funciona a interpolação da tabela de lookup.
  • Instructions — referência completa de instruções.
  • AMM Routing — roteamento multi-pool através de AMM v4, CPMM, CLMM, Stable.
Fontes: