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 →
Bất biến
Một market maker với sản phẩm không đổi (CPMM) giữ hai dự trữx và y và thực thi:
k là tích của các dự trữ trước giao dịch. Đối với một market không có phí, x · y = k chính xác. Với phí, k tăng lên một cách nghiêm ngặt (phần chia cho LP của phí được giữ lại trong dự trữ).
Bất biến được thiết kế cố ý theo hình học: nó đảm bảo rằng bất kể một dự trữ nhỏ cỡ nào, dự trữ kia sẽ tăng lên không giới hạn để khớp — tức là pool không bao giờ có thể được rút hết về phía một bên.
Định giá
Giá tức thời
Giá biên tế củay tính theo x tại bất kỳ thời điểm nào là tiếp tuyến của đường cong:
x · y = k cho dy/dx = −y/x; bỏ qua dấu, |dy/dx| = y/x).
Đây là giá mà pool trích dẫn cho một giao dịch cực nhỏ. Đối với bất kỳ giao dịch hữu hạn nào, giá thực hiện là xấu hơn do slippage dọc theo đường cong.
Swap đầu vào chính xác (cho Δx, nhận Δy)
Với phí, hãy để f là tỷ lệ phí (ví dụ: f = 0.0025 cho 25 bps). Áp dụng phí vào đầu vào, sau đó sử dụng bất biến để giải quyết đầu ra:
Δx nhập vào dự trữ. Phần phí LP ở trong x'; phần phí giao thức được loại trừ khỏi đường cong thông qua một bước tính toán riêng (xem Các biến thể kế toán phí dưới đây).
Swap đầu ra chính xác (nhận Δy, thanh toán tối thiểu Δx)
Δx được làm tròn lên để đảm bảo pool không tính phí quá ít.
Slippage và tác động giá
Tác động giá đo lường giá tức thời của pool thay đổi bao nhiêu do giao dịch:Δx / x nhỏ, một khai triển bậc nhất cho:
p_before và effective là slippage. Giao diện slippage trên chuỗi thường được biểu thị dưới dạng (effective − p_before) / p_before; computeAmountOut của SDK trả về cả amountOut và priceImpact vì lý do này.
Kiểm tra bất biến trong mã
Sau một swap, các giao thức xác minh lại:Các biến thể kế toán phí
Kiểm tra bất biến giả định phí LP ở lại trong dự trữ. Các sản phẩm Raydium khác nhau xử lý các thành phần giao thức / quỹ / nhà tạo khác nhau:Quy ước CPMM
Phí là tỷ lệ kiểu basis-pointu64 trên mẫu số 1_000_000. Phí giao dịch được chia thành trade_fee_rate (tổng cộng) và sau đó được chia nhỏ thông qua protocol_fee_rate, fund_fee_rate, creator_fee_rate. Trên mỗi swap:
protocol_fees_*, fund_fees_*, creator_fees_*) được loại trừ khỏi dự trữ được sử dụng trong bất biến. Đây là cách phí có thể được lấy ra mà không cần di chuyển đường cong. Xem products/cpmm/fees.
Quy ước AMM v4
Phí là tỷ lệnumerator / denominator trên mẫu số 10_000. Sự chia tách là cố định tại tạo pool và được lưu trữ trên AmmInfo.fees:
pnl_share tích luỹ vào state_data.need_take_pnl_* và được loại trừ khỏi dự trữ; lp_share ở lại trong vault. Xem products/amm-v4/fees.
Cả hai quy ước đều bảo toàn bất biến theo cách tương tự — sự khác biệt là trực quan (mẫu số + số lượng danh mục con).
Quy tắc làm tròn
- Tính phí làm tròn lên. Đảm bảo pool không bao giờ tính phí quá ít.
- Số lượng đầu ra làm tròn xuống. Đảm bảo bất biến giữ một cách nghiêm ngặt (
k' > kthậm chí trước khi phí được thêm vào). - Số lượng đầu vào đầu ra chính xác làm tròn lên. Đảm bảo người dùng không thanh toán quá ít.
u128 cho các sản phẩm x · Δx trung gian để tránh tràn trên các dự trữ lớn. Kết quả cuối cùng được chuyển lại thành u64 với kiểm tra độ bão hòa.
Trường hợp đặc biệt
Pool trống
TrướcDeposit đầu tiên, x = y = 0. Các lệnh swap từ chối trước deposit.
Đầu ra bằng không
NếuΔx nhỏ đến mức Δy được làm tròn xuống bằng 0, lệnh sẽ hoàn nguyên với ZeroTradingTokens. Điều này ngăn chặn trích xuất giá trị mà không thanh toán; cũng có nghĩa là các giao dịch bụi trên các pool cực kỳ mất cân bằng bị lỗi.
Bụi LP
Deposit đầu tiên có xử lý đặc biệt: nó tính toán cung cấp LP ban đầu dưới dạng sqrt(x · y) và đốt một lượng “init burn” nhỏ (thường là 100 đơn vị LP) để ngăn chặn “cuộc tấn công lạm phát của người ký gửi đầu tiên” (nơi kẻ tấn công quyên góp cho vault và làm tăng giá trị token LP). Các khoản tiền gửi tiếp theo sử dụng toán học theo tỷ lệ.
Mối quan hệ với arbitrage
Giá của pool CPMM chỉ thay đổi qua:- Giao dịch thông qua pool chính nó (người dùng đi dọc theo đường cong).
- Quyên góp (gửi token đến vault mà không cần swap).
Ví dụ được giải quyết
Ví dụ 1 — giao dịch nhỏ, slippage không đáng kể
Pool:x = 1_000_000, y = 2_000_000, k = 2·10^12. Phí f = 0.0025.
Giao dịch Δx = 1_000:
1000 / 1993.01 ≈ 0.5018. Giá tức thời trước: 0.5. Tác động: ~0,36%.
Ví dụ 2 — giao dịch trung bình, slippage rõ ràng
Pool tương tự,Δx = 100_000 (10% của x):
100_000 / 181_405 ≈ 0.5513. Tác động: ~10,3% — khoảng một nửa quy tắc 2 · 10% = 20% (quy tắc này là trần trường hợp xấu nhất cho đường cong sản phẩm không đổi không có phí; phí giao dịch cộng với phép đảo ngược trong công thức hạ nó xuống).
Con trỏ
products/cpmm/math— các lựa chọn làm tròn và mẫu số phí cụ thể của CPMM.products/amm-v4/math— cách dự trữ được tích hợp OpenBook của AMM v4 mở rộng mô hình này.algorithms/slippage-and-price-impact— trang chuyên dụng về định hướng dung sai slippage cho giao diện người dùng.
- Sách trắng Uniswap v2 — phát biểu chính tắc của
x · y = k. - Mã nguồn chương trình Raydium CPMM.
- Mã nguồn chương trình Raydium AMM v4.


