Saltar para o conteúdo principal

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 →
As instruções AMM v4 esperam uniformemente tanto um pool side (contas do programa AMM v4) quanto um market side (contas OpenBook para o mercado vinculado). Omitir ou descompasar qualquer um dos conjuntos reverte a operação. As listas de contas abaixo usam nomes de campo do Raydium SDK para clareza; o IDL subjacente às vezes usa prefixos serum_*.

Inventário de instruções

GrupoInstruçãoNotas
Ciclo de vida do poolInitialize2Instrução de criação de pool atual (ainda funcional; a UI padrão para novos pools é CPMM).
LiquidezDepositAdicionar liquidez, receber LP.
LiquidezWithdrawQueimar LP, receber ambos os lados pro-rata.
SwapSwapBaseInSwap de entrada exata (caminho completo: vaults + OpenBook).
SwapSwapBaseOutSwap de saída exata (caminho completo).
SwapSwapBaseInV2Swap de entrada exata que ignora OpenBook — apenas vaults, menos contas.
SwapSwapBaseOutV2Swap de saída exata que ignora OpenBook.
ManutençãoSetParamsAdmin: alterar parâmetros do pool.
ManutençãoWithdrawPnlVarrer PnL do protocolo acumulado para as contas proprietário-PnL.
ManutençãoCreateConfigAccountAdmin: inicializar o AmmConfig PDA em nível de programa.
ManutençãoUpdateConfigAccountAdmin: alterar parâmetros de configuração em nível de programa.
O SDK expõe builders apenas para instruções com interface de usuário. Instruções de manutenção são tipicamente invocadas pelo keeper do Raydium.

Initialize2

Bootstrap um novo pool AMM v4 vinculado a um mercado OpenBook existente. Argumentos
nonce:        u8
open_time:    u64
init_pc_amount:   u64
init_coin_amount: u64
Contas (escrita W, assinante S)
#NomeWSNotas
1token_programSPL Token.
2system_program
3rent
4ammWConta AmmInfo (chave com seed).
5amm_authorityPDA do programa.
6amm_open_ordersWOpenBook OpenOrders (com seed).
7lp_mintW
8coin_mint
9pc_mint
10pool_coin_token_accountW
11pool_pc_token_accountW
12pool_withdraw_queueW
13pool_target_orders_accountW
14pool_lp_token_accountWATA LP do criador.
15pool_temp_lp_token_accountWConta de rascunho.
16market_programPrograma OpenBook.
17marketMercado OpenBook.
18user_walletWSCriador. Paga rent e financia depósito inicial.
19user_token_coinW
20user_token_pcW
Pós-condições
  • lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, onde INIT_BURN ≈ 100 unidades LP são mantidas fora de circulação.
  • As ordens OpenBook ainda não foram postadas; o primeiro MonitorStep posta a grid inicial.
Erros comunsInvalidInput (decimais descompassadas, não ordenados), NotApproved, InvalidMarketState do lado OpenBook.

Deposit

Adicionar liquidez. Argumentos
max_coin_amount: u64
max_pc_amount:   u64
base_side:       u64    // 0 = base em coin, 1 = base em pc
// (algumas variantes do SDK também aceitam other_amount_min)
Contas (abreviado)
#NomeWS
1token_program
2ammW
3amm_authority
4amm_open_orders
5amm_target_ordersW
6lp_mintW
7pool_coin_token_accountW
8pool_pc_token_accountW
9market
10user_coin_token_accountW
11user_pc_token_accountW
12user_lp_token_accountW
13user_ownerS
Matemática — pro-rata padrão. Usando as reservas efetivas do pool (vaults + on-book), o SDK calcula o par coin/pc que rende a quantidade de LP fornecida e verifica contra max_*. Reverte com ExceededSlippage se qualquer lado exceder o limite.

Withdraw

Queimar LP, receber ambos os lados. Argumentos
amount: u64    // LP a queimar
Contas — como Deposit com a direção invertida; lp_mint é escrita para burn, os ATAs do usuário são receptores. Uma etapa de settle-from-OpenBook semelhante a MonitorStep acontece internamente antes da matemática pro-rata para que o resgate use reservas frescas.

SwapBaseIn

Swap de entrada exata. Sempre um swap de caminho AMM (não roteia através de matching OpenBook).
Use as variantes V2 para novo código. Como o AMM v4 não compartilha mais liquidez com OpenBook, os entrypoints V1 (SwapBaseIn, SwapBaseOut) — que ainda requerem o conjunto completo de contas OpenBook para validação — são funcionalmente redundantes. Novas integrações devem usar SwapBaseInV2 / SwapBaseOutV2, que levam uma lista de contas muito menor e representam o caminho de execução canônico hoje. As formas V1 são documentadas aqui para completude e para ler transações on-chain existentes.
Argumentos
amount_in:            u64
minimum_amount_out:   u64
Contas (abreviado)
#NomeWS
1token_program
2ammW
3amm_authority
4amm_open_ordersW
5amm_target_ordersW
6pool_coin_token_accountW
7pool_pc_token_accountW
8market_program
9marketW
10market_bidsW
11market_asksW
12market_event_queueW
13market_coin_vaultW
14market_pc_vaultW
15market_vault_signer
16user_source_token_accountW
17user_dest_token_accountW
18user_ownerS
Matemática — veja products/amm-v4/math. Pré-condições
  • amm.status permite swap (bit 0 da máscara de bitmask de status não está definido).
  • amm.state_data.pool_open_time <= now.
  • amount_in > 0.
  • user_source_token_account mantém pelo menos amount_in.
