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

# Visão geral do CLMM

> O que é o CLMM do Raydium, como a liquidez concentrada difere de um pool de produto constante, e quando escolhê-lo em vez de CPMM ou AMM v4.

<Info>
  **Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.**

  [Ver versão em inglês →](/products/clmm/overview)
</Info>

## Resumo em um parágrafo

CLMM — **C**oncentrated **L**iquidity **M**arket **M**aker — é o AMM estilo Uniswap-v3 do Raydium. Em vez de espalhar o depósito de um provedor de liquidez por toda a curva de preço, o CLMM permite que LPs depositem em um **intervalo de preço específico**. Dentro desse intervalo, cada dólar depositado é muitas vezes mais produtivo do que seria em um pool CPMM; fora do intervalo, o depósito não gera rendimento e fica como um saldo de um único lado. O programa rastreia liquidez por **tick** (um bucket de preço discretizado), precifica o estado do pool pela raiz quadrada do preço codificado como um número de ponto fixo Q64.64 (`sqrt_price_x64`), e cria um **NFT** para cada posição de LP em vez de um token LP fungível.

## Novidades

O lançamento mais recente do CLMM adiciona três funcionalidades ao núcleo estilo Uniswap-v3. Elas são opcionais no momento da criação do pool e compatíveis com versões anteriores com pools e posições existentes:

* **Limit orders.** Os LPs agora podem definir uma ordem de um único tick em um preço específico e ter o caminho de swap preenchê-la FIFO quando o swap cruza esse tick. As ordens são liquidadas na ATA do proprietário ao preço limite; um guardião fora da cadeia (`limit_order_admin`) pode coletar ordens preenchidas sem o proprietário estar online. Veja [Instructions → OpenLimitOrder / SettleLimitOrder](/pt/products/clmm/instructions) e [Math → Limit-order matching during swap](/pt/products/clmm/math).
* **Taxa de um único lado (`CollectFeeOn`).** Os pools podem ser configurados para cobrar taxas de swap do lado de entrada (comportamento legado, modo `0`), ou sempre de `token_0` (`1`), ou sempre de `token_1` (`2`). Útil quando um lado do par é o token de contabilidade canônico (por exemplo, USDC). Veja [Fees → Single-sided fee](/pt/products/clmm/fees).
* **Taxa dinâmica.** Os pools podem optar por uma sobretaxa de taxa que rastreia volatilidade e sobe com o movimento rápido de ticks, decaindo ao longo do tempo. Calibrada por um `DynamicFeeConfig` por tier e um `DynamicFeeInfo` por pool. Veja [Fees → Dynamic fee](/pt/products/clmm/fees) e [Math → Dynamic fee derivation](/pt/products/clmm/math).

Uma nova instrução, `CreateCustomizablePool`, expõe todos os três controles no momento da criação do pool. A instrução clássica `CreatePool` continua funcionando para pools com taxa padrão, sem limit orders ou taxas dinâmicas.

## O que o CLMM oferece

* **Eficiência de capital.** Um LP stablecoin-stablecoin concentrando liquidez em uma faixa de ±0,1% ao redor da paridade pode gerar 100×+ as taxas por dólar de TVL comparado a um pool CPMM do mesmo par.
* **Contabilidade de taxas por posição.** As taxas acumulam por posição, não por mint de LP. Duas posições no mesmo pool ganham quantidades diferentes de taxa com base em seus intervalos e no caminho que o preço percorreu.
* **Múltiplos tiers de taxa por par.** Um par pode ter vários pools CLMM, cada um vinculado a um `AmmConfig` diferente com sua própria taxa de negociação e espaçamento de ticks. A UI e os roteadores exibem qualquer tier que tenha mais liquidez ao preço atual.
* **Incentivável diretamente no pool.** Até três fluxos de token de recompensa podem ser anexados a um pool; posições coletam recompensas pro-rata com base nos segundos × liquidez em intervalo que contribuem. Veja [`products/clmm/fees`](/pt/products/clmm/fees).
* **Posições em NFT.** Cada posição é um token não fungível com mint igual a um PDA determinístico. Transferir o NFT transfere a posição; carteiras e UIs podem exibir posições da mesma forma que exibem colecionáveis.
* **Suporte a Token-2022** em ambos os lados do par, com as mesmas restrições de extensão que CPMM.

## O que o CLMM não é

* **Não é configure-e-esqueça.** Um intervalo definido quando SOL está em \$160 não renderá nada se SOL se mover para \$80, a menos que você o ajuste ativamente. O CLMM recompensa LPs ativos; LPs passivos devem ficar com o CPMM.
* **Não é gratuito de abrir.** Cada novo tick-array que a posição cruza deve ser inicializado, custando aluguel. Intervalos amplos são mais baratos; intervalos estreitos não são.
* **Não é um CLOB.** Diferentemente do AMM v4, o CLMM não tem dependência do OpenBook. Toda a liquidez fica no mapa de ticks.
* **Não é um superconjunto do CPMM.** Uma posição CLMM abrangendo `[tick_min, tick_max]` em intervalo máximo se comporta *similarmente* ao CPMM, mas com custos de gás diferentes, um modelo de contabilidade de taxa diferente e nenhum token LP fungível. Se você quiser um pool LP fungível simples, use CPMM.

## Como o CLMM difere do CPMM e AMM v4

| Dimensão              | AMM v4                 | CPMM                             | CLMM                                   |
| --------------------- | ---------------------- | -------------------------------- | -------------------------------------- |
| Curva                 | Produto constante      | Produto constante                | Concentrada (baseada em tick)          |
| Compartilha de LP     | Mint LP fungível       | Mint LP fungível                 | NFT por posição                        |
| Liquidez fica…        | Em todos os preços     | Em todos os preços               | Em um intervalo escolhido pelo usuário |
| Tiers de taxa         | Fixo 0,25%             | Por `AmmConfig` (ex., 0,25%, 1%) | Por `AmmConfig` × espaçamento de tick  |
| Gerenciamento ativo   | Não aplicável          | Não aplicável                    | **Obrigatório**                        |
| Contabilidade de taxa | Nível de pool          | Nível de pool                    | Por posição                            |
| Farms de recompensa   | Programa Farm separado | Programa Farm separado           | Integrado (até 3 recompensas)          |
| Token-2022            | Não                    | Sim                              | Sim                                    |
| Oracle on-chain       | Não                    | Anel de `observation`            | Array de `observation` por pool        |

## Modelo mental

Pense em um pool CLMM como três estruturas de dados sobrepostas:

1. **Uma curva contínua no espaço `sqrt_price`.** O preço do pool é representado como `sqrt_price_x64`, um ponto fixo Q64.64. Os swaps caminham ao longo dessa curva; dentro de um limite de tick, a matemática é a matemática padrão de AMM de liquidez concentrada (veja [`algorithms/clmm-math`](/pt/algorithms/clmm-math)).
2. **Um mapa de tick discreto.** Os preços são quantizados em ticks — potências inteiras de `1.0001`. Cada tick tem um `sqrt_price` conhecido. As posições fazem referência a seus pontos finais como índices de tick inteiros. Os índices de tick são agrupados em **arrays de tick** de tamanho fixo para armazenamento.
3. **Contabilidade de taxa e recompensa por posição.** Cada posição armazena o `fee_growth_inside` global no momento de sua última atualização. Quando o LP toca a posição (abrir, fechar, ajustar, coletar), o programa subtrai o valor armazenado do global atual para calcular o que é devido. Este é o padrão `feeGrowthInside0X128 / feeGrowthInside1X128` do Uniswap-v3.

Cada ação do usuário se decompõe em transições de estado nessas três estruturas:

* **Abrir posição:** escolha o intervalo de tick, deposite tokens, crie NFT, insira liquidez no mapa de tick dentro do intervalo, inicialize qualquer array de tick previamente vazio.
* **Aumentar / diminuir liquidez:** ajuste o valor armazenado na conta de posição associada ao NFT e no mapa de tick; colete taxas acumuladas ao mesmo tempo.
* **Swap:** caminhe do `sqrt_price_x64` atual na direção da negociação, consumindo liquidez ativa até que a entrada seja esgotada ou o próximo tick inicializado seja alcançado; cruze o tick e pegue ou solte liquidez no novo lado.
* **Coletar taxas / recompensas:** calcule `fee_growth_inside_now − fee_growth_inside_last` × `position_liquidity` para cada lado e cada fluxo de recompensa; transfira para fora.

O pool é indiferente de outra forma sobre quais posições estão abertas. Dois LPs no mesmo intervalo veem o mesmo caminho de crescimento de taxa, escalado pelos seus valores individuais de `liquidity`.

## Quando escolher CLMM

Escolha CLMM quando:

* Você está fornecendo liquidez para um par **estável ou que reverte à média** (USDC/USDT, jitoSOL/SOL, wBTC/BTC) e quer se concentrar perto da paridade.
* Você é um **criador de mercado** disposto a monitorar o preço e rebalancear.
* Você especificamente precisa de **emissões de incentivo por pool** sem configurar uma farm separada.
* Você precisa de **contabilidade por posição** para seu próprio produto de LP (vault, produto estruturado, etc.).

Prefira [CPMM](/pt/products/cpmm) quando:

* Você está lançando um novo token com descoberta de preço desconhecida.
* Você quer um único token LP fungível que possa fazer stake, travar ou compor com.
* Você quer uma experiência de LP passiva.

Prefira [AMM v4](/pt/products/amm-v4) quando:

* Você especificamente precisa da profundidade AMM híbrida-CLOB que o AMM v4 coloca no OpenBook.
* Você está migrando integrações existentes do AMM v4 e não está abrindo novas posições.

## Posições são NFTs

Uma posição CLMM é representada on-chain por duas contas:

* Um **mint de NFT de posição** com suprimento 1.
* Uma conta de **estado de posição pessoal** chaveada ao mint de NFT, contendo os ticks, liquidez e últimos valores de crescimento de taxa observados da posição.

Transferir o NFT transfere a posição — a autoridade da conta de estado pessoal-posição é o proprietário do NFT. Este é o mesmo padrão que o Uniswap v3 pionerou, implementado no modelo de conta da Solana. Um tratamento detalhado está em [`products/clmm/ticks-and-positions`](/pt/products/clmm/ticks-and-positions).

<Note>
  Lançamentos CLMM mais antigos também criavam uma conta `ProtocolPositionState` por `(pool, tick_lower, tick_upper)` para agregar liquidez para esse intervalo. **Lançamentos mais novos não a criam nem usam mais** — o campo ainda aparece nas listas de contas `OpenPosition` / `IncreaseLiquidity` / `DecreaseLiquidity` como um `UncheckedAccount` para compatibilidade com ABI, mas o programa não a lê nem escreve. A contabilidade de intervalo agregado fica nos pontos finais de tick (`liquidity_gross`, `liquidity_net`) diretamente.
</Note>

## Próximos passos

* [Accounts](/pt/products/clmm/accounts) — os layouts de contas de pool, config, tick-array e posição.
* [Ticks and positions](/pt/products/clmm/ticks-and-positions) — o mapa de ticks, espaçamento de ticks, tamanho de tick-array, posições baseadas em NFT.
* [Math](/pt/products/clmm/math) — `sqrt_price_x64`, passo a passo de swap, derivação de `fee_growth_inside`.
* [Instructions](/pt/products/clmm/instructions) — `OpenPosition`, `IncreaseLiquidity`, `Swap`, `CollectRewards`, a família de limit-order, e `CreateCustomizablePool`.
* [Fees and rewards](/pt/products/clmm/fees) — o modelo de taxa por posição, modos de taxa de um único lado, taxa dinâmica, e os três slots de recompensa.
* [Code demos](/pt/products/clmm/code-demos) — walkthroughs de abrir / ajustar / swap / coletar / limit-order / customizable-pool em TypeScript.

Fontes:

* [Raydium CLMM source — `raydium-io/raydium-clmm`](https://github.com/raydium-io/raydium-clmm)
* Uniswap v3 whitepaper ("Uniswap v3 Core") para a matemática que o CLMM herda diretamente
* [`reference/program-addresses`](/pt/reference/program-addresses) para IDs de programa canônicos
