Skip to main content
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

CLMM — Concentrated Liquidity Market Maker — là AMM kiểu Uniswap-v3 của Raydium. Thay vì phân tán tiền gửi của nhà cung cấp thanh khoản trên toàn bộ đường cong giá, CLMM cho phép LP gửi vào một phạm vi giá cụ thể. Trong phạm vi đó, mỗi đô la gửi tiền sinh lợi nhiều lần hơn so với pool CPMM; ngoài phạm vi, tiền gửi không kiếm được gì và nằm yên như một số dư một chiều. Chương trình theo dõi thanh khoản trên mỗi tick (một nhóm giá rời rạc), định giá trạng thái pool bằng căn bậc hai của giá được mã hóa dưới dạng số điểm cố định Q64.64 (sqrt_price_x64), và phát hành một NFT cho mỗi vị trí LP thay vì một token LP có thể trao đổi được.

Có gì mới

Phiên bản CLMM mới nhất cung cấp ba bổ sung trên cơ sở kiểu Uniswap-v3. Chúng là tùy chọn tại thời điểm tạo pool và tương thích ngược với các pool và vị trí hiện có:
  • Lệnh giới hạn. LP hiện có thể đặt một lệnh tick duy nhất ở một giá cụ thể và có đường dẫn swap điền nó theo FIFO khi swap vượt qua tick đó. Các lệnh được giải quyết vào ATA của chủ sở hữu ở giá giới hạn; một người giữ ngoài chuỗi (limit_order_admin) có thể quét các lệnh đã điền mà không cần chủ sở hữu trực tuyến. Xem Instructions → OpenLimitOrder / SettleLimitOrderMath → Limit-order matching during swap.
  • Phí một chiều (CollectFeeOn). Các pool có thể được cấu hình để lấy phí swap từ phía đầu vào (hành vi cũ, chế độ 0), hoặc luôn từ token_0 (1), hoặc luôn từ token_1 (2). Hữu ích khi một bên của cặp là token kế toán chính thức (ví dụ: USDC). Xem Fees → Single-sided fee.
  • Phí động. Các pool có thể chọn tham gia vào phí bổ sung theo dõi biến động tăng lên khi chuyển động tick nhanh chóng và giảm theo thời gian. Được hiệu chỉnh bằng DynamicFeeConfig trên mỗi tầng và DynamicFeeInfo trên mỗi pool. Xem Fees → Dynamic feeMath → Dynamic fee derivation.
Một lệnh mới, CreateCustomizablePool, hiển thị cả ba công tắc tại thời điểm tạo pool. CreatePool cổ điển tiếp tục hoạt động cho các pool phí mặc định mà không có lệnh giới hạn hoặc phí động. Một phiên bản sau này thêm multi-pools có quyền hạn: CreatePermissionedPool cho phép một nhà điều hành được phép (người nắm giữ PDA Permission) tạo nhiều hơn một pool cho cùng một cặp và tầng phí bằng cách gấp seed_index vào địa chỉ pool, và tăng cường OpenLimitOrder để từ chối các lệnh có tài khoản token đầu vào hoặc đầu ra bị đóng băng. Xem Instructions → CreatePermissionedPoolmục nhập changelog 2026-07-30. Phiên bản 2026-08 thêm đường dẫn đóng băng vị trí có điều kiện cho các pool nhà phát hành bị hạn chế KYC được chọn. Mỗi mint NFT vị trí mới sử dụng pool làm cơ quan đóng băng, nhưng tài khoản token NFT vẫn không bị đóng băng và có thể chuyển được theo mặc định. CLMM đóng băng nó chỉ khi vị trí được mở thông qua OpenPositionV2 hoặc OpenPositionWithToken22Nft cơ quan đóng băng mint pool của một trong hai khớp với danh sách nhà phát hành bị hạn chế của chương trình. Chủ sở hữu vẫn có thể quản lý thanh khoản và đóng một vị trí phù hợp, nhưng không thể chuyển NFT của nó hoặc thay đổi chủ sở hữu tài khoản token. Các vị trí hiện có không bị đóng băng hồi tưởng. Xem Ticks and positions → Restricted-issuer positionsmục nhập changelog 2026-08-17.

CLMM mang lại cho bạn cái gì

  • Hiệu quả vốn. Một LP stablecoin-stablecoin tập trung thanh khoản trong dải ±0,1% xung quanh giá bằng có thể kiếm được 100×+ phí trên mỗi đô la TVL so với pool CPMM của cùng một cặp.
  • Kế toán phí cấp vị trí. Phí tích lũy trên mỗi vị trí, không phải trên mỗi LP-mint. Hai vị trí trên cùng một pool kiếm được các khoản phí khác nhau dựa trên phạm vi của chúng và đường dẫn giá đã đi.
  • Nhiều tầng phí trên mỗi cặp. Một cặp có thể có nhiều pool CLMM, mỗi pool được ràng buộc với một AmmConfig khác nhau với tỷ lệ phí giao dịch và khoảng cách tick riêng của nó. Giao diện web và bộ định tuyến hiển thị bất kỳ tầng nào có thanh khoản nhiều nhất ở giá hiện tại.
  • Có thể khuyến khích trực tiếp trên pool. Có thể gắn tối đa ba luồng token phần thưởng vào một pool; các vị trí thu thập phần thưởng theo tỷ lệ dựa trên giây × thanh khoản trong phạm vi mà chúng đóng góp. Xem products/clmm/fees.
  • Vị trí NFT. Mỗi vị trí là một token không thể thay thế. Chuyển NFT thường chuyển vị trí; ví và giao diện người dùng có thể hiển thị các vị trí giống cách chúng hiển thị các bộ sưu tập. Chỉ một vị trí V2 có mint cơ bản khớp với bộ lọc nhà phát hành bị hạn chế mới bị đóng băng và không thể chuyển được.
  • Hỗ trợ Token-2022 ở cả hai bên của cặp, với các hạn chế mở rộng giống như CPMM.

CLMM không phải là gì

  • Không phải là đặt rồi quên. Một phạm vi được đặt khi SOL là $160 sẽ không kiếm được gì nếu SOL chuyển sang $80, trừ khi bạn chủ động điều chỉnh. CLMM thưởng cho LP hoạt động; LP thụ động nên ở lại với CPMM.
  • Không phải là không có chi phí để mở. Mỗi tick-array mới mà vị trí vượt qua phải được khởi tạo, tốn tiền thuê. Phạm vi rộng rẻ hơn; những cái hẹp thì không.
  • Không phải là CLOB. Không giống AMM v4, CLMM không có phụ thuộc OpenBook. Tất cả thanh khoản nằm trên bản đồ tick.
  • Không phải là siêu tập hợp của CPMM. Một vị trí CLMM trải dài [tick_min, tick_max] ở phạm vi tối đa hoạt động tương tự như CPMM, nhưng với chi phí gas khác nhau, mô hình kế toán phí khác nhau, và không có token LP có thể trao đổi được. Nếu bạn muốn một pool LP có thể trao đổi được đơn giản, hãy sử dụng CPMM.

CLMM khác với CPMM và AMM v4 như thế nào

Mô hình tư duy

Hãy coi một pool CLMM như ba cấu trúc dữ liệu xếp chồng lên nhau:
  1. Một đường cong liên tục trong không gian sqrt_price. Giá của pool được biểu diễn dưới dạng sqrt_price_x64, một số điểm cố định Q64.64. Các swap đi dọc theo đường cong này; trong ranh giới tick, toán học là toán học AMM thanh khoản tập trung tiêu chuẩn (xem algorithms/clmm-math).
  2. Một bản đồ tick rời rạc. Giá được lượng tử hóa thành tick — lũy thừa nguyên của 1.0001. Mỗi tick có một sqrt_price đã biết. Các vị trí tham chiếu các điểm cuối của chúng dưới dạng chỉ số tick nguyên. Các chỉ số tick được nhóm thành tick arrays có kích thước cố định để lưu trữ.
  3. Kế toán phí và phần thưởng trên mỗi vị trí. Mỗi vị trí lưu trữ fee_growth_inside toàn cầu tại thời điểm cập nhật cuối cùng của nó. Khi LP chạm vào vị trí (mở, đóng, điều chỉnh, thu thập), chương trình trừ giá trị được lưu trữ từ giá trị toàn cầu hiện tại để tính toán những gì được nợ. Đây là mô hình Uniswap-v3 feeGrowthInside0X128 / feeGrowthInside1X128.
