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. Todos os demos visam @raydium-io/raydium-sdk-v2@0.2.64-alpha contra Solana mainnet-beta, verificado em 2026-09-09 — cada nome de builder, nome de parâmetro e tipo de parâmetro abaixo foi verificado contra o código-fonte dessa versão e contra raydium-sdk-V2-demo/src/amm. ID do programa: 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 (veja reference/program-addresses).Duas armadilhas que pegam a maioria das primeiras integrações: o slippage de computeAmountOut é um número simples (0.005 = 0,5%), não um Percent; e liquidity.swap requer inputMint como uma string base58.
A criação de novos pools não é mostrada aqui. A interface do Raydium não oferece mais criação de pools AMM v4 — novos pares usam CPMM por padrão. O próprio programa AMM v4 ainda aceita Initialize2 on-chain; apenas não é o caminho recomendado. Os demos abaixo cobrem as operações de pool ativo que todo integrador ainda precisa: swap, depósito, saque.

Configuração

Buscar um pool por ID

poolKeys é a struct que os construtores de instruções consomem. Ela carrega cada conta AMM v4 na ordem que o programa espera, mais os campos de mercado legados que o programa atual aceita posicionalmente mas não lê mais.

Swap (base-in)

O SDK roteia swaps AMM v4 através dos pontos de entrada V2, que não carregam as contas OpenBook. (Após a atualização de 2026-07, as contas de mercado não são mais validadas nem no caminho legado v1.)

Swap (base-out)

Adicionar liquidez

fixedSide: "a" diz ao SDK que você forneceu o amountInA exato e que amountInB deve ser no máximo maxAnotherAmount. A matemática pro-rata é executada fora dos saldos do cofre menos PnL acumulado — não há mais nenhum componente on-book para liquidar primeiro.

Remover liquidez

Os mínimos de slippage protegem contra o estado do pool mudar entre sua pré-cotação e o tempo de execução.

Ajuste de unidade de computação / taxa de prioridade

Desde a remoção do OpenBook, um swap AMM v4 não valida mais nenhum estado de mercado, então um SwapBaseIn v1 é notavelmente mais barato do que costumava ser — e SwapBaseInV2 (8 contas, sem placeholders de mercado) é ainda mais barato. Meça seu próprio caminho em vez de orçar com base em números históricos, e sempre passe um limite de unidade de computação explícito:
Se você omitir computeBudgetConfig, o SDK ainda pode usar seu próprio padrão; inspecione a transaction retornada para confirmar. Veja integration-guides/priority-fee-tuning.

CPI Rust direto

Se você deve fazer CPI para AMM v4 a partir de seu próprio programa Anchor, você precisará modelar a lista de contas de SwapBaseIn verbatim. Um esboço mínimo:
AMM v4 não fornece uma crate Anchor para CPI. O esboço acima usa uma Instruction construída manualmente.
O esboço de CPI acima usa o layout legado v1 SwapBaseIn (tag 9, 17 contas) para ler/reproduzir transações existentes. Desde a atualização de 2026-07, as contas de mercado são aceitas mas ignoradas. Para novo código, prefira SwapBaseInV2 / SwapBaseOutV2 (tags 16 / 17), que eliminam as contas de mercado (e amm_open_orders) inteiramente — passe apenas 8 contas: token_program, amm, amm_authority, os dois cofres do pool, as duas contas de token do usuário, e user_owner.

Armadilhas

  • Contagem de contas errada em swaps v1. O SwapBaseIn / SwapBaseOut legado ainda requer a lista completa de 17 contas (ou 18 contas) — uma contagem incompatível reverte com WrongAccountsNumber. O conteúdo das contas de mercado não é mais validado, mas você ainda deve ocupar seus slots. Prefira os pontos de entrada V2 para evitar isso.
  • Leitura de saldos brutos do cofre. As reservas agora são apenas do cofre; subtraia PnL acumulado (need_take_pnl_*). A cotação do SDK ou api-v3.raydium.io/pools/info/ids faz isso para você.
  • Chamada de instruções removidas. MonitorStep, MigrateToOpenBook, WithdrawSrm, SimulateInfo, AdminCancelOrders, e Initialize / PreInitialize legado agora revertam. Use Initialize2 para criação de pool; não há crank para chamar.
  • Mints Token-2022. Não suportados. Um pool AMM v4 não pode ser criado contra um mint Token-2022; qualquer par Token-2022 deve estar em CPMM ou CLMM.

Próximos passos

Fontes: