Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.Xem bản tiếng Anh →
Tóm tắt một đoạn
CPMM — Constant Product Market Maker, chính thức gọi là “Standard AMM” trong giao diện Raydium — là một triển khai native trên Solana của AMM cổ điểnx · y = k. Không có sổ lệnh OpenBook, không có di sản Serum, không có phụ thuộc bên ngoài ngoài SPL Token và Token-2022. Mỗi pool là một bộ ba gồm (hai kho token, một LP mint) được quản lý bởi một PDA có quyền sở hữu chương trình, được định giá bằng tích của số dư kho. Đây là AMM mà Raydium khuyến nghị cho tất cả các pool constant-product mới, và đây là những gì mà endpoint /pools/create và luồng “Create pool” của giao diện web nhắm đến theo mặc định.
CPMM mang lại cho bạn những gì
Cập nhật thu thập phí người tạo. Bất kỳ người thanh toán nào cũng có thể kích hoạt
CollectCreatorFeePermissionless. Quỹ vẫn chỉ đi đến các tài khoản token chính tắc của người tạo pool, và CollectCreatorFee được ký bởi người tạo hiện có vẫn khả dụng. Xem Instructions.- Token-2022 với danh sách cho phép extension được kiểm chứng. CPMM không chấp nhận các mint Token-2022 tùy ý. Chương trình thực thi danh sách trắng các extension an toàn khi tạo pool:
TransferFeeConfig,MetadataPointer,TokenMetadata,InterestBearingConfig, vàScaledUiAmount. Bất kỳ extension nào khác trên mint sẽ khiếnInitializebị từ chối vớiNotSupportMint— trừ khi bản thân mint nằm trong danh sách cho phép mint được mã hóa cứng nhỏ được duy trì trong chương trình (được sử dụng để onboard các mint cụ thể từng trường hợp một). Phí chuyển nhượng đặc biệt ảnh hưởng đến toán học swap và được áp dụng ở phía chính xác của giao dịch — xemalgorithms/token-2022-transfer-fees. - Phí dự đoán được. Mỗi pool tham chiếu một
AmmConfigđược chọn khi tạo. Config mang theo tỷ lệ phí giao dịch (chia giữa LP, giao thức và quỹ) và tỷ lệ phí người tạo riêng biệt, độc lập. Phí người tạo là bucket riêng của nó — không bao giờ là một phần của phí giao dịch. Pool chọn tính phí này khi tạo. Các giá trị mặc định và toán học chia tách đầy đủ nằm trongproducts/cpmm/fees. - TWAP trên chuỗi thông qua vòng đệm quan sát. Mỗi swap cập nhật một tài khoản
observation. Các hợp đồng bên ngoài có thể đọc một quan sát giá tích lũy để tính toán TWAP mà không cần oracle tùy chỉnh. - Bố cục tài khoản phẳng. Một pool được mô tả đầy đủ bởi sáu PDA (authority, pool state, LP mint, hai vault, observation). Không có tài khoản OpenBook theo thị trường, không có event queue, không có request queue. Các giao dịch rẻ hơn cả về compute và số lượng tài khoản so với AMM v4.
- Tương thích burn-and-earn. Các token LP có thể bị khóa theo chương trình LP Lock để người tạo pool có thể tiếp tục yêu cầu phí mà không giữ lại quyền rút thanh khoản. Được sử dụng cho các lần phát hành thanh khoản “vĩnh viễn”.
CPMM không phải là gì
- Không tập trung. Thanh khoản được phân bổ đều trên toàn bộ phạm vi giá, giống như Uniswap v2. Nếu bạn cần market making hiệu quả về vốn — tức là tập trung thanh khoản gần giá hiện tại — hãy sử dụng CLMM.
- Không hybrid. Không giống như AMM v4, các pool CPMM không đặt lệnh đang chờ xử lý trên thị trường OpenBook. Định tuyến qua các pool CPMM xảy ra thông qua chương trình AMM Routing, không phải thông qua CLOB.
- Không thể khởi chạy cho các đường cong tùy ý. Đường cong được mã hóa cứng thành constant product. Nếu bạn muốn một bonding curve cho việc phát hành token, hãy sử dụng LaunchLab, nó sẽ chuyển sang pool CPMM khi nó được lấp đầy.
CPMM khác với AMM v4 như thế nào
Một xử lý sâu hơn về câu chuyện di chuyển nằm trong
protocol-overview/versions-and-migration.
Mô hình tư duy
Một pool CPMM là một đối tượng do chương trình sở hữu giữ ba số dư:vault0 (token0), vault1 (token1), và cung cấp của LP mint. Cung cấp của LP mint theo dõi yêu cầu của người gửi tiền trên pool; các kho token giữ các tài sản thực tế. Mọi thứ khác — PDA authority, tài khoản observation, con trỏ fee-config — là sổ sách để làm cho mối quan hệ ba biến đó có thể giao dịch, thu thập phí và quan sát được.
Mỗi hoạt động hướng đến người dùng sụp đổ thành một chuyển đổi trạng thái được xác định rõ:
- Deposit: chuyển token0 và token1 vào, mint LP cho người dùng, không thay đổi giá.
- Withdraw: đốt LP từ người dùng, chuyển token0 và token1 ra theo tỷ lệ hiện tại của pool, không thay đổi giá.
- Swap: chuyển một token vào, chuyển token khác ra; tỷ lệ di chuyển dọc theo đường cong
x · y = k(trừ phí); tài khoản observation lấy mẫu giá mới.
products/cpmm/math và bộ hướng dẫn trong products/cpmm/instructions.
Khi nào nên chọn CPMM
Chọn CPMM khi:- Bạn đang phát hành một token mới hoặc một cặp mới và không có ý kiến mạnh mẽ về phạm vi nào sẽ thấy giao dịch.
- Một hoặc cả hai token sử dụng các extension Token-2022.
- Bạn muốn một mô hình phí đơn giản trên mỗi giao dịch thay vì một mô hình động dựa trên tick.
- Bạn đang tích hợp và muốn định tuyến qua Raydium mà không phải chịu độ phức tạp của các vị trí CLMM.
- Cặp ổn định hoặc tương quan cao (stablecoin-stablecoin, LST-SOL) và bạn muốn tập trung thanh khoản xung quanh parity.
- Bạn là một nhóm market-making sẵn sàng quản lý các phạm vi một cách tích cực để có APR phí cao hơn trên mỗi đô la TVL.
- Bạn đang di chuyển công cụ AMM v4 hiện có và không tạo pool mới.
Tiếp theo đi đâu
- Accounts — sáu PDA của một pool CPMM và cách lấy chúng.
- Math —
SwapBaseInputvsSwapBaseOutput, xử lý phí chuyển nhượng Token-2022, cập nhật observation. - Instructions — bề mặt hướng dẫn hoàn chỉnh với danh sách tài khoản.
- Fees — chia tách phí bốn chiều và cách thu thập.
- Code demos — các đoạn TypeScript có thể chạy được cho create / swap / deposit / withdraw.
- Raydium CP-Swap source —
raydium-io/raydium-cp-swap reference/program-addressescho các ID chương trình chính tắc

