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 →
LaunchLab hỗ trợ ba hình dạng đường cong được lựa chọn tại Initialize: constant-product (phổ biến nhất, dạng bản sao ảo của đường cong chuẩn x · y = k), linear-pricefixed-price. Công thức ngưỡng tốt nghiệp được chia sẻ trên cả ba hình dạng. Trang này hướng dẫn chi tiết toán học constant-product; các dạng tuyến tính và cố định được tóm tắt ở phía cuối.

Các tham số lưu trữ trên LaunchState

TrườngÝ nghĩa
curve_type0 = constant-product (bản sao ảo), 1 = fixed-price, 2 = linear-price.
base_supply_maxTổng số base token mà đường cong có thể phát hành bất cứ lúc nào.
base_supply_graduationBase token phải được bán để đạt tốt nghiệp. Thường là 0.8 × base_supply_max; 20% còn lại trở thành LP ban đầu của pool sau tốt nghiệp.
quote_reserve_targetSố lượng quote kích hoạt tốt nghiệp. Được suy dẫn tại Initialize từ các tham số đường cong + base_supply_graduation.
virtual_base / virtual_quoteHạt giống bản sao ảo cho đường cong constant-product.
migrate_typeLựa chọn mục tiêu tốt nghiệp: AMM v4 vs CPMM. Xem instructions.
fees.buy_numerator / buy_denominatorPhí mua, ví dụ 100 / 10_000 = 1.00%.
fees.sell_numerator / sell_denominatorPhí bán. Thường giống phí mua.
fees.protocol_share, fees.creator_share, fees.lp_shareChia tách của các phí trên, tổng bằng mẫu số.
Tên trường trong struct Rust khớp với các trường PoolState được mô tả trong accounts; các đơn vị trên là khái niệm.

Đường cong constant-product với bản sao ảo (curve_type = 0)

Đường cong mặc định và được sử dụng nhiều nhất. Tất cả các lần phát hành kiểu Pump đều sử dụng dạng này. Đường cong cho rằng có một bản sao quote ảo V_q và một bản sao base ảo V_b từ lúc bắt đầu (lưu trữ dưới dạng virtual_quotevirtual_base trên PoolState), do đó pool hiệu dụng giống như một CPMM có các bản sao đó. Các lần mua tuân theo toán học x · y = k:
(V_q + real_quote_in_after_fee) × (V_b + real_base_remaining − base_out) = V_q × V_b
giải cho base_out:
base_out = (V_b + real_base_remaining) × quote_in_after_fee / (V_q + real_quote_in_after_fee)
Giá hiệu dụng tại base đã bán s:
price(s) = (V_q + real_quote_in(s)) / (V_b + real_base_remaining(s))
Bất biến x · y = k tương tự mà LaunchLab áp dụng trước tốt nghiệp sau đó là chính xác đường cong CPMM (hoặc AMM v4) sau tốt nghiệp, do đó bàn giao tốt nghiệp là liền mạch về mặt cơ học: giá biên tại base_sold = base_supply_graduation bằng giá mà pool sau tốt nghiệp mở ra với (quote_vault, base_vault_remaining) làm các bản sao.

Đường cong fixed-price (curve_type = 1)

Một đường cong giá phẳng. Mỗi lần mua/bán xảy ra ở một giá không đổi, có thể cấu hình tại Initialize:
price(s) = virtual_quote / virtual_base    (hằng số cho tất cả s)
Hữu ích cho các lần phát hành công bằng nơi nhóm muốn định giá thống nhất cho tất cả những người tham gia bất kể họ mua khi nào. Tốt nghiệp kích hoạt khi base_supply_graduation đã được bán (mối quan hệ chi phí tuyến tính làm cho việc suy dẫn quote_reserve_target trở nên đơn giản).

Đường cong linear-price (curve_type = 2)

Giá tăng tuyến tính với base_sold:
price(s) = a · s     (a = độ dốc, suy dẫn từ virtual_base / virtual_quote)
Chi phí tích phân:
cost(s_0, s_1) = a · (s_1² − s_0²) / 2
Bậc hai trong base_sold — những người mua sớm thanh toán gần như không, những người mua muộn thanh toán nhiều hơn đáng kể, với giá biên luôn tăng ở độ dốc cố định. Triển khai trên chuỗi nằm trong curve/linear_price.rs.

So sánh hình dạng đường cong

price
  │   linear (steep tail)               linear (curve_type = 2)
  │       ╱
  │      ╱
  │     ╱            const-product (curve_type = 0)
  │    ╱            ╱
  │   ╱           ╱
  │  ╱         ╱
  │ ╱       ╱
  │╱_____╱_______________________  fixed-price (curve_type = 1)
  └──────────────────────────────── base_sold
  0                  S_grad         S_max

Ngưỡng tốt nghiệp

quote_reserve_target được tính toán tại Initialize là quote cần thiết để đẩy base_sold từ 0 đến base_supply_graduation:
quote_reserve_target = cost(0, base_supply_graduation) × (1 + buy_fee_rate)
                                                         ^^^^^^^^^^^^^^^^^
                                                         xấp xỉ; dạng chính xác
                                                         khớp với làm tròn phí
                                                         được sử dụng trên Buy.
Một lần phát hành tốt nghiệp ngay khi quote_vault.balance ≥ quote_reserve_target. Vì các lần mua có kích thước rời rạc, số dư thực tế tại tốt nghiệp có thể vượt quá mục tiêu một chút — phần dôi thành thêm tính thanh khoản phía quote trong pool CPMM kết quả.

Ví dụ đã làm việc — một lần phát hành bậc hai

Tham số:
  • base_supply_max = 1_000_000_000 (1 tỷ base token, 6 chữ số thập phân)
  • base_supply_graduation = 800_000_000 (80% bán kích hoạt tốt nghiệp)
  • k = 40 (thang giá)
  • Phí: 1% mua, 1% bán, chia tách lp:creator:protocol = 60:20:20.
Giá ban đầu (s = 0): 0 (bậc hai thuần túy bắt đầu từ không). Giá tại 50% bán (s = 500_000_000):
price = 40 × (500e6 / 1e9)² = 40 × 0.25 = 10  (quote trên base, 6 chữ số thập phân)
Giá tại tốt nghiệp (s = 800_000_000):
price = 40 × (800e6 / 1e9)² = 40 × 0.64 = 25.6
Quote cần thiết để đạt tốt nghiệp (chi phí tích phân):
cost(0, 800_000_000) = (40 / (3 × 1e18)) × ((800e6)³ − 0)
                     = (40 / 3e18) × 5.12e26
                     ≈ 6.827e9
Vì vậy ≈ 6.827 đơn vị gốc quote (trong bất kỳ mint quote 6 chữ số thập phân nào được cấu hình, ví dụ ~6.827 USDC nếu quote là USDC). Phí áp dụng trên cùng:
quote_reserve_target ≈ 6.827e9 × 1.01 ≈ 6.895e9  (6.895 USDC)
Lần mua đầu tiên của 10 USDC:
  • Trạng thái ảo: s = 0, quote_vault = 0.
  • Trừ phí: quote_after_fee = 10 × 0.99 = 9.9.
  • Giải (40 / (3e18)) × s³ = 9.9s ≈ 6.22e6 base token được mua.
  • Phí 1% (0.1 USDC) chia tách: lp 0.06, creator 0.02, protocol 0.02. Phần chia sẻ lp nằm trong quote_vault; hai phần kia định tuyến đến các bộ đếm tích lũy tương ứng.
Mua tại 75% bán (tiếp cận tốt nghiệp): Cùng 10 USDC mua ít base hơn nhiều bây giờ vì đường cong dốc. Một giải Newton tại s₀ = 750e6 với quote_in_after_fee = 9.9 cho khoảng ∆s ≈ 0.4e6 — giảm ~15 lần số base trên USDC so với lần mua đầu tiên.

Cơ học phí trong giai đoạn đường cong

Trên mỗi Buy:
gross_fee      = ceil(quote_in_gross × buy_numerator / buy_denominator)
lp_share       = gross_fee × fees.lp_share / fees.total_share
protocol_share = gross_fee × fees.protocol_share / fees.total_share
creator_share  = gross_fee × fees.creator_share / fees.total_share
  • lp_share được để lại trong quote_vault. Đây là cách làm cho đường cong hiệu dụng chặt hơn (nhiều bản sao quote hơn so với cùng một nguồn cung base).
  • protocol_share tăng LaunchState.state_data.protocol_fees_quote.
  • creator_share tăng LaunchState.state_data.creator_fees_quote.
Trên Sell cùng một chia tách áp dụng nhưng phí được lấy từ quote_out xuất. Cả hai bộ đếm được xóa thông qua CollectFees (quản trị viên hoặc người tạo, mỗi bộ đến bộ đếm của mình).

Độ chính xác

  • Số lượng phía base: u64.
  • Số lượng phía quote: u64.
  • Lập phương/tích trung gian: u128.
  • Giải Newton cho “mua quote chính xác” và “bán quote chính xác” lặp lại trong u128 điểm cố định với số lần lặp tối đa có thể cấu hình (mặc định 10). Chế độ lỗi là NotConverged — hiếm khi xảy ra ngoài các trường hợp cạnh gần tốt nghiệp.

Bàn giao đến CPMM

Khi Graduate kích hoạt:
cpmm_quote_reserve = quote_vault − swept_protocol_fees − swept_creator_fees
cpmm_base_reserve  = base_vault                       // tức là base_supply_max − base_sold
cpmm_initial_price = cpmm_quote_reserve / cpmm_base_reserve
Đối với đường cong bậc hai, cpmm_initial_priceprice(base_sold) về mặt cơ học (nó là giá biên đường cong tại thời điểm bàn giao). Pool CPMM mở ở giá chính xác đó, do đó một người quan sát chuyển từ UI đường cong sang UI CPMM không thấy bất kỳ bước nhảy nào.

Bước tiếp theo

Nguồn: