Skip to main content
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →

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

CPMM — Constant Product Market Maker, официально именуемый “Standard AMM” в интерфейсе Raydium — это нативная реализация на Solana классического AMM с формулой x · y = k. Без OpenBook order book, без наследия Serum, без внешних зависимостей кроме SPL Token и Token-2022. Каждый пул представляет собой тройку (два хранилища токенов, один LP mint), управляемую программой через PDA с правами владельца, с ценообразованием на основе произведения балансов хранилищ. Это AMM, который Raydium рекомендует для всех новых пулов с постоянным произведением, и именно на него нацелены endpoint /pools/create и стандартный поток “Create pool” в веб-интерфейсе.

Что дает вам CPMM

Обновление сбора комиссии создателя. Любой плательщик может вызвать CollectCreatorFeePermissionless. Средства по-прежнему поступают только на канонические счета токенов создателя пула, и существующий подписанный создателем CollectCreatorFee остается доступным. См. Instructions.
  • Token-2022 с проверенным списком разрешенных расширений. CPMM не принимает произвольные Token-2022 mints. Программа применяет whitelist безопасных расширений при создании пула: TransferFeeConfig, MetadataPointer, TokenMetadata, InterestBearingConfig и ScaledUiAmount. Любое другое расширение на mint приводит к отклонению Initialize с ошибкой NotSupportMint — если только mint не был зарегистрирован через его SupportMintAssociated PDA, что является единственным обходным путем после обновления 2026-09, которое удалило жестко закодированный whitelist mint. Комиссии за передачу, в частности, влияют на математику свопа и применяются на правильной стороне сделки — см. algorithms/token-2022-transfer-fees.
  • Предсказуемые комиссии. Каждый пул ссылается на AmmConfig, выбранный при создании. Конфиг содержит ставку торговой комиссии (разделяемую между LP, протоколом и фондом) и отдельную, независимую ставку комиссии создателя. Комиссия создателя — это отдельный бакет, никогда не часть торговой комиссии. Пулы выбирают взимание комиссии при создании. Значения по умолчанию и полная математика разделения находятся в products/cpmm/fees.
  • On-chain TWAP через кольцевой буфер наблюдений. Каждый своп обновляет счет observation. Внешние контракты могут прочитать кумулятивное наблюдение цены для вычисления TWAP без пользовательского оракула.
  • Плоская структура счетов. Пул полностью описывается шестью PDA (authority, pool state, LP mint, два хранилища, observation). Нет per-market счета OpenBook, нет event queue, нет request queue. Транзакции дешевле как по compute, так и по количеству счетов, чем AMM v4.
  • Совместимость с burn-and-earn. LP токены могут быть заблокированы под программой LP Lock, чтобы создатель пула мог продолжать получать комиссии без сохранения права на вывод ликвидности. Используется для запусков “постоянной” ликвидности.

Чем CPMM не является

  • Не концентрированный. Ликвидность распределена равномерно по всему диапазону цен, как в Uniswap v2. Если вам нужен капиталоэффективный маркет-мейкинг — то есть концентрация ликвидности рядом с текущей ценой — используйте CLMM.
  • Не гибридный. В отличие от AMM v4, пулы CPMM не размещают ордера на OpenBook маркете. Маршрутизация между пулами CPMM происходит через программу AMM Routing, а не через CLOB.
  • Не запускаемый для произвольных кривых. Кривая жестко закодирована как постоянное произведение. Если вам нужна bonding curve для запуска токена, используйте LaunchLab, который переходит в пул CPMM при заполнении.

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

Более глубокое рассмотрение истории миграции находится в protocol-overview/versions-and-migration.

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

Пул CPMM — это объект, принадлежащий программе, содержащий три баланса: vault0 (token0), vault1 (token1) и предложение LP mint. Предложение LP mint отслеживает требование депозиторов на пул; хранилища токенов содержат фактические активы. Все остальное — PDA authority, счет observation, указатель на конфиг комиссии — это бухгалтерия, чтобы сделать это трехпеременное отношение торгуемым, собирающим комиссии и наблюдаемым. Каждая операция, видимая пользователю, сводится к четко определенному переходу состояния:
  • Deposit: передать token0 и token1, выпустить LP пользователю, цена не меняется.
  • Withdraw: сжечь LP пользователя, передать token0 и token1 в текущем соотношении пула, цена не меняется.
  • Swap: передать один токен, передать другой; соотношение движется вдоль кривой x · y = k (минус комиссии); счет observation фиксирует новую цену.
Сбор комиссии — это отдельная транзакция; она не происходит при каждом своппе. Сбор протокола и фонда требует соответствующих authorities. Комиссии создателя могут быть собраны либо подписанным создателем путем, либо permissionless вызывающей стороной через путь с ограничением по назначению. Математика описана в products/cpmm/math, а набор инструкций в products/cpmm/instructions.

Когда выбирать CPMM

Выбирайте CPMM когда:
  • Вы запускаете новый токен или новую пару и не имеете четких мнений о том, какой диапазон будет видеть торговлю.
  • Один или оба токена используют расширения Token-2022.
  • Вы хотите простую модель комиссии за торговлю вместо динамической, основанной на тиках.
  • Вы интегрируетесь и хотите маршрутизировать через Raydium без принятия сложности позиций CLMM.
Предпочитайте CLMM когда:
  • Пара стабильна или высоко коррелирована (stablecoin-stablecoin, LST-SOL) и вы хотите концентрировать ликвидность около паритета.
  • Вы команда маркет-мейкеров, готовая активно управлять диапазонами для более высокого APR комиссии на доллар TVL.
Предпочитайте AMM v4 когда:
  • Вы мигрируете существующий инструментарий AMM v4 и не создаете новый пул.
(Примечание: гибридный режим OpenBook в AMM v4 больше не активен — это не причина выбирать AMM v4.)

Что дальше

  • Accounts — шесть PDA пула CPMM и как их получить.
  • MathSwapBaseInput vs SwapBaseOutput, обработка комиссий за передачу Token-2022, обновления наблюдений.
  • Instructions — полная поверхность инструкций со списками счетов.
  • Fees — четырехсторонний раздел комиссии и как собирать.
  • Code demos — запускаемые TypeScript фрагменты для create / swap / deposit / withdraw.
Источники: