Saltar al contenido 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 fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.Ver versión en inglés →
Las instrucciones de AMM v4 esperan uniformemente tanto un lado del pool (cuentas del programa AMM v4) como un lado del mercado (cuentas de OpenBook para el mercado vinculado). Omitir o desajustar cualquiera de los dos conjuntos revierte la transacción. Las listas de cuentas a continuación usan los nombres de campos del SDK de Raydium por claridad; el IDL subyacente a veces usa prefijos serum_*.

Inventario de instrucciones

GrupoInstrucciónNotas
Ciclo de vida del poolInitialize2Instrucción actual de creación de pool (aún funcional; la UI utiliza CPMM por defecto para nuevos pools).
LiquidezDepositAñadir liquidez, recibir LP.
LiquidezWithdrawQuemar LP, recibir ambos lados de forma prorrateada.
SwapSwapBaseInSwap de entrada exacta (ruta completa: bóvedas + OpenBook).
SwapSwapBaseOutSwap de salida exacta (ruta completa).
SwapSwapBaseInV2Swap de entrada exacta que omite OpenBook — solo bóvedas, menos cuentas.
SwapSwapBaseOutV2Swap de salida exacta que omite OpenBook.
MantenimientoSetParamsAdmin: cambiar parámetros del pool.
MantenimientoWithdrawPnlTransferir PnL de protocolo acumulado a las cuentas del propietario de PnL.
MantenimientoCreateConfigAccountAdmin: inicializar el PDA AmmConfig a nivel de programa.
MantenimientoUpdateConfigAccountAdmin: cambiar parámetros de configuración a nivel de programa.
El SDK expone constructores solo para las instrucciones orientadas al usuario. Las instrucciones de mantenimiento generalmente son invocadas por el keeper de Raydium.

Initialize2

Arrancar un nuevo pool AMM v4 vinculado a un mercado OpenBook existente. Argumentos
nonce:        u8
open_time:    u64
init_pc_amount:   u64
init_coin_amount: u64
Cuentas (escribible W, firmante S)
#NombreWSNotas
1token_programSPL Token.
2system_program
3rent
4ammWCuenta AmmInfo (clave sembrada).
5amm_authorityProgram PDA.
6amm_open_ordersWOpenBook OpenOrders (sembrado).
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 de LP del creador.
15pool_temp_lp_token_accountWCuenta de scratch.
16market_programPrograma OpenBook.
17marketMercado OpenBook.
18user_walletWSCreador. Paga renta y financia el depósito inicial.
19user_token_coinW
20user_token_pcW
Postcondiciones
  • lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, donde INIT_BURN ≈ 100 unidades LP se mantienen fuera de circulación.
  • Las órdenes de OpenBook aún no han sido publicadas; el primer MonitorStep publica la cuadrícula inicial.
Errores comunesInvalidInput (decimales desajustados, no ordenados), NotApproved, lado OpenBook InvalidMarketState.

Deposit

Añadir liquidez. Argumentos
max_coin_amount: u64
max_pc_amount:   u64
base_side:       u64    // 0 = base en coin, 1 = base en pc
// (algunas variantes del SDK también aceptan other_amount_min)
Cuentas (resumida)
#NombreWS
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áticas — prorrateadas estándar. Usando las reservas efectivas del pool (bóvedas + en libro), el SDK calcula el par coin/pc que genera la cantidad de LP dada y lo verifica contra max_*. Revierte con ExceededSlippage si cualquier lado excede el límite.

Withdraw

Quemar LP, recibir ambos lados. Argumentos
amount: u64    // LP a quemar
Cuentas — como Deposit con la dirección invertida; lp_mint es escribible para quemar, las ATAs del usuario son receptoras. Un paso similar a MonitorStep de liquidación desde OpenBook ocurre internamente antes de las matemáticas prorrateadas, por lo que el reembolso utiliza reservas frescas.

SwapBaseIn

Swap de entrada exacta. Siempre un swap de ruta AMM (no enruta a través del matching de OpenBook).
Usa las variantes V2 para código nuevo. Dado que AMM v4 ya no comparte liquidez con OpenBook, los puntos de entrada V1 (SwapBaseIn, SwapBaseOut) — que aún requieren el conjunto completo de cuentas OpenBook para validación — son funcionalmente redundantes. Las nuevas integraciones deben usar SwapBaseInV2 / SwapBaseOutV2, que tienen una lista de cuentas mucho más pequeña y representan la ruta de ejecución canónica hoy en día. Los formularios V1 se documentan aquí para completitud y para leer transacciones existentes en cadena.
Argumentos
amount_in:            u64
minimum_amount_out:   u64
Cuentas (resumida)
#NombreWS
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áticas — ver products/amm-v4/math. Precondiciones
  • amm.status permite swap (bit 0 de la máscara de bits de estado no establecida).
  • amm.state_data.pool_open_time <= now.
  • amount_in > 0.
  • user_source_token_account contiene al menos amount_in.
