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

# Обзор CLMM

> Что такое CLMM от Raydium, чем сосредоточенная ликвидность отличается от пула с постоянным произведением, и когда стоит выбрать CLMM вместо CPMM или AMM v4.

<Info>
  **Эта страница переведена с помощью ИИ. За эталон принимается английская версия.**

  [Открыть английскую версию →](/products/clmm/overview)
</Info>

## Краткое резюме

CLMM — **C**oncentrated **L**iquidity **M**arket **M**aker — это Uniswap-v3-стиля АММ от Raydium. Вместо того чтобы распределять депозит поставщика ликвидности по всей кривой цены, CLMM позволяет LP вносить средства в **определённый диапазон цен**. Внутри этого диапазона каждый доллар депозита приносит в несколько раз больше дохода, чем в пуле CPMM; вне диапазона депозит не приносит ничего и остаётся односторонним балансом. Программа отслеживает ликвидность за **tick** (квантованный ценовой бакет), представляет состояние пула квадратным корнем цены в виде Q64.64 fixed-point числа (`sqrt_price_x64`) и чеканит **NFT** для каждой позиции LP вместо fungible LP токена.

## Что нового

Последний релиз CLMM включает три дополнения поверх ядра в стиле Uniswap-v3. Они опциональны при создании пула и обратно совместимы с существующими пулами и позициями:

* **Лимит-ордеры.** LP могут теперь поставить ордер на одном tick по определённой цене и получить заполнение по FIFO, когда своп пересекает этот tick. Ордеры рассчитываются в ATA владельца по лимитной цене; оффчейн-хранитель (`limit_order_admin`) может собирать заполненные ордеры без присутствия владельца. См. [Instructions → OpenLimitOrder / SettleLimitOrder](/ru/products/clmm/instructions) и [Math → Limit-order matching during swap](/ru/products/clmm/math).
* **Односторонний сбор комиссии (`CollectFeeOn`)**.\*\* Пулы можно настроить на взимание комиссии за своп со входной стороны (наследованное поведение, режим `0`), или всегда из `token_0` (`1`), или всегда из `token_1` (`2`). Полезно, когда одна сторона пары — это канонический токен учёта (например, USDC). См. [Fees → Single-sided fee](/ru/products/clmm/fees).
* **Динамическая комиссия.** Пулы могут включить надбавку за комиссию, отслеживающую волатильность, которая растёт при быстром движении tick и затухает со временем. Калибруется по-за-пулу `DynamicFeeConfig` и per-pool `DynamicFeeInfo`. См. [Fees → Dynamic fee](/ru/products/clmm/fees) и [Math → Dynamic fee derivation](/ru/products/clmm/math).

Новая инструкция `CreateCustomizablePool` предоставляет все три опции при создании пула. Классическая `CreatePool` продолжает работать для пулов с комиссией по умолчанию без лимит-ордеров и динамической комиссии.

## Что даёт CLMM

* **Эффективность капитала.** LP стабильной пары, сосредоточивший ликвидность в диапазоне ±0,1% около паритета, может заработать в 100 раз и более комиссий на доллар TVL по сравнению с пулом CPMM той же пары.
* **Учёт комиссий на уровне позиции.** Комиссии начисляются за позицию, а не за LP-mint. Две позиции в одном пуле получают разные суммы комиссий в зависимости от их диапазонов и пути, по которому двигалась цена.
* **Несколько уровней комиссий за пару.** Пара может иметь несколько пулов CLMM, каждый привязан к другому `AmmConfig` со своей ставкой торговой комиссии и tick-spacing. Веб-интерфейс и маршрутизаторы показывают тот уровень, который имеет наибольшую ликвидность по текущей цене.
* **Стимулы напрямую на пуле.** До трёх потоков вознаграждений можно подключить к пулу; позиции собирают награды пропорционально их вкладу (секунды × in-range-liquidity). См. [`products/clmm/fees`](/ru/products/clmm/fees).
* **NFT позиции.** Каждая позиция — это non-fungible токен с mint равным детерминированной PDA. Передача NFT передаёт позицию; кошельки и интерфейсы могут отображать позиции так же, как они отображают коллекционные предметы.
* **Поддержка Token-2022** с обеих сторон пары с такими же ограничениями расширений как CPMM.

