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
| Grupo | Instrucción | Notas |
|---|
| Ciclo de vida del pool | Initialize2 | Instrucción actual de creación de pool (aún funcional; la UI utiliza CPMM por defecto para nuevos pools). |
| Liquidez | Deposit | Añadir liquidez, recibir LP. |
| Liquidez | Withdraw | Quemar LP, recibir ambos lados de forma prorrateada. |
| Swap | SwapBaseIn | Swap de entrada exacta (ruta completa: bóvedas + OpenBook). |
| Swap | SwapBaseOut | Swap de salida exacta (ruta completa). |
| Swap | SwapBaseInV2 | Swap de entrada exacta que omite OpenBook — solo bóvedas, menos cuentas. |
| Swap | SwapBaseOutV2 | Swap de salida exacta que omite OpenBook. |
| Mantenimiento | SetParams | Admin: cambiar parámetros del pool. |
| Mantenimiento | WithdrawPnl | Transferir PnL de protocolo acumulado a las cuentas del propietario de PnL. |
| Mantenimiento | CreateConfigAccount | Admin: inicializar el PDA AmmConfig a nivel de programa. |
| Mantenimiento | UpdateConfigAccount | Admin: 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)
| # | Nombre | W | S | Notas |
|---|
| 1 | token_program | | | SPL Token. |
| 2 | system_program | | | |
| 3 | rent | | | |
| 4 | amm | W | | Cuenta AmmInfo (clave sembrada). |
| 5 | amm_authority | | | Program PDA. |
| 6 | amm_open_orders | W | | OpenBook OpenOrders (sembrado). |
| 7 | lp_mint | W | | |
| 8 | coin_mint | | | |
| 9 | pc_mint | | | |
| 10 | pool_coin_token_account | W | | |
| 11 | pool_pc_token_account | W | | |
| 12 | pool_withdraw_queue | W | | |
| 13 | pool_target_orders_account | W | | |
| 14 | pool_lp_token_account | W | | ATA de LP del creador. |
| 15 | pool_temp_lp_token_account | W | | Cuenta de scratch. |
| 16 | market_program | | | Programa OpenBook. |
| 17 | market | | | Mercado OpenBook. |
| 18 | user_wallet | W | S | Creador. Paga renta y financia el depósito inicial. |
| 19 | user_token_coin | W | | |
| 20 | user_token_pc | W | | |
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 comunes — InvalidInput (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)
| # | Nombre | W | S |
|---|
| 1 | token_program | | |
| 2 | amm | W | |
| 3 | amm_authority | | |
| 4 | amm_open_orders | | |
| 5 | amm_target_orders | W | |
| 6 | lp_mint | W | |
| 7 | pool_coin_token_account | W | |
| 8 | pool_pc_token_account | W | |
| 9 | market | | |
| 10 | user_coin_token_account | W | |
| 11 | user_pc_token_account | W | |
| 12 | user_lp_token_account | W | |
| 13 | user_owner | | S |
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)
| # | Nombre | W | S |
|---|
| 1 | token_program | | |
| 2 | amm | W | |
| 3 | amm_authority | | |
| 4 | amm_open_orders | W | |
| 5 | amm_target_orders | W | |
| 6 | pool_coin_token_account | W | |
| 7 | pool_pc_token_account | W | |
| 8 | market_program | | |
| 9 | market | W | |
| 10 | market_bids | W | |
| 11 | market_asks | W | |
| 12 | market_event_queue | W | |
| 13 | market_coin_vault | W | |
| 14 | market_pc_vault | W | |
| 15 | market_vault_signer | | |
| 16 | user_source_token_account | W | |
| 17 | user_dest_token_account | W | |
| 18 | user_owner | | S |
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 comunes — ExceededSlippage, 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:
| # | Nombre | W | S |
|---|
| 1 | token_program | | |
| 2 | amm | W | |
| 3 | amm_authority | | |
| 4 | amm_open_orders | | |
| 5 | pool_coin_token_account | W | |
| 6 | pool_pc_token_account | W | |
| 7 | user_source_token_account | W | |
| 8 | user_dest_token_account | W | |
| 9 | user_owner | | S |
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)
| # | Nombre | W | S | |
|---|
| 1 | token_program | | | |
| 2 | amm | W | | |
| 3 | amm_authority | | | |
| 4 | amm_config | | | |
| 5 | amm_open_orders | W | | |
| 6 | pool_coin_token_account | W | | |
| 7 | pool_pc_token_account | W | | |
| 8 | pnl_coin_token_account | W | | Destinatario, almacenado en AmmConfig. |
| 9 | pnl_pc_token_account | W | | |
| 10 | pnl_owner | | S | Multisig administrativo. |
| 11 | market_program | | | |
| 12 | market | W | | |
| 13 | market_event_queue | W | | |
| 14 | market_coin_vault | W | | |
| 15 | market_pc_vault | W | | |
| 16 | market_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ón | suministro lp_mint | Bóvedas | Contadores de PnL | OpenBook |
|---|
Initialize2 | suministro inicial acuñado al creador | + init_coin_amount, + init_pc_amount | 0 | OpenOrders creado |
Deposit | + | + ambos | — | liquidar llenados |
Withdraw | − | − ambos | — | liquidar llenados |
SwapBaseIn | — | + entrada, − salida | + parte pnl | quizás re-publicar cuadrícula |
SwapBaseOut | — | + entrada, − salida | + parte pnl | quizás re-publicar cuadrícula |
MonitorStep | — | liquidar llenados | — | cancelar / publicar |
WithdrawPnl | — | − (pnl barrido) | 0 | — |
SetParams | — | — | — | — |
Próximos pasos
Fuentes: