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

# CPMM 概觀

> Raydium 的 CPMM（標準 AMM）是什麼、它與 AMM v4 的差異，以及何時選擇它。

<Info>
  **本頁內容由 AI 自動翻譯，所有內容以英文版本為準。**

  [查看英文版 →](/products/cpmm/overview)
</Info>

## 一段摘要

CPMM — **C**onstant **P**roduct **M**arket **M**aker，在 Raydium UI 中正式稱為「標準 AMM」—— 是傳統 `x · y = k` AMM 在 Solana 上的原生實現。沒有 OpenBook 訂單簿、沒有 Serum 遺產、沒有超出 SPL Token 和 Token-2022 的外部依賴。每個流動性池都是一個三元組（兩個代幣金庫、一個 LP 鑄幣）由程式擁有的授權 PDA 管理，以金庫餘額的乘積定價。這是 Raydium 為所有新的恆定乘積池推薦的 AMM，也是 `/pools/create` 端點和網頁 UI 的「建立池」流程預設的目標。

## CPMM 提供的功能

* **Token-2022 與經過驗證的擴充白名單。** CPMM **不接受**任意的 Token-2022 鑄幣。程式在池建立時強制執行安全擴充的白名單：`TransferFeeConfig`、`MetadataPointer`、`TokenMetadata`、`InterestBearingConfig` 和 `ScaledUiAmount`。鑄幣上的任何其他擴充都會導致 `Initialize` 以 `NotSupportMint` 拒絕 —— 除非鑄幣本身在程式中維護的小型硬編碼鑄幣白名單中（用於逐個上線特定鑄幣）。轉帳費用特別影響交換數學，並在交易的正確一側應用 —— 見 [`algorithms/token-2022-transfer-fees`](/zh-Hant/algorithms/token-2022-transfer-fees)。
* **可預測的費用。** 每個池參考在建立時選擇的 `AmmConfig`。配置包含交易費率（在 LP、協議和基金之間分割）和獨立的創建者費率。創建者費用是其自己的桶 —— 永遠不是交易費的一部分。池在建立時可選擇是否收取此費用。預設值和完整的拆分數學在 [`products/cpmm/fees`](/zh-Hant/products/cpmm/fees) 中。
* **透過觀察環形緩衝的鏈上 TWAP。** 每次交換都會更新一個 `observation` 帳戶。外部合約可以讀取累積價格觀察來計算 TWAP，無需自訂預言機。
* **平坦帳戶配置。** 一個池由六個 PDA 完全描述（授權、池狀態、LP 鑄幣、兩個金庫、觀察）。沒有每市場 OpenBook 帳戶、沒有事件隊列、沒有請求隊列。交易在計算和帳戶數量上都比 AMM v4 更便宜。
* **燒毀並賺取相容。** LP 代幣可以在 [LP Lock](/zh-Hant/reference/program-addresses) 程式下鎖定，使池創建者可以繼續收取費用，而不保有提取流動性的權利。用於「永久」流動性啟動。

## CPMM 不提供的功能

* **不是集中式的。** 流動性均勻分佈在整個價格範圍內，像 Uniswap v2。如果你需要資本效率的做市 —— 即，在當前價格附近集中流動性 —— 使用 [CLMM](/zh-Hant/products/clmm)。
* **不是混合的。** 與 [AMM v4](/zh-Hant/products/amm-v4) 不同，CPMM 池不在 OpenBook 市場上放置掛單。跨 CPMM 池的路由通過 [AMM Routing](/zh-Hant/reference/program-addresses) 程式進行，不是通過 CLOB。
* **不適用於任意曲線啟動。** 曲線硬編碼為恆定乘積。如果你想要一個代幣啟動的綁定曲線，使用 [LaunchLab](/zh-Hant/products/launchlab)，它在填滿時升級為 CPMM 池。

## CPMM 與 AMM v4 的差異

| 維度            | AMM v4                         | CPMM               |
| ------------- | ------------------------------ | ------------------ |
| 曲線            | 恆定乘積                           | 恆定乘積               |
| OpenBook 依賴   | 無效（原本在 OpenBook 市場上放置訂單；整合已停用） | 無                  |
| Token-2022 支持 | 無（僅 SPL Token）                 | **是**（包括轉帳費用）      |
| V2 交換的帳戶數     | \~9                            | \~11               |
| 每次交換的計算單位     | \~80k–120k（V2 路徑）              | \~60k–100k         |
| TWAP 預言機      | 無原生預言機帳戶                       | `observation` 環形緩衝 |
| 今日新池建立        | 非預設（程式仍接受）                     | 預設                 |
| 狀態            | 完全可操作                          | 活躍、推薦              |

遷移故事的更深入處理在 [`protocol-overview/versions-and-migration`](/zh-Hant/protocol-overview/versions-and-migration) 中。

## 思維模型

CPMM 池是持有三個餘額的程式擁有對象：`vault0`（token0）、`vault1`（token1）和 LP 鑄幣的供應量。LP 鑄幣的供應量追蹤存款者對池的權益；代幣金庫持有實際資產。其他一切 —— 授權 PDA、觀察帳戶、費用配置指標 —— 都是簿記，使那個三變數關係可交易、可收費和可觀察。

每個使用者面向的操作都折疊為明確定義的狀態轉換：

* **存款：** 轉帳 token0 和 token1，鑄造 LP 給使用者，價格無變化。
* **提款：** 燒毀使用者的 LP，以池的當前比率轉帳 token0 和 token1，價格無變化。
* **交換：** 轉帳一種代幣，轉帳另一種代幣出去；比率沿著 `x · y = k` 曲線移動（扣除費用）；觀察帳戶採樣新價格。

費用收集（`CollectProtocolFee`、`CollectFundFee`）是由相應授權簽署的單獨交易；它不會在每次交換時發生。數學在 [`products/cpmm/math`](/zh-Hant/products/cpmm/math) 中詳細說明，指令集在 [`products/cpmm/instructions`](/zh-Hant/products/cpmm/instructions) 中。

## 何時選擇 CPMM

在以下情況下選擇 CPMM：

* 你正在啟動新代幣或新交易對，並且對哪個範圍會看到交易沒有強烈意見。
* 一個或兩個代幣使用 Token-2022 擴充。
* 你想要一個簡單的每交易費用模型，而非動態的、基於 tick 的模型。
* 你在整合並希望通過 Raydium 路由，而不承擔 CLMM 頭寸的複雜性。

在以下情況下偏好 [CLMM](/zh-Hant/products/clmm)：

* 交易對是穩定的或高度相關的（穩定幣對穩定幣、LST-SOL），並且你想在平價附近集中流動性。
* 你是願意積極管理範圍以獲得更高每美元 TVL 費用 APR 的做市團隊。

在以下情況下偏好 [AMM v4](/zh-Hant/products/amm-v4)：

* 你在遷移現有的 AMM v4 工具，並且沒有建立新池。

（注意：AMM v4 的 OpenBook 混合模式不再活躍 —— 那不再是選擇 AMM v4 的理由。）

## 接下來去哪裡

* [帳戶](/zh-Hant/products/cpmm/accounts) — CPMM 池的六個 PDA 以及如何推導它們。
* [數學](/zh-Hant/products/cpmm/math) — `SwapBaseInput` 與 `SwapBaseOutput`、Token-2022 轉帳費用處理、觀察更新。
* [指令](/zh-Hant/products/cpmm/instructions) — 完整的指令表面與帳戶列表。
* [費用](/zh-Hant/products/cpmm/fees) — 四向費用拆分以及如何收集。
* [程式碼示例](/zh-Hant/products/cpmm/code-demos) — 創建／交換／存款／提款的可運行 TypeScript 片段。

來源：

* [Raydium CP-Swap 源代碼 — `raydium-io/raydium-cp-swap`](https://github.com/raydium-io/raydium-cp-swap)
* [`reference/program-addresses`](/zh-Hant/reference/program-addresses) 以取得規範程式 ID