Mỗi hành động của người dùng phân rã thành chuyển đổi trạng thái trên ba cấu trúc này:
  • Mở vị trí: chọn phạm vi tick, gửi token, phát hành NFT, chèn thanh khoản vào bản đồ tick trong phạm vi, khởi tạo bất kỳ tick-arrays nào trước đó trống.
  • Tăng / giảm thanh khoản: điều chỉnh số tiền được lưu trữ trong tài khoản vị trí liên kết với NFT và trong bản đồ tick; thu thập phí tích lũy cùng lúc.
  • Swap: đi từ sqrt_price_x64 hiện tại theo hướng giao dịch, tiêu thụ thanh khoản hoạt động cho đến khi đầu vào được cạn kiệt hoặc tick được khởi tạo tiếp theo được đạt tới; vượt qua tick và nhặt hoặc thả thanh khoản ở phía mới.
  • Thu thập phí / phần thưởng: tính toán fee_growth_inside_now − fee_growth_inside_last × position_liquidity cho mỗi bên và mỗi luồng phần thưởng; chuyển ra.
Pool ngoài ra không quan tâm đến vị trí nào đang mở. Hai LP trong cùng một phạm vi thấy cùng một đường dẫn tăng trưởng phí, được chia tỷ lệ theo số tiền liquidity riêng lẻ của họ.

Khi nào nên chọn CLMM

Chọn CLMM khi:
  • Bạn đang cung cấp thanh khoản cho một cặp ổn định hoặc có xu hướng quay trở lại (USDC/USDT, jitoSOL/SOL, wBTC/BTC) và muốn tập trung gần giá bằng.
  • Bạn là một nhà tạo lập thị trường sẵn sàng theo dõi giá và cân bằng lại.
  • Bạn cụ thể cần phát hành khuyến khích trên mỗi pool mà không cần thiết lập một trang trại riêng biệt.
  • Bạn cần kế toán trên mỗi vị trí cho sản phẩm LP của riêng bạn (vault, sản phẩm có cấu trúc, v.v.).
Ưu tiên CPMM khi:
  • Bạn đang khởi chạy một token mới với khám phá giá không xác định.
  • Bạn muốn một token LP có thể trao đổi được duy nhất mà bạn có thể stake, khóa hoặc kết hợp với.
  • Bạn muốn một trải nghiệm LP thụ động.
Ưu tiên AMM v4 khi:
  • Bạn cụ thể cần độ sâu AMM hybrid-CLOB mà AMM v4 đặt trên OpenBook.
  • Bạn đang di chuyển các tích hợp AMM v4 hiện có và không mở các vị trí mới.

Vị trí là NFT

Một vị trí CLMM được biểu diễn trên chuỗi bằng hai tài khoản:
  • Một position NFT mint với cung cấp 1.
  • Một tài khoản personal-position state được khóa vào mint NFT, giữ các tick, thanh khoản và giá trị tăng trưởng phí được quan sát lần cuối của vị trí.
Chuyển một NFT vị trí không bị đóng băng chuyển vị trí — quyền của tài khoản personal-position là người nắm giữ NFT. Một vị trí V2 vẫn bị ràng buộc với chủ sở hữu ban đầu chỉ khi mint vault cơ bản khớp với bộ lọc nhà phát hành bị hạn chế và CLMM đóng băng tài khoản token NFT tại thời điểm tạo. Vị trí vẫn có thể quản lý và đóng được thông qua CLMM. Một phương pháp chi tiết nằm trong products/clmm/ticks-and-positions.
Các phiên bản CLMM cũ hơn cũng tạo một tài khoản ProtocolPositionState trên mỗi (pool, tick_lower, tick_upper) để tổng hợp thanh khoản cho phạm vi đó. Các phiên bản mới không còn tạo hoặc sử dụng nó — trường vẫn xuất hiện trên danh sách tài khoản OpenPosition / IncreaseLiquidity / DecreaseLiquidity dưới dạng UncheckedAccount để tương thích ABI, nhưng chương trình không đọc hoặc ghi nó. Kế toán phạm vi tổng hợp nằm trên các điểm cuối tick (liquidity_gross, liquidity_net) trực tiếp.

Tiếp theo đi đâu

  • Accounts — bố cục tài khoản pool, config, tick-array và position.
  • Ticks and positions — bản đồ tick, khoảng cách tick, kích thước tick-array, vị trí dựa trên NFT.
  • Mathsqrt_price_x64, bước swap, dẫn xuất fee_growth_inside.
  • InstructionsOpenPosition, IncreaseLiquidity, Swap, CollectRewards, họ lệnh giới hạn và CreateCustomizablePool.
  • Fees and rewards — mô hình phí trên mỗi vị trí, chế độ phí một chiều, phí động và ba khe phần thưởng.
  • Code demos — mở / điều chỉnh / swap / thu thập / lệnh giới hạn / hướng dẫn pool có thể tùy chỉnh trong TypeScript.
Nguồn: