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 →
Stable AMM es su propio programa; su estructura de cuentas del lado del pool se parece a AMM v4 (AmmInfo, bóvedas, autoridad), y además tiene una cuenta
ModelDataInfo que almacena la tabla de búsqueda. Esta página cubre ambas.Inventario
AMM puro. Stable AMM mantiene toda la liquidez en sus propias bóvedas y no depende de OpenBook. Llevaba una ruta de creación de mercado de OpenBook al principio de su vida, pero esa ruta ha estado inactiva durante años, y la actualización del 2026-06-22 eliminó el código residual. Las cuentas de mercado
serum_* y amm_open_orders a continuación son por lo tanto heredadas: pueden seguir apareciendo en transacciones de diseño antiguo para compatibilidad hacia atrás, pero el programa no las valida ni las lee, e las instrucciones de nuevo diseño las omiten completamente.| Categoría | Cuenta | Propietario | Rol |
|---|---|---|---|
| Pool | AmmInfo | Programa Stable | Estado del pool, referencias a bóvedas y la cuenta de datos del modelo. |
| Pool | amm_authority | Programa Stable | PDA propiedad del programa que firma los movimientos de bóvedas. Compartido entre todos los pools de Stable AMM. |
| Pool | amm_target_orders | Programa Stable | Cuenta de cuadrícula del lado del pool (retenida en diseños; ya no impulsa órdenes de OpenBook). |
| Pool | pool_coin_token_account | SPL Token | Bóveda del lado de la moneda del pool. |
| Pool | pool_pc_token_account | SPL Token | Bóveda del lado de pc del pool. |
| Pool | lp_mint | SPL Token | Acuñación de LP fungible. |
| Modelo | model_data_account | Programa Stable | La tabla de búsqueda: 50.000 × DataElement. |
| Heredada | amm_open_orders | OpenBook | La antigua cuenta OpenOrders de OpenBook del pool. Sin usar. |
| Heredada | serum_market | OpenBook | Mercado de OpenBook. Sin usar. |
| Heredada | serum_bids, serum_asks | OpenBook | Colas de oferta/demanda. Sin usar. |
| Heredada | serum_event_queue | OpenBook | Cola de eventos. Sin usar. |
| Heredada | serum_coin_vault, serum_pc_vault | SPL Token | Bóvedas a nivel de mercado de OpenBook. Sin usar. |
| Heredada | serum_vault_signer | OpenBook | Firmante de bóveda a nivel de mercado. Sin usar. |
AmmInfo
Cuenta de estado raíz. El diseño es casi idéntico a AMM v4 — parámetros del pool, decimales, comisiones, referencias de bóvedas/acuñaciones — con una adición: un campo model_data_key que apunta a la tabla de búsqueda.
model_data_key— la dirección de la tabla de búsqueda. Debe pasarse a cada instrucción.fees— estructura idéntica a AMM v4. Por defecto, comisión de intercambio del 0,25%, división LP / protocolo del 0,22% / 0,03%.coin_vault,pc_vault— las bóvedas del pool.status— máscara de bits que controla swap/depósito/retiro/crank.out_put.need_take_pnl_*— barridas porWithdrawPnl.
ModelDataInfo
La tabla de búsqueda. Una matriz dispersa grande de puntos de precio/cantidad.
InitModelData (creó la cuenta) y UpdateModelData (poblaron elementos, estableciendo valid_data_count) — fueron eliminadas en la actualización del 2026-06-22. Las tablas en pools existentes ahora son fijas. En tiempo de ejecución, las instrucciones invocables restantes aún las consumen:
- Swap / depósito / retiro llaman a funciones de búsqueda que buscan binariamente e interpolan dentro de
elements[0..valid_data_count].
DataElement
La entrada atómica en la tabla. Debe estar ordenada (x ascendente, y descendente, precio ascendente) para que la búsqueda binaria funcione.
Autoridad y bóvedas
Igual que AMM v4:amm_authorityes un PDA de programa único derivado con semilla["amm authority"]. Posee todas las bóvedas del pool y firma sus movimientos.- Bóvedas son cuentas de SPL Token cuyo propietario es
amm_authority, no ATAs.
Máscara de bits de estado
Idéntica a AMM v4. Controla si swap/depósito/retiro/crank están habilitados.Seguimiento de comisiones y PnL
La estructuraout_put rastrea:
need_take_pnl_coin,need_take_pnl_pc— comisiones de protocolo acumuladas pero aún no barridas.WithdrawPnllas saca.swap_coin_in_amount,swap_pc_in_amount, etc. — contadores de análisis.
Tamaño de cuenta
ElModelDataInfo es grande (~1,2 MB, ya que 50.000 elementos × 24 bytes por elemento). Por eso crear un pool de Stable requiere asignación explícita de renta y pre-asignación de cuenta. El SDK de Raydium y las herramientas manejan esto de manera transparente; los integradores rara vez necesitan asignar manualmente.
Derivación de cuentas desde cero
Como AMM v4, Stable AMM usa claves con semilla (no PDAs puras). La identidad canónica del pool se deriva mediante:Qué leer dónde
- Listas de cuentas de instrucción:
products/stable/instructions. - Cómo la interpolación usa la tabla:
products/stable/math. - Estructura de comisiones y WithdrawPnl:
products/stable/fees. - El desacoplamiento de OpenBook del 2026-06-22:
reference/changelog.

