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 →
Resumen en un párrafo
CLMM — Concentrated Liquidity Market Maker — es el AMM estilo Uniswap-v3 de Raydium. En lugar de distribuir el depósito de un proveedor de liquidez en toda la curva de precios, CLMM permite que los LP depositen en un rango de precios específico. Dentro de ese rango, cada dólar de depósito es muchas veces más productivo que lo que sería en un pool CPMM; fuera del rango, el depósito no genera ganancias y permanece como un saldo de un solo lado. El programa rastrea la liquidez por tick (un cubo de precios discretizado), precifica el estado del pool por la raíz cuadrada del precio codificado como un número de punto fijo Q64.64 (sqrt_price_x64), y acuña un NFT para cada posición de LP en lugar de un token LP fungible.
Novedades
La última versión de CLMM incluye tres adiciones sobre el núcleo estilo Uniswap-v3. Son opcionales en el momento de la creación del pool y compatibles hacia atrás con pools y posiciones existentes:- Órdenes límite. Los LP ahora pueden estacionar una orden de un solo tick a un precio específico y hacer que la ruta de swap la complete FIFO cuando el swap cruza ese tick. Las órdenes se liquidan en la ATA del propietario al precio límite; un guardián fuera de la cadena (
limit_order_admin) puede recopilar órdenes completadas sin que el propietario esté en línea. Consulta Instrucciones → OpenLimitOrder / SettleLimitOrder y Matemáticas → Coincidencia de órdenes límite durante swap. - Tarifa de un solo lado (
CollectFeeOn). Los pools se pueden configurar para tomar tarifas de swap del lado de entrada (comportamiento heredado, modo0), o siempre detoken_0(1), o siempre detoken_1(2). Útil cuando un lado del par es el token de contabilidad canónico (por ejemplo, USDC). Consulta Tarifas → Tarifa de un solo lado. - Tarifa dinámica. Los pools pueden optar por un recargo de tarifa que rastrea la volatilidad y aumenta con el movimiento rápido de ticks, decayendo con el tiempo. Calibrado por una
DynamicFeeConfigpor nivel y unaDynamicFeeInfopor pool. Consulta Tarifas → Tarifa dinámica y Matemáticas → Derivación de tarifa dinámica.
CreateCustomizablePool, expone los tres controles en el momento de la creación del pool. La clásica CreatePool continúa funcionando para pools de tarifa predeterminada sin órdenes límite ni tarifas dinámicas.
Una versión posterior añade multi-pools con permisos: CreatePermissionedPool permite que un operador en la lista blanca (uno que posea una PDA Permission) cree más de un pool para el mismo par y nivel de tarifa plegando un seed_index en la dirección del pool, y refuerza OpenLimitOrder para rechazar órdenes cuya cuenta de token de entrada o salida esté congelada. Consulta Instrucciones → CreatePermissionedPool y la entrada del registro de cambios del 2026-07-30.
La versión 2026-08 añade una ruta de congelación de posición condicional para pools de emisores restringidos por KYC seleccionados. Cada nuevo acuñamiento de NFT de posición utiliza el pool como autoridad de congelación, pero la cuenta de token NFT permanece descongelada y transferible por defecto. CLMM la congela solo cuando la posición se abre a través de OpenPositionV2 u OpenPositionWithToken22Nft y la autoridad de congelación de cualquiera de los mints del pool coincide con la lista de emisores restringidos del programa. El propietario aún puede gestionar la liquidez y cerrar una posición coincidente, pero no puede transferir su NFT ni cambiar el propietario de la cuenta de token. Las posiciones existentes no se congelan retroactivamente. Consulta Ticks y posiciones → Posiciones de emisor restringido y la entrada del registro de cambios del 2026-08-17.
Lo que CLMM te ofrece
- Eficiencia de capital. Un LP de stablecoin-stablecoin concentrando liquidez en una banda de ±0.1% alrededor de la paridad puede ganar 100×+ las tarifas por dólar de TVL en comparación con un pool CPMM del mismo par.
- Contabilidad de tarifas a nivel de posición. Las tarifas se acumulan por posición, no por mint de LP. Dos posiciones en el mismo pool ganan diferentes cantidades de tarifas según sus rangos y la ruta que ha tomado el precio.
- Múltiples niveles de tarifa por par. Un par puede tener varios pools CLMM, cada uno vinculado a una
AmmConfigdiferente con su propia tasa de tarifa comercial y espaciado de ticks. La interfaz web y los routers muestran el nivel que tiene más liquidez al precio actual. - Incentivizable directamente en el pool. Hasta tres flujos de tokens de recompensa se pueden adjuntar a un pool; las posiciones recopilan recompensas pro-rata según los segundos × liquidez en rango que contribuyen. Consulta
products/clmm/fees. - Posiciones NFT. Cada posición es un token no fungible. Transferir el NFT normalmente transfiere la posición; las billeteras e interfaces pueden mostrar posiciones de la misma manera que muestran coleccionables. Solo una posición V2 cuyo mint subyacente coincida con el filtro de emisor restringido está congelada y no transferible.
- Soporte de Token-2022 en ambos lados del par, con las mismas restricciones de extensión que CPMM.
Lo que CLMM no es
- No es configurar y olvidar. Un rango establecido cuando SOL está a $160 no generará ganancias si SOL se mueve a $80, a menos que lo ajustes activamente. CLMM recompensa a los LP activos; los LP pasivos deberían quedarse con CPMM.
- No es sin costo de apertura. Cada nuevo tick-array que cruza la posición debe inicializarse, lo que cuesta renta. Los rangos amplios son más baratos; los estrechos no lo son.
- No es un CLOB. A diferencia de AMM v4, CLMM no tiene dependencia de OpenBook. Toda la liquidez se encuentra en el mapa de ticks.
- No es un superconjunto de CPMM. Una posición CLMM que abarca
[tick_min, tick_max]en rango máximo se comporta similarmente a CPMM, pero con diferentes costos de gas, un modelo de contabilidad de tarifas diferente, y sin token LP fungible. Si quieres un pool simple con LP fungible, usa CPMM.
Cómo CLMM difiere de CPMM y AMM v4
Modelo mental
Piensa en un pool CLMM como tres estructuras de datos superpuestas:- Una curva continua en el espacio
sqrt_price. El precio del pool se representa comosqrt_price_x64, un punto fijo Q64.64. Los swaps caminan a lo largo de esta curva; dentro de un límite de tick, las matemáticas son matemáticas estándar de AMM de liquidez concentrada (consultaalgorithms/clmm-math). - Un mapa de ticks discreto. Los precios se cuantizan en ticks — potencias enteras de
1.0001. Cada tick tiene unsqrt_priceconocido. Las posiciones hacen referencia a sus puntos finales como índices de ticks enteros. Los índices de ticks se agrupan en arrays de ticks de tamaño fijo para almacenamiento. - Contabilidad de tarifas y recompensas por posición. Cada posición almacena el
fee_growth_insideglobal en el momento de su última actualización. Cuando el LP toca la posición (abre, cierra, ajusta, recopila), el programa resta el valor almacenado del global actual para calcular lo que se debe. Este es el patrónfeeGrowthInside0X128 / feeGrowthInside1X128de Uniswap-v3.
- Abrir posición: elige rango de ticks, deposita tokens, acuña NFT, inserta liquidez en el mapa de ticks dentro del rango, inicializa cualquier tick-array previamente vacío.
- Aumentar / disminuir liquidez: ajusta la cantidad almacenada en la cuenta de posición asociada del NFT y en el mapa de ticks; recopila tarifas acumuladas al mismo tiempo.
- Swap: camina desde el
sqrt_price_x64actual en la dirección del comercio, consumiendo liquidez activa hasta que se agote la entrada o se alcance el siguiente tick inicializado; cruza el tick y recoge o suelta liquidez en el nuevo lado. - Recopilar tarifas / recompensas: calcula
fee_growth_inside_now − fee_growth_inside_last×position_liquiditypara cada lado y cada flujo de recompensa; transfiere.
liquidity.
Cuándo elegir CLMM
Elige CLMM cuando:- Estés proporcionando liquidez a un par estable o que revierte a la media (USDC/USDT, jitoSOL/SOL, wBTC/BTC) y quieras concentrarte cerca de la paridad.
- Seas un creador de mercado dispuesto a monitorear el precio y rebalancear.
- Necesites específicamente emisiones de incentivos por pool sin configurar una granja separada.
- Necesites contabilidad por posición para tu propio producto de LP (bóveda, producto estructurado, etc.).
- Estés lanzando un nuevo token con descubrimiento de precio desconocido.
- Quieras un único token LP fungible que puedas apostar, bloquear o componer.
- Quieras una experiencia de LP pasiva.
- Necesites específicamente la profundidad híbrida CLOB que AMM v4 coloca en OpenBook.
- Estés migrando integraciones existentes de AMM v4 y no estés abriendo nuevas posiciones.
Las posiciones son NFTs
Una posición CLMM se representa en cadena por dos cuentas:- Un mint de NFT de posición con suministro 1.
- Una cuenta de estado de posición personal vinculada al mint de NFT, que contiene los ticks, liquidez y últimos valores de crecimiento de tarifas observados de la posición.
products/clmm/ticks-and-positions.
Las versiones anteriores de CLMM también creaban una cuenta
ProtocolPositionState por (pool, tick_lower, tick_upper) para agregar liquidez para ese rango. Las versiones más nuevas ya no la crean ni la usan — el campo aún aparece en las listas de cuentas OpenPosition / IncreaseLiquidity / DecreaseLiquidity como una UncheckedAccount para compatibilidad ABI, pero el programa no la lee ni escribe. La contabilidad de rango agregado vive en los puntos finales de ticks (liquidity_gross, liquidity_net) directamente.Dónde ir a continuación
- Cuentas — los diseños de cuentas de pool, config, tick-array y posición.
- Ticks y posiciones — el mapa de ticks, espaciado de ticks, tamaño de tick-array, posiciones basadas en NFT.
- Matemáticas —
sqrt_price_x64, recorrido de swap, derivación defee_growth_inside. - Instrucciones —
OpenPosition,IncreaseLiquidity,Swap,CollectRewards, la familia de órdenes límite, yCreateCustomizablePool. - Tarifas y recompensas — el modelo de tarifa por posición, modos de tarifa de un solo lado, tarifa dinámica, y los tres espacios de recompensa.
- Demostraciones de código — tutoriales de abrir / ajustar / swap / recopilar / orden límite / pool personalizable en TypeScript.
- Fuente de CLMM de Raydium —
raydium-io/raydium-clmm - Whitepaper de Uniswap v3 (“Uniswap v3 Core”) para las matemáticas que CLMM hereda directamente
reference/program-addressespara IDs de programa canónicos