Postcondiciones
  • El usuario pierde amount_in del token origen, gana amount_out ≥ minimum_amount_out del token destino.
  • state_data.swap_*_in_amount y swap_*_out_amount incrementados (para analítica).
  • need_take_pnl_* incrementado por la parte de la comisión del protocolo.
Errores comunesExceededSlippage, InvalidInput, InvalidStatus, InvalidMarket.

SwapBaseOut

Salida exacta, inversa de SwapBaseIn. Las mismas cuentas. Argumentos
max_amount_in: u64
amount_out:    u64

SwapBaseInV2 / SwapBaseOutV2

Variantes de puntos de entrada de swap que omiten completamente las cuentas de OpenBook. Las matemáticas son idénticas a la ruta V1, pero la lista de cuentas se reduce solo al lado del AMM:
#NombreWS
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
Las reservas efectivas del pool aún tienen en cuenta los tokens publicados en OpenBook, por lo que las matemáticas de cotización no cambian. Usa V2 para ahorrar en compute y evitar pasar las cuentas de mercado cuando no necesitas un crank de OpenBook en la misma transacción. El router de Raydium siempre utiliza la forma V2 cuando enruta a través de AMM v4. Los argumentos son los mismos que los formularios V1 (amount_in / minimum_amount_out para SwapBaseInV2; max_amount_in / amount_out para SwapBaseOutV2).

MonitorStep (legacy / inerte)

Ya no está cranked. AMM v4 ya no comparte liquidez con OpenBook, por lo que MonitorStep no tiene nada que hacer — el pool no tiene órdenes publicadas para liquidar, cancelar o reemplazar. La instrucción permanece en el programa en cadena para compatibilidad hacia atrás, pero el keeper de Raydium ya no la llama. Llamarla manualmente es efectivamente una no-op (aparte de actualizar estado puesta a cero) y no debe ser necesaria para los integradores.
Originalmente esta instrucción cranked la interacción de OpenBook del pool. Argumentos
plan_order_limit:   u16
place_order_limit:  u16
cancel_order_limit: u16
Cuentas — todo lo anterior para un swap, más cuentas administrativas de OpenBook. Efecto original (ya no relevante en la práctica):
  • Liquidar cualquier orden rellenada (sus ganancias se movieron desde market_coin_vault/market_pc_vault a las bóvedas del pool a través de CPI de OpenBook).
  • Cancelar órdenes obsoletas cuyos precios o tamaños ya no coincidían con target_orders.
  • Publicar nuevas órdenes para cerrar la brecha entre target_orders y amm_open_orders.
Sin permisos. Cualquier cuenta podía llamarla; históricamente el keeper de Raydium lo hacía rutinariamente.

WithdrawPnl / TakePnl

Barrida administrativa de comisiones de protocolo acumuladas. Argumentos
  • WithdrawPnl no toma argumentos; lee need_take_pnl_* y mueve esos montos exactos.
Cuentas (resumida)
#NombreWS
1token_program
2ammW
3amm_authority
4amm_config
5amm_open_ordersW
6pool_coin_token_accountW
7pool_pc_token_accountW
8pnl_coin_token_accountWDestinatario, almacenado en AmmConfig.
9pnl_pc_token_accountW
10pnl_ownerSMultisig administrativo.
11market_program
12marketW
13market_event_queueW
14market_coin_vaultW
15market_pc_vaultW
16market_vault_signer
Efecto
  • Transfiere need_take_pnl_coin desde pool_coin_token_account a pnl_coin_token_account.
  • Lo mismo para pc.
  • Pone a cero need_take_pnl_coin y need_take_pnl_pc.
Sin cambio en las reservas ya que el PnL acumulado ya estaba excluido del invariante.

SetParams

Cambios de parámetros administrativos: máscara de bits de estado, profundidad de cuadrícula de ordenamiento, ondas de cantidad, comisiones (raramente), etc. Llamado por el multisig de Raydium. Los argumentos son una etiqueta param: u8 + carga útil, análogo a UpdateAmmConfig de CPMM.

Matriz de cambio de estado

Instrucciónsuministro lp_mintBóvedasContadores de PnLOpenBook
Initialize2suministro inicial acuñado al creador+ init_coin_amount, + init_pc_amount0OpenOrders creado
Deposit++ ambosliquidar llenados
Withdraw− ambosliquidar llenados
SwapBaseIn+ entrada, − salida+ parte pnlquizás re-publicar cuadrícula
SwapBaseOut+ entrada, − salida+ parte pnlquizás re-publicar cuadrícula
MonitorStepliquidar llenadoscancelar / publicar
WithdrawPnl− (pnl barrido)0
SetParams

Próximos pasos

Fuentes: