Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Resumo em um parágrafo
CLMM — Concentrated Liquidity Market Maker — é o AMM estilo Uniswap-v3 do Raydium. Em vez de distribuir o depósito de um provedor de liquidez por toda a curva de preço, o CLMM permite que os LPs depositem em um intervalo de preço específico. Dentro desse intervalo, cada dólar de depósito é 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 unilateral. 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 emite um NFT para cada posição de LP em vez de um token LP fungível.
O que há de novo
O lançamento mais recente do CLMM traz três adições 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 estacionar uma ordem de tick único 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 keeper off-chain (
limit_order_admin) pode varrer ordens preenchidas sem o proprietário estar online. Veja Instructions → OpenLimitOrder / SettleLimitOrder e Math → Limit-order matching during swap. - Taxa unilateral (
CollectFeeOn). Os pools podem ser configurados para cobrar taxas de swap do lado de entrada (comportamento legado, modo0), ou sempre detoken_0(1), ou sempre detoken_1(2). Útil quando um lado do par é o token de contabilidade canônico (por exemplo, USDC). Veja Fees → Single-sided fee. - Taxa dinâmica. Os pools podem optar por uma sobretaxa de taxa que rastreia volatilidade, aumentando com movimento rápido de tick e decaindo ao longo do tempo. Calibrada por um
DynamicFeeConfigpor tier e umDynamicFeeInfopor pool. Veja Fees → Dynamic fee e Math → Dynamic fee derivation.
CreateCustomizablePool, expõe todos os três controles no momento da criação do pool. A clássica CreatePool continua funcionando para pools com taxa padrão sem limit orders ou taxas dinâmicas.
Um lançamento posterior adiciona multi-pools com permissão: CreatePermissionedPool permite que um operador na lista de permissões (um que possui um PDA Permission) crie mais de um pool para o mesmo par e fee tier dobrando um seed_index no endereço do pool, e reforça OpenLimitOrder para rejeitar ordens cuja conta de token de entrada ou saída está congelada. Veja Instructions → CreatePermissionedPool e a entrada do changelog de 2026-07-30.
O lançamento de 2026-08 adiciona um caminho de congelamento de posição condicional para pools de emissores restritos por KYC selecionados. Cada novo mint de NFT de posição usa o pool como autoridade de congelamento, mas a conta de token NFT permanece descongelada e transferível por padrão. O CLMM a congela apenas quando a posição é aberta através de OpenPositionV2 ou OpenPositionWithToken22Nft e a autoridade de congelamento de qualquer mint do pool corresponde à lista de emissores restritos do programa. O proprietário ainda pode gerenciar liquidez e fechar uma posição correspondente, mas não pode transferir seu NFT ou alterar o proprietário da conta de token. As posições existentes não são congeladas retroativamente. Veja Ticks and positions → Restricted-issuer positions e a entrada do changelog de 2026-08-17.
O que o CLMM oferece
- Eficiência de capital. Um LP de stablecoin-stablecoin concentrando liquidez em uma banda de ±0,1% em torno da paridade pode ganhar 100×+ as taxas por dólar de TVL comparado a um pool CPMM do mesmo par.
- Contabilidade de taxa no nível de 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 fee tiers por par. Um par pode ter vários pools CLMM, cada um vinculado a um
AmmConfigdiferente com sua própria taxa de negociação e espaçamento de tick. A UI web e roteadores expõem qualquer tier que tenha mais liquidez ao preço atual. - Incentivizável diretamente no pool. Até três fluxos de token de recompensa podem ser anexados a um pool; as posições coletam recompensas pro-rata com base nos segundos × liquidez em intervalo que contribuem. Veja
products/clmm/fees. - Posições NFT. Cada posição é um token não fungível. Transferir o NFT normalmente transfere a posição; carteiras e UIs podem exibir posições da mesma forma que exibem colecionáveis. Apenas uma posição V2 cujo mint subjacente corresponde ao filtro de emissor restrito é congelada e não transferível.
- Suporte 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 é configurar e esquecer. Um intervalo definido quando SOL está em $160 não ganhará nada se SOL se mover para $80, a menos que você se ajuste ativamente. O CLMM recompensa LPs ativos; LPs passivos devem ficar com CPMM.
- Não é sem custo para 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 tick.
- 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 gas diferentes, um modelo de contabilidade de taxa diferente e nenhum token LP fungível. Se você quer um pool LP fungível simples, use CPMM.
Como o CLMM difere do CPMM e AMM v4
Modelo mental
Pense em um pool CLMM como três estruturas de dados sobrepostas:- Uma curva contínua no espaço
sqrt_price. O preço do pool é representado comosqrt_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 (vejaalgorithms/clmm-math). - Um mapa de tick discreto. Os preços são quantizados em ticks — potências inteiras de
1.0001. Cada tick tem umsqrt_priceconhecido. As posições referenciam seus pontos finais como índices de tick inteiros. Os índices de tick são agrupados em tick arrays de tamanho fixo para armazenamento. - Contabilidade de taxa e recompensa por posição. Cada posição armazena o
fee_growth_insideglobal 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 Uniswap-v3feeGrowthInside0X128 / feeGrowthInside1X128.
- Abrir posição: escolher intervalo de tick, depositar tokens, emitir NFT, inserir liquidez no mapa de tick dentro do intervalo, inicializar quaisquer tick-arrays previamente vazios.
- Aumentar / diminuir liquidez: ajustar o valor armazenado na conta de posição associada ao NFT e no mapa de tick; coletar taxas acumuladas ao mesmo tempo.
- Swap: caminhar do
sqrt_price_x64atual na direção da negociação, consumindo liquidez ativa até que a entrada seja esgotada ou o próximo tick inicializado seja alcançado; cruzar o tick e pegar ou soltar liquidez no novo lado. - Coletar taxas / recompensas: calcular
fee_growth_inside_now − fee_growth_inside_last×position_liquiditypara cada lado e cada fluxo de recompensa; transferir.
liquidity.
Quando escolher CLMM
Escolha CLMM quando:- Você está fornecendo liquidez para um par estável ou com reversão à média (USDC/USDT, jitoSOL/SOL, wBTC/BTC) e quer se concentrar perto da paridade.
- Você é um market maker disposto a monitorar 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.).
- 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, lock ou compor com.
- Você quer uma experiência de LP passiva.
- 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 para o mint de NFT, contendo os ticks, liquidez e últimos valores de crescimento de taxa observados da posição.
products/clmm/ticks-and-positions.
Lançamentos mais antigos do CLMM 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 ou usam mais — o campo ainda aparece nas listas de contas OpenPosition / IncreaseLiquidity / DecreaseLiquidity como um UncheckedAccount para compatibilidade ABI, mas o programa não a lê ou escreve. A contabilidade de intervalo agregado fica nos pontos finais de tick (liquidity_gross, liquidity_net) diretamente.Para onde ir a seguir
- Accounts — os layouts de contas de pool, config, tick-array e posição.
- Ticks and positions — o mapa de tick, espaçamento de tick, dimensionamento de tick-array, posições baseadas em NFT.
- Math —
sqrt_price_x64, passo de swap, derivação defee_growth_inside. - Instructions —
OpenPosition,IncreaseLiquidity,Swap,CollectRewards, a família de limit-order eCreateCustomizablePool. - Fees and rewards — o modelo de taxa por posição, modos de taxa unilateral, taxa dinâmica e os três slots de recompensa.
- Code demos — passo a passo de abrir / ajustar / swap / coletar / limit-order / customizable-pool em TypeScript.
- Raydium CLMM source —
raydium-io/raydium-clmm - Uniswap v3 whitepaper (“Uniswap v3 Core”) para a matemática que o CLMM herda diretamente
reference/program-addressespara IDs de programa canônicos