## Что CLMM не является

* **Не установи и забудь.** Диапазон, установленный когда SOL стоит \$160, не будет приносить ничего, если SOL упадёт до \$80, если вы не будете активно подстраиваться. CLMM награждает активных LP; пассивные LP должны остаться с CPMM.
* **Не без затрат на открытие.** Каждый новый tick-array, который пересекает позиция, должен быть инициализирован, что требует затрат на rent. Широкие диапазоны дешевле; узкие — нет.
* **Не CLOB.** В отличие от AMM v4, CLMM не имеет зависимости от OpenBook. Вся ликвидность находится на tick-карте.
* **Не надмножество CPMM.** Позиция CLMM, охватывающая `[tick_min, tick_max]` с максимальным диапазоном, ведёт себя *аналогично* CPMM, но с другими затратами на газ, другой моделью учёта комиссий и без fungible LP токена. Если вам нужен простой пул с fungible LP, используйте CPMM.

## Как CLMM отличается от CPMM и AMM v4

| Dimension              | AMM v4                   | CPMM                               | CLMM                                |
| ---------------------- | ------------------------ | ---------------------------------- | ----------------------------------- |
| Кривая                 | Постоянное произведение  | Постоянное произведение            | Сосредоточенная (tick-based)        |
| Доля LP                | Fungible LP mint         | Fungible LP mint                   | Per-position NFT                    |
| Ликвидность находится… | По всем ценам            | По всем ценам                      | В выбранном пользователем диапазоне |
| Уровни комиссий        | Фиксированные 0.25%      | Per `AmmConfig` (напр., 0.25%, 1%) | Per `AmmConfig` × tick-spacing      |
| Активное управление    | Неприменимо              | Неприменимо                        | **Требуется**                       |
| Учёт комиссий          | На уровне пула           | На уровне пула                     | Per-position                        |
| Reward farms           | Отдельная программа Farm | Отдельная программа Farm           | Встроенная (до 3 вознаграждений)    |
| Token-2022             | Нет                      | Да                                 | Да                                  |
| On-chain оракул        | Нет                      | `observation` ring                 | `observation` массив per pool       |

## Концептуальная модель

Думайте о пуле CLMM как о трёх наложенных структурах данных:

1. **Непрерывная кривая в пространстве `sqrt_price`.** Цена пула представлена как `sqrt_price_x64`, Q64.64 fixed-point. Свопы ходят по этой кривой; внутри границы tick математика стандартна (см. [`algorithms/clmm-math`](/ru/algorithms/clmm-math)).
2. **Дискретная tick-карта.** Цены квантованы в ticks — целые степени `1.0001`. Каждый tick имеет известный `sqrt_price`. Позиции ссылаются на свои конечные точки как на целые индексы tick. Индексы tick группируются в fixed-size **tick arrays** для хранения.
3. **Per-position учёт комиссий и вознаграждений.** Каждая позиция хранит глобальный `fee_growth_inside` на момент последнего обновления. Когда LP касается позиции (открытие, закрытие, изменение, сбор), программа вычитает сохранённое значение из текущего глобального, чтобы получить то, что причитается. Это паттерн Uniswap-v3 `feeGrowthInside0X128 / feeGrowthInside1X128`.

Каждое действие пользователя разлагается на переходы состояния в этих трёх структурах:

* **Открыть позицию:** выбрать диапазон tick, внести токены, чеканить NFT, вставить ликвидность в tick-карту в диапазоне, инициализировать любые ранее пустые tick-arrays.
* **Увеличить / уменьшить ликвидность:** изменить количество, хранящееся в аккаунте позиции NFT и в tick-карте; собрать накопленные комиссии одновременно.
* **Своп:** идти от текущего `sqrt_price_x64` в направлении торговли, потребляя активную ликвидность до тех пор, пока вход не исчерпается или не будет достигнут следующий инициализированный tick; пересечь tick и собрать или отпустить ликвидность на новой стороне.
* **Собрать комиссии / награды:** вычислить `fee_growth_inside_now − fee_growth_inside_last` × `position_liquidity` для каждой стороны и каждого потока вознаграждений; вывести.

