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 →
AMM v4 es significativamente más pesado en cuentas que CPMM o CLMM porque cada operación toca el estado de OpenBook. Esta página agrupa las cuentas en secciones “propiedad del pool” y “propiedad de OpenBook” para que un integrador pueda ver rápidamente cuál es cuál.
Inventario
Un pool de AMM v4 se vincula a exactamente un mercado de OpenBook al momento de su creación. El panorama completo actual es:| Categoría | Cuenta | Propietario | Rol |
|---|---|---|---|
| Pool | AmmInfo | Programa AMM v4 | Estado del pool: comisiones acumuladas, estado, referencias a bóvedas y mercado de OpenBook. |
| Pool | amm_authority | Programa AMM v4 | PDA propiedad del programa que firma los movimientos de bóvedas. Compartida entre todos los pools de AMM v4. |
| Pool | amm_open_orders | OpenBook | La cuenta OpenOrders del pool en OpenBook para este mercado. |
| Pool | amm_target_orders | Programa AMM v4 | Cuadrícula de órdenes límite objetivo del lado del pool para publicar en OpenBook. |
| Pool | pool_coin_token_account | SPL Token | Bóveda del lado coin del pool (ATA de amm_authority). |
| Pool | pool_pc_token_account | SPL Token | Bóveda del lado pc del pool. |
| Pool | lp_mint | SPL Token | Mint de LP fungible. |
| Pool | pool_withdraw_queue | Programa AMM v4 | Cola heredada para retiros retrasados; se mantiene con longitud cero. |
| Pool | pool_temp_lp | Programa AMM v4 | Cuenta LP auxiliar utilizada durante Initialize. |
| Mercado (OpenBook) | serum_market | OpenBook | El mercado en sí (mints base/quote, vault signer, etc.). |
| Mercado | serum_bids, serum_asks | OpenBook | Las colas de ofertas y demandas. |
| Mercado | serum_event_queue | OpenBook | Eventos pendientes (ejecuciones, cancelaciones). |
| Mercado | serum_coin_vault, serum_pc_vault | SPL Token | Bóvedas a nivel de mercado de OpenBook. |
| Mercado | serum_vault_signer | OpenBook | PDA a nivel de mercado que firma los movimientos de serum_*_vault. |
AmmInfo
La cuenta de estado raíz del pool. Grande (≈ 752 bytes) porque contiene referencias de pool y OpenBook en línea.
coin_vault,pc_vault— las bóvedas SPL Token del pool.coinestoken_0por convención de Serum/OpenBook (base),pcestoken_1(quote).coin_decimals,pc_decimals— coincidiendo con los mints.open_orders,target_orders,market— deben pasarse a cada instrucción de swap/deposit/withdraw.fees.swap_fee_numerator / swap_fee_denominator— la comisión comercial combinada. Por defecto25 / 10_000 = 0.25%.status— máscara de bits que controla operaciones. Configurable por administrador medianteAdminSetStatus.state_data.need_take_pnl_*— diferencia entre las comisiones acumuladas brutas y las que se han recopilado.TakePnlpone estas a cero.
El cableado de OpenBook
Ya no está activo. Los pools de AMM v4 ya no comparten liquidez en OpenBook — la cuadrícula de órdenes límite ha sido desactivada. Las cuentas de OpenBook descritas en esta sección siguen estando en
AmmInfo de cada pool y siguen siendo validadas por los puntos de entrada de swap V1 (y por Initialize, Deposit, Withdraw) por compatibilidad hacia atrás, pero el estado en libro que referencia está vacío en la práctica. Usa los puntos de entrada de swap V2 (SwapBaseInV2 / SwapBaseOutV2) que no requieren estas cuentas en absoluto y representan la ruta de ejecución canónica hoy.amm_open_orders del AMM es una cuenta propiedad de OpenBook que contiene el estado de órdenes límite del pool en este mercado: órdenes activas, saldos liquidados, referentes, etc. amm_target_orders es del lado del AMM: contiene la cuadrícula pretendida del AMM (precio/tamaño para cada ranura de orden) para que el programa pueda comparar barato contra lo que está actualmente publicado y colocar / cancelar la diferencia.
PDAs de autoridad
Hay exactamente un PDAamm_authority para todo el programa AMM v4. Su semilla es trivial (["amm authority"]) y su bump se almacena en cada AmmInfo. Esta autoridad firma todos los movimientos de token para todos los pools de AMM v4.
amm_authority arriba realmente cubre ambas en el diseño de este programa; versiones diferentes usaron derivación diferente, así que verifica el AmmInfo.nonce específico del pool en el código).
Bóvedas
Las bóvedas SPL Token del pool son cuentas de token estándar cuyoowner es amm_authority. No son ATAs — sus direcciones son PDAs específicas derivadas en Initialize con semillas ["amm_associated_seed", coin_mint_or_pc_mint, market, amm_id]. Las direcciones se almacenan en AmmInfo; la derivación es una curiosidad única.
Token-2022 no es compatible. El programa codifica el ID del programa SPL Token para todos los movimientos de bóvedas. Intentar vincular un pool de AMM v4 a un mint de Token-2022 falla en Initialize.
Mint de LP
Un mint SPL Token clásico cuya autoridad esamm_authority. El suministro total rastrea la propiedad de LP del pool; quemar LP devuelve tokens de ambas bóvedas de forma prorrateada. Porque AMM v4 es anterior a CPMM, no hay un espejo lp_supply en el estado del pool — lee directamente el suministro del mint en cadena.
Máscara de estado
AmmInfo.status controla operaciones. Bits (la posición puede diferir entre versiones del programa — confirma mediante la fuente):
| Bit | Bandera | Efecto |
|---|---|---|
| 0 | SWAP_DISABLED | Swap* rechaza. |
| 1 | DEPOSIT_DISABLED | Deposit rechaza. |
| 2 | WITHDRAW_DISABLED | Withdraw rechaza. |
| 3 | CLMM_LIKE_MIGRATE | Bandera de puerta de migración utilizada por operaciones. |
AdminCancelOrders, AdminSetParams, etc.
Observación / oráculo
AMM v4 no tiene una cuenta de observación dedicada. Otros protocolos que necesitan un TWAP en cadena típicamente consumen los cruces de libro de OpenBook indirectamente o leen fuera de cadena. Si necesitas un TWAP de Raydium con soporte de programa, usa CPMM o CLMM.Derivar cuentas de un pool desde cero
Porque AMM v4 no fue diseñado para PDAs deterministas por par (predataba esa convención de Solana), elamm_id canónico es un keypair semillado derivado con:
amm_open_orders, amm_target_orders, amm_withdraw_queue, pool_temp_lp, pool_coin_token_account, pool_pc_token_account, y lp_mint. El SDK y API precomputan estos para ti; ver raydium-sdk-v2’s Liquidity.getAssociatedPoolKeys.
En la práctica, los integradores leen el conjunto completo de cuentas del pool desde GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID> o desde el SDK. La derivación manual es raramente necesaria.
Referencia rápida del ciclo de vida
| Evento | Cuentas creadas | Cuentas destruidas |
|---|---|---|
Initialize2 | amm_info, amm_open_orders, amm_target_orders, bóvedas, lp_mint, pool_withdraw_queue, pool_temp_lp | — |
Deposit | — (puede crear ATA de LP del usuario) | — |
Withdraw | — | — |
SwapBaseIn / SwapBaseOut | — (puede crear ATA del usuario) | — |
TakePnl | — | — |
MonitorStep (crank) | — | — |
AmmInfo permanece.
Qué leer dónde
- Matemáticas y aritmética de comisiones:
products/amm-v4/math. - División de comisiones y cómo se compara con CPMM/CLMM:
products/amm-v4/fees. - Listas de cuentas de instrucciones:
products/amm-v4/instructions. - Derivación de cuentas de OpenBook: Documentos del programa OpenBook (
github.com/openbook-dex/program).
- Programa AMM de Raydium —
raydium-io/raydium-amm reference/program-addressespara IDs de programa canónicos- OpenBook / Protocolo Serum para las cuentas de la contraparte