Pós-condições
  • Usuário perde amount_in do token de origem, ganha amount_out ≥ minimum_amount_out do token de destino.
  • state_data.swap_*_in_amount e swap_*_out_amount incrementados (para análise).
  • need_take_pnl_* incrementado pela parcela de taxa de protocolo.
Erros comunsExceededSlippage, InvalidInput, InvalidStatus, InvalidMarket.

SwapBaseOut

Saída exata, inverso de SwapBaseIn. Mesmas contas. Argumentos
max_amount_in: u64
amount_out:    u64

SwapBaseInV2 / SwapBaseOutV2

Variantes de entrypoint de swap que ignoram as contas OpenBook completamente. A matemática é idêntica ao caminho V1, mas a lista de contas encolhe apenas para o lado AMM:
#NomeWS
1token_program
2ammW
3amm_authority
4amm_open_orders
5pool_coin_token_accountW
6pool_pc_token_accountW
7user_source_token_accountW
8user_dest_token_accountW
9user_ownerS
As reservas efetivas do pool ainda levam em conta tokens postados no OpenBook, então a matemática de quote não muda. Use V2 para economizar compute e evitar passar as contas de mercado quando você não precisa de um crank OpenBook na mesma transação. O roteador Raydium sempre usa a forma V2 ao rotear através de AMM v4. Os argumentos são os mesmos das formas V1 (amount_in / minimum_amount_out para SwapBaseInV2; max_amount_in / amount_out para SwapBaseOutV2).

MonitorStep (legado / inerte)

Não é mais acionado. AMM v4 não compartilha mais liquidez com OpenBook, então MonitorStep não tem nada a fazer — o pool não tem ordens postadas para settle, cancel ou replace. A instrução permanece no programa on-chain para compatibilidade com versões anteriores, mas o keeper do Raydium não a chama mais. Chamá-la manualmente é efetivamente um no-op (exceto por atualizar o estado zerado) e não deve ser necessário para integradores.
Originalmente esta instrução acionava a interação do pool com OpenBook. Argumentos
plan_order_limit:   u16
place_order_limit:  u16
cancel_order_limit: u16
Contas — tudo acima para um swap, mais contas administrativas OpenBook. Efeito original (não é mais relevante na prática):
  • Settled quaisquer ordens preenchidas (seus rendimentos movidos de market_coin_vault/market_pc_vault para os vaults do pool via OpenBook CPI).
  • Cancelou ordens obsoletas cujos preços ou tamanhos não correspondiam mais a target_orders.
  • Postou novas ordens para fechar a lacuna entre target_orders e amm_open_orders.
Sem permissão. Qualquer conta pode chamá-la; historicamente o keeper do Raydium o fazia rotineiramente.

WithdrawPnl / TakePnl

Sweep administrativo de taxas de protocolo acumuladas. Argumentos
  • WithdrawPnl não leva argumentos; lê need_take_pnl_* e move exatamente esses valores.
Contas (abreviado)
#NomeWS
1token_program
2ammW
3amm_authority
4amm_config
5amm_open_ordersW
6pool_coin_token_accountW
7pool_pc_token_accountW
8pnl_coin_token_accountWDestinatário, armazenado em AmmConfig.
9pnl_pc_token_accountW
10pnl_ownerSMultisig admin.
11market_program
12marketW
13market_event_queueW
14market_coin_vaultW
15market_pc_vaultW
16market_vault_signer
Efeito
  • Transfere need_take_pnl_coin de pool_coin_token_account para pnl_coin_token_account.
  • Mesmo para pc.
  • Zera need_take_pnl_coin e need_take_pnl_pc.
Nenhuma alteração nas reservas já que o PnL acumulado foi excluído do invariante.

SetParams

Alterações de parâmetros admin: máscara de status bitmask, profundidade da grid de ordenação, ondas de quantidade, taxas (raramente), etc. Chamado pelo multisig do Raydium. Os argumentos são uma tag param: u8 + payload, análogo ao UpdateAmmConfig do CPMM.

Matriz de mudança de estado

InstruçãoOferta lp_mintVaultsContadores PnLOpenBook
Initialize2oferta inicial cunhada para criador+ init_coin_amount, + init_pc_amount0OpenOrders criado
Deposit++ ambossettle fills
Withdraw− ambossettle fills
SwapBaseIn+ in, − out+ pnl sharetalvez re-post grid
SwapBaseOut+ in, − out+ pnl sharetalvez re-post grid
MonitorStepsettle fillscancel / post
WithdrawPnl− (pnl swept)0
SetParams

Próximos passos

Fontes: