Saltar al contenido principal
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 →

El modelo de tarifas

Stable AMM utiliza la misma estructura de tarifas que AMM v4. Solo hay un nivel de tarifa por pool (establecido en la inicialización); los pools no pueden reconfigurarse a niveles más altos.
CampoPredeterminadoSignificado
swap_fee_numerator / swap_fee_denominator25 / 10_000Tarifa comercial bruta: 0,25% del volumen de entrada.
trade_fee_numerator / trade_fee_denominator25 / 10_000Mismo 0,25%; campo heredado que se usaba anteriormente para precios de órdenes en OpenBook, retenido por compatibilidad de diseño.
pnl_numerator / pnl_denominator12 / 100Participación del protocolo en la tarifa: 12% — es decir, 0,25% × 12% = 0,03% del volumen.
min_separate_numerator / min_separate_denominator4 / 10_000Piso de redondeo interno.
No hay tarifa de fondo ni tarifa de creador — estas son invenciones posteriores a AMM v4 (CPMM/CLMM). Stable AMM es anterior a esa convención.

Cómo se calcula la división

En cada swap:
gross_fee = ceil(amount_in * (swap_fee_numerator / swap_fee_denominator))    // p. ej., 0,25% de amount_in
pnl_portion = gross_fee * (pnl_numerator / pnl_denominator)                  // 12% de gross_fee
lp_portion = gross_fee − pnl_portion                                          // 88% de gross_fee
  • lp_portion permanece en la bóveda, infla k y beneficia a los LP en el canje.
  • pnl_portion incrementa AmmInfo.out_put.need_take_pnl_coin o need_take_pnl_pc (dependiendo del token de entrada) y es retirada por WithdrawPnl.
El mismo truco de preservación de invariantes que CPMM: la cantidad de PnL se encuentra físicamente en la bóveda pero se resta de las “reservas efectivas” utilizadas en la matemática de la curva, por lo que su eliminación no cambia el precio.

PnL de OpenBook (retirado)

Al principio de su vida, el pool también publicaba órdenes limitadas en OpenBook; cuando se ejecutaban, ganaba o perdía el diferencial entre creador de mercado y tomador, se liquidaba durante MonitorStep y se registraba el resultado en los contadores out_put.total_pnl_{coin,pc}. Esa ruta ha estado inactiva durante años — el pool no tiene órdenes abiertas, por lo que el único acumulación de tarifas es la participación del protocolo del 0,03% descrita anteriormente. Los contadores total_pnl_* permanecen en el diseño pero ya no se incrementan. La actualización del 2026-06-22 eliminó el código restante de OpenBook (incluido MonitorStep). CPMM se convirtió en el predeterminado para nuevos pools en parte debido a este acoplamiento anterior a OpenBook; Stable AMM es independiente del libro de órdenes.

Recopilación

El multisig de Raydium (o quien controle amm_admin) llama a WithdrawPnl para retirar:
  1. Transfiere need_take_pnl_coin y need_take_pnl_pc desde las bóvedas a cuentas designadas por el administrador.
  2. Pone a cero los contadores.
La operación no mueve la curva. Los LP no ven cambios de precio.
WithdrawPnl fue modificado en la actualización del 2026-06-22: ahora utiliza un diseño fijo de 10 cuentas, solo para administrador, sin ruta de compatibilidad (los diseños antiguos fallan con errores como InvalidTokenCoin), y cuando los fondos disponibles del pool son insuficientes para cubrir el PnL devuelve TakePnlError directamente en lugar de deshabilitar el pool. Consulta products/stable/instructions.

Canje de tarifas de LP

Sin instrucción dedicada para “recopilar tarifas”. Las tarifas de LP se acumulan en las bóvedas, inflando las reservas. Los LP las realizan quemando LP a través de Withdraw. El valor de un token LP crece a medida que crecen las reservas.

Visualización: a dónde va $1.000 de volumen

En un Swap pesado en USDC de $1.000 contra un pool Stable con parámetros predeterminados:
Tarifa comercial bruta (0,25%):     $2,50
  Participación de LP   (0,22%):    $2,20  → permanece en el pool, aumenta k
  Participación de PnL  (0,03%):    $0,30  → need_take_pnl_pc, retirada por WithdrawPnl
Usuario recibe (menos curva):       $997,50
Compara con AMM v4 (idéntico) y CPMM (nivel 0,25%, sin tarifa de creador): CPMM da a los LP $2,10, protocolo $0,30, fondo $0,10.

Tabla de comparación

Stable AMMAMM v4CPMM index=0
Tarifa comercial0,25%0,25%0,25%
LP0,22%0,22%0,21%
Protocolo0,03%0,03%0,03%
FondoNingunoNinguno0,01%
CreadorNingunoNinguno0 por defecto
Matriz completa: reference/fee-comparison.

Notas para integradores

  • Cotización: Siempre lee AmmInfo de la cadena; no codifiques las tarifas. Con SetParams ahora eliminado, los parámetros de tarifa en los pools existentes son efectivamente fijos.
  • Curva vs. tarifas: La tarifa del 0,25% es independiente de si la curva es una fórmula (x·y=k en AMM v4) o una tabla de búsqueda (Stable). Ambas aplican el mismo 0,25% al monto de entrada.
  • Sin recompensas: Los pools Stable no admiten emisiones de recompensas en el pool. Las granjas del ecosistema (Farm v3/v5/v6) manejan el staking en otro lugar.

Próximos pasos

Fuentes:
  • raydium-stable/program/src/state.rs (struct Fees)
  • Campos AmmInfo.fees en cadena en pools mainnet activos