Chuyển đến nội dung chính

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.

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ầng đơn duy nhất được công bố

Khác với CPMM và CLMM, AMM v4 không có tài khoản AmmConfig. Phí được lưu trữ trực tiếp trên struct AmmInfo.fees của mỗi pool và được cố định khi tạo pool. Giá trị mặc định áp dụng cho về cơ bản mọi pool AMM v4 đang hoạt động:
Trường on-chainMặc địnhÝ nghĩa
swap_fee_numerator / swap_fee_denominator25 / 10_000Phí giao dịch gồm trên các swap theo đường AMM: 0,25% khối lượng input.
trade_fee_numerator / trade_fee_denominator25 / 10_000Được sử dụng bởi tích hợp OpenBook để tính giá lệnh giới hạn có bao gồm phí. Mặc định cũng là 0,25% như swap_fee.
pnl_numerator / pnl_denominator12 / 100Phần của giao thức trên phí swap: 12% — tức là 0,25% × 12% = 0,03% khối lượng. Tích lũy vào các bộ đếm need_take_pnl_*.
min_separate_numerator / min_separate_denominator5 / 10_000Ngưỡng độ chính xác nội bộ được sử dụng bởi logic làm tròn phân chia phí.
Lưu ý rằng pnl_numerator / pnl_denominator là một phân số của phí swap, chứ không phải khối lượng giao dịch — đây là một sự nhầm lẫn phổ biến. Phần của LP là phần bổ sung (88% của phí = 0,22% khối lượng) và là ngầm định; không có numerator “phần LP” riêng biệt. Một số pool sớm được tạo với các numerator khác nhau; luôn đọc AmmInfo.fees trước khi trích dẫn. Không có phí quỹkhông có phí tạo lập: đây là phát minh của CPMM/CLMM không tồn tại trong mô hình phí gốc của AMM v4.

Cách thực hiện phân chia

Trên mỗi swap, pool tính phí giao dịch gồm từ số tiền input, sau đó phân bổ:
gross_fee   = ceil(amount_in * swap_fee_numerator / swap_fee_denominator)        // 0.25% of amount_in
pnl_portion = gross_fee * pnl_numerator / pnl_denominator                        // 12% of gross_fee
lp_portion  = gross_fee − pnl_portion                                            // 88% of gross_fee
  • lp_portion được giữ lại trong vault và góp phần vào k tiếp theo. LP nắm bắt nó bằng cách đốt token LP sau này qua Withdraw.
  • pnl_portion tăng AmmInfo.state_data.need_take_pnl_coin hoặc need_take_pnl_pc tùy thuộc vào input swap ở phía nào.
Sử dụng cùng một thủ thuật bảo toàn bất biến như CPMM: số tiền PnL vật lý nằm trong vault nhưng bị trừ từ các dự trữ được sử dụng trong đường cong, vì vậy TakePnl chuyển token mà không thay đổi giá.

PnL từ OpenBook (lịch sử)

Không còn tích lũy. Tích hợp OpenBook đã bị vô hiệu hóa, vì vậy luồng PnL thứ hai được mô tả trong phần này không còn được tạo ra. Các bộ đếm total_pnl_{coin,pc} trên các pool hiện tại có thể mang những giá trị lịch sử, nhưng không có số tiền mới nào được thêm vào. Đường dẫn phí giao thức 0,03% (ở trên) không bị ảnh hưởng và vẫn hoạt động.
Từ lâu, AMM v4 có một luồng doanh thu giống phí thứ hai: khi các lệnh giới hạn của nó trên OpenBook được thực hiện, pool có thể ở phía taker của lượt fill và kiếm hoặc trả spread maker/taker của thị trường. Các sự kiện PnL này được giải quyết vào các vault pool trong MonitorStep và chương trình đã ghi chúng vào state_data.total_pnl_{coin,pc} như các bộ đếm thông tin.
  • Khi lưới được đăng ký của pool được hiệu chỉnh chính xác xung quanh giá đường cong, các lượt fill OpenBook có xu hướng tích cực về phí cho pool — AMM đang tạo thị trường trên OpenBook và kiếm được rebate maker.
  • Khi OpenBook tạm dừng hoặc hàng đợi sự kiện đầy, pool có thể nằm trên các lệnh cũ được thực hiện với giá không thuận lợi, tạo ra PnL âm. Sự kết hợp hoạt động này là một trong những động lực thúc đẩy việc chuyển đi khỏi thiết kế hybrid.
PnL OpenBook này không giống như phí giao thức 0,03%. OpenBook PnL làm tăng trực tiếp dự trữ pool (mang lợi ích cho LP + giao thức theo tỷ lệ phân chia phí), trong khi phí giao thức 0,03% được gắn thẻ cụ thể cho quét admin. Với phía OpenBook tắt, tích lũy phí duy nhất ngày hôm nay là 0,25% trên các swap AMM và phân chia 22/3 của nó.

Thu thập

Admin (multisig Raydium) gọi WithdrawPnl / TakePnl để quét need_take_pnl_* vào các tài khoản “chủ sở hữu PnL” cấp pool được cấu hình trên AmmConfig của chương trình (một config khác, có phạm vi chương trình — không phải AmmConfig kiểu CPMM theo từng pool). Quét:
  1. Giải quyết bất kỳ lượt fill OpenBook nào đang chờ xử lý trước. (Không hoạt động bây giờ khi OpenBook không hoạt động.)
  2. Chuyển need_take_pnl_coin / need_take_pnl_pc từ các vault pool đến đích PnL.
  3. Đặt lại các bộ đếm về 0.
Thao tác này không chuyển đường cong. LP không nên thấy bất kỳ thay đổi giá nào trên một lệnh gọi TakePnl.

Hoàn lại phí LP

Không có hướng dẫn “thu thập phí LP” chuyên dụng. Phí LP tích lũy trong các vault và làm tăng k theo thời gian; LP nhận chúng bằng cách đốt token LP qua Withdraw. Giá trị của một token LP tăng đơn điệu khi (coin_reserve_effective, pc_reserve_effective) tăng.

Trực quan hóa: 1.000 USDC khối lượng đi đâu

Trên một swap nặng USDC với giá trị $1.000 so với một pool có tham số mặc định:
Phí giao dịch gồm (0,25%):   $2.50
  Phần LP     (0,22%):       $2.20   → ở lại trong pool, tăng k
  Phần PnL    (0,03%):       $0.30   → need_take_pnl_pc, được quét bởi TakePnl
Còn lại gửi cho người dùng:  $997.50   (trừ tác động giá do đường cong)
So sánh với CPMM AmmConfig[0] (tầng 0,25%, không có phí tạo lập): LP nhận $2.10, giao thức $0.30, quỹ $0.10. CPMM giới thiệu phí quỹ bằng cách cắt nó từ phần có thể là của LP trong tầng tương đương AMM v4.

Bảng so sánh

AMM v4CPMM index=0CLMM index=2
Phí giao dịch0,25%0,25%0,25%
LP0,22%0,21%Khác nhau theo phát hành
Giao thức0,03%0,03%Theo tầng
QuỹN/A0,01%Theo tầng
Tạo lập (tùy chọn)N/A0 mặc địnhN/A
Phí nằm ở đâuPool vault + need_take_pnl_*Pool vault + protocol_fees_* + fund_fees_*Toàn cục + theo tick + theo vị trí
Ma trận đầy đủ trong reference/fee-comparison.

Ghi chú cho người tích hợp

  • Báo giá. Lấy AmmInfo qua SDK hoặc api-v3.raydium.io/pools/info/ids. Không tính toán báo giá của riêng bạn so với số dư vault thô — các số tiền ký quỹ OpenBook và loại trừ PnL đều kéo dự trữ có hiệu lực khỏi những gì getTokenAccountBalance hiển thị.
  • Tham số phí cũ. Về nguyên tắc SetParams có thể thay đổi swap_fee_numerator, nhưng trong thực tế multisig Raydium chưa bao giờ thay đổi mặc định cho bất kỳ pool hoạt động nào. Tuy nhiên, luôn đọc từ trạng thái on-chain thay vì mã hóa cứng.
  • Không có phần thưởng. AMM v4 không hỗ trợ phát hành phần thưởng trên pool. Các nông trại hệ sinh thái cũ (Farm v3 / v5 / v6) là tương đương của lớp staking — xem products/farm-staking.

Bước tiếp theo

Nguồn: