Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Краткое резюме
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 не находится в небольшом жестко закодированном списке разрешенных mints, поддерживаемом в программе (используется для подключения конкретных mints в индивидуальном порядке). Комиссии за передачу, в частности, влияют на математику свопа и применяются на правильной стороне сделки — см.algorithms/token-2022-transfer-fees. - Предсказуемые комиссии. Каждый пул ссылается на
AmmConfig, выбранный при создании. Конфиг содержит ставку торговой комиссии (разделяемую между LP, протоколом и фондом) и отдельную, независимую ставку комиссии создателя. Комиссия создателя — это отдельный бакет, никогда не часть торговой комиссии. Пулы выбирают, взимать ли ее при создании. Значения по умолчанию и полная математика разделения находятся вproducts/cpmm/fees. - On-chain TWAP через кольцевой буфер наблюдений. Каждый своп обновляет счет
observation. Внешние контракты могут прочитать кумулятивное наблюдение цены для вычисления TWAP без пользовательского оракула. - Плоская структура счетов. Пул полностью описывается шестью PDA (authority, pool state, LP mint, два хранилища, observation). Нет отдельного счета OpenBook для каждого рынка, нет очереди событий, нет очереди запросов. Транзакции дешевле как по вычислениям, так и по количеству счетов по сравнению с 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 фиксирует новую цену.
products/cpmm/math, а набор инструкций в products/cpmm/instructions.
Когда выбирать CPMM
Выбирайте CPMM когда:- Вы запускаете новый токен или новую пару и не имеете четких мнений о том, какой диапазон будет видеть торговлю.
- Один или оба токена используют расширения Token-2022.
- Вы хотите простую модель комиссии за сделку вместо динамической, основанной на тиках.
- Вы интегрируетесь и хотите маршрутизировать через Raydium без принятия сложности позиций CLMM.
- Пара стабильна или высоко коррелирована (stablecoin-stablecoin, LST-SOL) и вы хотите концентрировать ликвидность около паритета.
- Вы команда маркет-мейкеров, готовая активно управлять диапазонами для более высокого APR комиссии на доллар TVL.
- Вы мигрируете существующий инструментарий AMM v4 и не создаете новый пул.
Что дальше
- Accounts — шесть PDA пула CPMM и как их получить.
- Math —
SwapBaseInputvsSwapBaseOutput, обработка комиссий за передачу Token-2022, обновления наблюдений. - Instructions — полная поверхность инструкций со списками счетов.
- Fees — четырехсторонний раздел комиссии и как собирать.
- Code demos — запускаемые фрагменты TypeScript для create / swap / deposit / withdraw.
- Raydium CP-Swap source —
raydium-io/raydium-cp-swap reference/program-addressesдля канонических ID программ

