> ## 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.

# Descripción general de CLMM

> Qué es el CLMM de Raydium, cómo se diferencia la liquidez concentrada de un pool de producto constante, y cuándo elegirlo sobre CPMM o AMM v4.

<Info>
  **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 →](/products/clmm/overview)
</Info>

## Resumen en un párrafo

CLMM — **C**oncentrated **L**iquidity **M**arket **M**aker — es el AMM estilo Uniswap-v3 de Raydium. En lugar de dispersar el depósito de un proveedor de liquidez en toda la curva de precios, CLMM permite a los LP depositar en un **rango de precio específico**. Dentro de ese rango, cada dólar de depósito es muchas veces más productivo que lo 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 bucket de precio discretizado), valida 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 versión más reciente de CLMM incluye tres adiciones además del 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 tick único a un precio específico y hacer que la ruta de swap la ejecute FIFO cuando el swap cruza ese tick. Las órdenes se resuelven en el ATA del propietario al precio límite; un keeper fuera de la cadena (`limit_order_admin`) puede recopilar órdenes ejecutadas sin que el propietario esté en línea. Consulta [Instrucciones → OpenLimitOrder / SettleLimitOrder](/es/products/clmm/instructions) y [Matemáticas → Coincidencia de orden límite durante swap](/es/products/clmm/math).
* **Tarifa de un solo lado (`CollectFeeOn`).** Los pools se pueden configurar para tomar tarifas de swap del lado de entrada (comportamiento heredado, modo `0`), o siempre de `token_0` (`1`), o siempre de `token_1` (`2`). Útil cuando un lado del par es el token de contabilidad canónico (p. ej., USDC). Consulta [Tarifas → Tarifa de un solo lado](/es/products/clmm/fees).
* **Tarifa dinámica.** Los pools pueden optar por un recargo de tarifa que rastrée volatilidad y que suba con movimientos rápidos de tick y decay con el tiempo. Calibrado por un `DynamicFeeConfig` por nivel y un `DynamicFeeInfo` por pool. Consulta [Tarifas → Tarifa dinámica](/es/products/clmm/fees) y [Matemáticas → Derivación de tarifa dinámica](/es/products/clmm/math).

Una nueva instrucción, `CreateCustomizablePool`, expone los tres controles en el momento de la creación del pool. El clásico `CreatePool` continúa funcionando para pools de tarifa predeterminada sin órdenes límite ni tarifas dinámicas.

## Lo que CLMM te ofrece

* **Eficiencia de capital.** Un LP de stablecoin a stablecoin concentrando liquidez en una banda ±0.1% alrededor de paridad puede ganar 100×+ las tarifas por dólar de TVL comparado 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 tarifa 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 un `AmmConfig` diferente con su propia tasa de tarifa comercial y espaciado de tick. La UI web y los routers muestran el nivel que tiene más liquidez al precio actual.
* **Incentivizable directamente en el pool.** Hasta tres flujos de token de recompensa se pueden conectar a un pool; las posiciones recopilan recompensas pro-rata según los segundos × liquidez en rango que contribuyen. Consulta [`products/clmm/fees`](/es/products/clmm/fees).
* **Posiciones NFT.** Cada posición es un token no fungible con mint igual a un PDA determinista. Transferir el NFT transfiere la posición; las carteras y UIs pueden mostrar posiciones de la misma manera que muestran coleccionables.
* **Soporte Token-2022** en ambos lados del par, con las mismas restricciones de extensión que CPMM.

## Lo que CLMM no es

* **No es de configurar y olvidar.** Un rango establecido cuando SOL es \$160 no ganará nada si SOL se mueve a \$80, a menos que lo ajustes activamente. CLMM recompensa a los LP activos; los LP pasivos deben quedarse con CPMM.
* **No tiene costo cero de apertura.** Cada nuevo tick-array que cruce 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 abarque `[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 se diferencia de CPMM y AMM v4

| Dimensión               | AMM v4                 | CPMM                                | CLMM                                |
| ----------------------- | ---------------------- | ----------------------------------- | ----------------------------------- |
| Curva                   | Producto constante     | Producto constante                  | Concentrada (basada en tick)        |
| Participación de LP     | Mint LP fungible       | Mint LP fungible                    | NFT por posición                    |
| La liquidez vive en…    | Todos los precios      | Todos los precios                   | En un rango elegido por el usuario  |
| Niveles de tarifa       | Fijo 0.25%             | Por `AmmConfig` (p. ej., 0.25%, 1%) | Por `AmmConfig` × espaciado de tick |
| Gestión activa          | No aplicable           | No aplicable                        | **Requerida**                       |
| Contabilidad de tarifas | Nivel de pool          | Nivel de pool                       | Por posición                        |
| Granjas de recompensa   | Programa Farm separado | Programa Farm separado              | Integrado (hasta 3 recompensas)     |
| Token-2022              | No                     | Sí                                  | Sí                                  |
| Oráculo on-chain        | No                     | Ring de `observation`               | Array de `observation` por pool     |

## Modelo mental

Piensa en un pool CLMM como tres estructuras de datos superpuestas:

1. **Una curva continua en espacio `sqrt_price`.** El precio del pool se representa como `sqrt_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 (consulta [`algorithms/clmm-math`](/es/algorithms/clmm-math)).
2. **Un mapa de ticks discreto.** Los precios se cuantizan en ticks — potencias enteras de `1.0001`. Cada tick tiene un `sqrt_price` conocido. Las posiciones hacen referencia a sus extremos como índices de tick enteros. Los índices de tick se agrupan en **arrays de tick** de tamaño fijo para almacenamiento.
3. **Contabilidad de tarifas y recompensas por posición.** Cada posición almacena el `fee_growth_inside` global en el momento de su última actualización. Cuando el LP toca la posición (abrir, cerrar, ajustar, recopilar), el programa resta el valor almacenado del actual global para calcular lo que se debe. Este es el patrón Uniswap-v3 `feeGrowthInside0X128 / feeGrowthInside1X128`.

Cada acción del usuario se descompone en transiciones de estado en estas tres estructuras:

* **Abrir posición:** elige rango de tick, 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 al NFT y en el mapa de ticks; recopila tarifas acumuladas al mismo tiempo.
* **Swap:** camina desde el `sqrt_price_x64` actual en la dirección del comercio, consumiendo liquidez activa hasta que se agota la entrada o se alcanza 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_liquidity` para cada lado y cada flujo de recompensa; transfiere afuera.

El pool es de otra manera indiferente a qué posiciones estén abiertas. Dos LP en el mismo rango ven la misma ruta de crecimiento de tarifas, escalada por sus cantidades individuales de `liquidity`.

## Cuándo elegir CLMM

Elige CLMM cuando:

* Estés proporcionando liquidez a un **par estable o que revierta 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 LP (vault, producto estructurado, etc.).

Prefiere [CPMM](/es/products/cpmm) cuando:

* Estés lanzando un token nuevo con descubrimiento de precio desconocido.
* Quieras un único token LP fungible que puedas hacer stake, bloquear o componer.
* Quieras una experiencia de LP pasiva.

Prefiere [AMM v4](/es/products/amm-v4) cuando:

* Necesites específicamente la profundidad AMM 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 NFT

Una posición CLMM se representa en la cadena mediante dos cuentas:

* Un **mint NFT de posición** con suministro 1.
* Una cuenta de **estado de posición personal** vinculada al mint NFT, que contiene los ticks, liquidez y valores de crecimiento de tarifa observados por última vez de la posición.

Transferir el NFT transfiere la posición — la autoridad de la cuenta de posición personal es el propietario del NFT. Este es el patrón que Uniswap v3 pionero, implementado en el modelo de cuentas de Solana. Un tratamiento detallado se encuentra en [`products/clmm/ticks-and-positions`](/es/products/clmm/ticks-and-positions).

<Note>
  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 un `UncheckedAccount` para compatibilidad ABI, pero el programa no la lee ni escribe. La contabilidad de rango agregada vive en los extremos del tick (`liquidity_gross`, `liquidity_net`) directamente.
</Note>

## A dónde ir después

* [Cuentas](/es/products/clmm/accounts) — el pool, config, tick-array, y diseños de cuenta de posición.
* [Ticks y posiciones](/es/products/clmm/ticks-and-positions) — el mapa de ticks, espaciado de tick, dimensionamiento de tick-array, posiciones basadas en NFT.
* [Matemáticas](/es/products/clmm/math) — `sqrt_price_x64`, paso de swap, derivación de `fee_growth_inside`.
* [Instrucciones](/es/products/clmm/instructions) — `OpenPosition`, `IncreaseLiquidity`, `Swap`, `CollectRewards`, la familia de orden límite, y `CreateCustomizablePool`.
* [Tarifas y recompensas](/es/products/clmm/fees) — el modelo de tarifa por posición, modos de tarifa de un solo lado, tarifa dinámica, y los tres espacios de recompensa.
* [Demos de código](/es/products/clmm/code-demos) — aperturas / ajuste / swap / recopilación / orden límite / recorridos de pool personalizable en TypeScript.

Fuentes:

* [Fuente CLMM de Raydium — `raydium-io/raydium-clmm`](https://github.com/raydium-io/raydium-clmm)
* Whitepaper Uniswap v3 ("Uniswap v3 Core") para las matemáticas que CLMM hereda directamente
* [`reference/program-addresses`](/es/reference/program-addresses) para IDs de programa canónico