Пул иным образом безразличен к тому, какие позиции открыты. Два LP в одном диапазоне видят одинаковый путь growth-fee, масштабированный их индивидуальными суммами `liquidity`.

## Когда выбрать CLMM

Выбирайте CLMM когда:

* Вы предоставляете ликвидность **стабильной или mean-reverting паре** (USDC/USDT, jitoSOL/SOL, wBTC/BTC) и хотите сосредоточиться около паритета.
* Вы **маркет-мейкер**, готовый отслеживать цену и перебалансировать.
* Вам специально нужны **per-pool эмиссии стимулов** без создания отдельного farm.
* Вам нужен **per-position учёт** для собственного LP продукта (vault, структурированный продукт и т.д.).

Предпочитайте [CPMM](/ru/products/cpmm) когда:

* Вы запускаете новый токен с неизвестным процессом ценообразования.
* Вы хотите один fungible LP токен, который можно стейкить, локировать или комбинировать с другим.
* Вы хотите пассивный LP опыт.

Предпочитайте [AMM v4](/ru/products/amm-v4) когда:

* Вам специально нужна гибридная CLOB глубина, которую AMM v4 размещает на OpenBook.
* Вы мигрируете существующие AMM v4 интеграции и не открываете новые позиции.

## Позиции — это NFT

Позиция CLMM представлена на-цепи двумя аккаунтами:

* **Position NFT mint** с supply 1.
* **Personal-position state** аккаунт, привязанный к NFT mint, хранящий ticks позиции, ликвидность и последние наблюдаемые значения fee-growth.

Передача NFT передаёт позицию — authority personal-position аккаунта — это владелец NFT. Это тот же паттерн, который пионерски внедрил Uniswap v3, реализованный в модели аккаунтов Solana. Детальное описание в [`products/clmm/ticks-and-positions`](/ru/products/clmm/ticks-and-positions).

<Note>
  Более старые релизы CLMM также создавали `ProtocolPositionState` аккаунт per `(pool, tick_lower, tick_upper)` для агрегирования ликвидности за этот диапазон. **Новые релизы больше его не создают и не используют** — поле по-прежнему появляется в списках аккаунтов `OpenPosition` / `IncreaseLiquidity` / `DecreaseLiquidity` как `UncheckedAccount` для совместимости ABI, но программа не читает и не пишет его. Агрегирование диапазонов находится прямо на конечных точках tick (`liquidity_gross`, `liquidity_net`).
</Note>

## Куда дальше

* [Accounts](/ru/products/clmm/accounts) — разметка аккаунтов пула, конфига, tick-array и позиции.
* [Ticks and positions](/ru/products/clmm/ticks-and-positions) — tick-карта, tick-spacing, размер tick-array, NFT-based позиции.
* [Math](/ru/products/clmm/math) — `sqrt_price_x64`, пошаговый своп, вывод `fee_growth_inside`.
* [Instructions](/ru/products/clmm/instructions) — `OpenPosition`, `IncreaseLiquidity`, `Swap`, `CollectRewards`, семейство лимит-ордеров и `CreateCustomizablePool`.
* [Fees and rewards](/ru/products/clmm/fees) — per-position модель комиссий, режимы односторонней комиссии, динамическая комиссия и три слота вознаграждений.
* [Code demos](/ru/products/clmm/code-demos) — открытие / изменение / своп / сбор / лимит-ордер / customizable-pool пошаговые примеры на TypeScript.

Sources:

* [Raydium CLMM source — `raydium-io/raydium-clmm`](https://github.com/raydium-io/raydium-clmm)
* Uniswap v3 whitepaper ("Uniswap v3 Core") для математики, которую CLMM прямо наследует
* [`reference/program-addresses`](/ru/reference/program-addresses) для канонических ID программ
