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 →
Các chương trình sản phẩm của Raydium là những codebase độc lập, nhưng chúng được thiết kế dựa trên một tập hợp quy ước chung. Trang này là tài liệu tham khảo chính thức cho những quy ước đó. Các chương dành riêng cho sản phẩm mô tả cách những quy ước được thể hiện trong các tài khoản của chúng; trang này mô tả những quy ước đó.
”Dùng chung” có nghĩa là gì ở đây
Ba loại dùng chung chạy xuyên suốt codebase:- Dùng chung quy ước. Mọi chương trình đều sử dụng cùng một mô hình suy dẫn PDA, cùng một hình dạng phân chia phí, và cùng một ý tưởng tài khoản quan sát — nhưng mỗi cái lại tự thực hiện chúng trong chương trình của riêng mình với seed của riêng mình.
- Dùng chung tài khoản. Một số ít tài khoản là chính xác cùng một bản ghi trong nhiều pool (PDA quyền hạn toàn cục trong CPMM, các tài khoản AmmConfig).
- Dùng chung ngoài chuỗi. Một REST API và một TypeScript SDK phục vụ tất cả bốn chương trình. Các nhà tích hợp tương tác với một máy chủ HTTP và một gói NPM bất kể chương trình nào cuối cùng họ gọi.
1. PDA quyền hạn
Mỗi chương trình Raydium đều có chính xác một PDA sở hữu các kho tiền của nó. Người dùng không bao giờ giữ quyền hạn kho trực tiếp — PDA quyền hạn là người ký duy nhất có thể di chuyển tiền ra, và nó chỉ ký khi một lệnh chương trình hợp lệ yêu cầu. Mô hình này giống nhau trên các sản phẩm; seed khác nhau:| Chương trình | Seed PDA quyền hạn | Ghi chú |
|---|---|---|
| AMM v4 | [poolId] | Quyền hạn mỗi pool. Cùng hình dạng với thiết kế mỗi pool của v4. |
| CPMM | [b"vault_and_lp_mint_auth_seed"] | PDA duy nhất được dùng chung bởi tất cả các pool CPMM. Không có seed dành riêng cho pool. |
| CLMM | [b"pool_vault_and_lp_mint_auth_seed"] | PDA duy nhất được dùng chung trên tất cả các pool CLMM. |
| Farm v3 / v5 / v6 | [farmId] | Mỗi farm. PDA sở hữu các kho staking + reward cho farm đó. |
| LaunchLab | [b"vault_auth", launchId] | Mỗi lần phát hành. Sở hữu các kho base + quote trước khi hoàn thành. |
- Đối với CPMM và CLMM, PDA quyền hạn là một tài khoản toàn cục — mỗi pool loại đó sử dụng nó. Nếu bạn đang CPI vào CPMM, bạn cần nó một lần, không phải mỗi pool.
- Đối với các quyền hạn mỗi pool / mỗi farm, bạn suy dẫn PDA từ ID pool/farm. SDK làm việc này trong
getPoolKeys/getFarmKeys; nếu bạn đang tích hợp trực tiếp, bạn suy dẫn vớifindProgramAddressSync. - Quyền sở hữu kho không thể bị thay đổi. Một khi một tài khoản tiền được tạo với PDA quyền hạn làm chủ sở hữu, chỉ PDA đó — được gọi bởi chương trình — mới có thể chuyển ra. Không có ghi đè quản trị viên.
products/cpmm/accounts, products/clmm/accounts, products/amm-v4/accounts, products/farm-staking/accounts, products/launchlab/accounts.
2. Tài khoản quản trị viên và cấu hình
CPMM và CLMM dùng chung một mô hình tài khoản cấu hình gọi làAmmConfig: một tài khoản toàn cục nhỏ, được lập chỉ mục bằng u16, giữ các tỷ lệ phí và điểm đến quản trị viên áp dụng cho toàn bộ một tầng phí. Các pool ràng buộc với một cấu hình khi tạo và không bao giờ tái ràng buộc.
- Các tầng phí là toàn cục. Khi một pool nói “đây là pool 0.25%”, nó có nghĩa là nó ràng buộc với AmmConfig mà
trade_fee_ratecủa nó là 0.25% tại thời điểm tạo. Không có ghi đè tỷ lệ mỗi pool. - Một cấu hình có thể bị thay đổi nhưng các pool không theo. Nếu quyền cấu hình chỉnh sửa AmmConfig, mọi pool hiện có ràng buộc với cấu hình đó sẽ nhận ngay tỷ lệ mới. Đây là một tính năng, không phải một lỗi; đây là cách những thay đổi kinh tế cấp giao thức lan truyền mà không cần di chuyển mỗi pool.
disable_create_poollà đòn bẩy loại bỏ. Khi một tầng phí bị tắt, multisig giao thức đặt cờ này — các pool hiện có tiếp tục hoạt động nhưng không có pool mới nào có thể chọn tầng.protocol_owner/fund_ownerlà những người ký cho các lệnh thu phí. Đặt chúng thành multisig là cách gating việc rút tiền phí. Chúng KHÔNG phải các địa chỉ đích cho chính các phí; đó làprotocol_fee_destination/fund_fee_destinationtrên cùng một tài khoản.
AmmConfig — các tham số phí của nó được mỗi pool cứng hóa tại thời điểm tạo. Farm và LaunchLab có những tương đương của riêng chúng (FarmConfig, LaunchConfig) được bao gồm trong các chương riêng lẻ của chúng.
Bảng hoàn chỉnh về ai có thể thay đổi cái gì trong security/admin-and-multisig. Phân chia phí hướng đến người dùng hiện tại trong ray/protocol-fees.
3. Phân chia phí giao thức / quỹ / nhà sáng tạo
Mỗi phí swap CPMM và CLMM được chia thành tối đa bốn điểm đến trên đường đi ra:- Phí giao dịch tích lũy vào pool. Phí được loại bỏ khỏi phía đầu vào của swap và số tiền sau khi trừ phí là cái mà toán học sản phẩm không đổi nhìn thấy. Đây là ý nghĩa của “LP kiếm phí” —
ktăng và cũng vậy với giá trị tiền LP ngụ ý mỗi người. - Các phần giao thức/quỹ/nhà sáng tạo được khấu trừ khỏi tích lũy đó vào các tài khoản bộ đếm mỗi pool. Chúng nằm trên trạng thái pool (
protocol_fees_token{0,1},fund_fees_token{0,1}, v.v.) cho đến khi ai đó gọiCollectProtocolFee/CollectFundFee/CollectCreatorFee. Chúng không rời khỏi các kho của pool cho đến lúc đó; từ quan điểm của swap, chúng vẫn “trong pool”. - Thu thập di chuyển chúng ra. Người ký tương ứng (các khóa
protocol_owner/fund_ownertrên AmmConfig, hoặc nhà sáng tạo phát hành cho các pool LaunchLab) gọi lệnh thu thập và chương trình chuyển từ kho pool đến một ATA đích.
- Các tỷ lệ chia là tính từ phí giao dịch, không phải từ giao dịch. Phí giao dịch 0.25% với chia sẻ giao thức 12% có nghĩa là giao thức nhận được
0.25% × 12% = 0.03%của giao dịch — không phải 12% của giao dịch. - Phí nhà sáng tạo chỉ tồn tại trên các pool LaunchLab đã hoàn thành. Các pool CPMM/CLMM tiêu chuẩn có phân chia 3 chiều (LP / giao thức / quỹ). LaunchLab thêm một khe thứ tư được định tuyến cho ai phát hành tiền, được cấu hình tại
Initializevà bất biến. - AMM v4 chia chỉ hai cách, cứng hóa mỗi pool: LP và giao thức. Không có khe quỹ, không có khe nhà sáng tạo.
- Quỹ vs giao thức — cả hai đều là điểm đến kho giao thức, nhưng chúng có những người ký khác nhau và những mục đích sử dụng dự định khác nhau. Lịch sử
giao thứcquỹ hoạt động;quỹlà kho lâu dài hơn. Phân chia giữa hai cái là chính nó có thể điều chỉnh được.
reference/fee-comparison và ray/protocol-fees.
4. Tài khoản quan sát (TWAP ring buffer)
Cả CPMM và CLMM đều duy trì một tài khoản quan sát mỗi pool — một vòng đệm kích thước cố định của các mẫu(timestamp, cumulative_price) mà các hợp đồng khác có thể sử dụng để suy dẫn TWAP kháng thao tác.
- Mỗi swap gọi
update_observation. Chương trình đọc giá hiện tại, nhân với các giây trôi qua kể từ quan sát trước đó, và cộng vào bộ đếm tích lũy. Mục nhập mới ghi đè khe cũ nhất (kiểu vòng đệm). - TWAP trên một cửa sổ =
(cumul[end] − cumul[start]) / (timestamp[end] − timestamp[start]). Người tiêu dùng chọn hai quan sát ngoặc cửa sổ mong muốn và chia. - Raydium tự thân không sử dụng TWAP để định giá. Toán học AMM đọc trực tiếp các dự trữ điểm. Quan sát là một tính bên ngoài — Raydium trả chi phí viết chúng để các hợp đồng khác có thể đọc.
- AMM v4 không có tài khoản quan sát. Nó cũ hơn thiết kế ObservationState; các nhà tích hợp muốn TWAP v4 phải tính toán một cái ngoài chuỗi từ lịch sử nhật ký.
products/cpmm/accounts và products/clmm/accounts.
5. REST API + SDK + IDL
Bề mặt ngoài chuỗi là một bộ ba duy nhất được sử dụng bởi mọi sản phẩm:- REST API —
https://api-v3.raydium.io. Một góc nhìn được lập chỉ mục đọc chủ yếu của tất cả trạng thái trên chuỗi cộng với một công cụ trích dẫn. Một máy chủ, một lược đồ. - TypeScript SDK —
@raydium-io/raydium-sdk-v2trên NPM. Xây dựng và ký giao dịch cho mọi chương trình. Nói chuyện với API để lấy trích dẫn/siêu dữ liệu, nói chuyện với RPC Solana để làm mới trạng thái trước ký. - Sổ đăng ký IDL — Các IDL Anchor cho mọi chương trình được xuất bản nằm trong kho
raydium-idl(một JSON cho mỗi chương trình: CPMM, CLMM, LaunchLab). TypeScript SDK tiêu thụ các IDL này nội bộ; các máy khách Rust / Python hạ lưu tái tạo từ cùng các tập tin.
| Phần | Đọc từ | Ghi vào | Dung sai lỗi thời |
|---|---|---|---|
| REST API | Indexer (phân tích nhật ký chuỗi) | — (chỉ đọc cho nhà tích hợp) | Vài giây |
| SDK | API + RPC | Xây dựng giao dịch; không phát sóng | Không — phải tìm nạp lại trạng thái trước ký |
| IDL | Nguồn chương trình | — | Phiên bản mỗi nâng cấp chương trình |
sdk-api/, với bề mặt IDL cụ thể trong sdk-api/anchor-idl.
6. Indexer và nguồn cấp giá
REST API được cấp bởi indexer của Raydium, cái đăng ký nhật ký chương trình từ một đội những RPC Solana và ghi các bản ghi phi chuẩn hóa vào một cửa hàng SQL. Hai hậu quả cho nhà tích hợp:- Indexer là thứ duy nhất “biết về” trạng thái qua chương trình. Ánh xạ một pool CPMM đến đối tác CLMM của nó, tính toán một con số khối lượng 24h trên các phiên bản chương trình, nhặt một farm liên kết với một LP mint — tất cả đó là công việc indexer. Các chương trình tự thân không làm nó.
- Downtime Indexer là downtime API. Nếu API trả về dữ liệu lỗi thời hoặc trống, indexer là nghi phạm. Trạng thái trên chuỗi không bị ảnh hưởng; nhà tích hợp với RPC của riêng họ và SDK có thể tiếp tục giao dịch.
priceUsd trên hầu hết các phản hồi pool; đây được tính toán ngoài chuỗi từ một ảnh chụp góc nhìn indexer về dự trữ pool và một giá tham chiếu được trích dẫn (các pool USDC làm trục chung). Nó đủ tốt cho UI; nó không an toàn khi sử dụng làm oracle trên chuỗi. Sử dụng TWAP quan sát cho điều đó.
Cái không được dùng chung
Xứng đáng liệt kê rõ ràng, vì những độc giả mới thường giả định rằng chia sẻ nhiều hơn mức tồn tại:- Các chương trình không gọi nhau. Một swap CPMM không bao giờ CPI vào CLMM hoặc AMM v4. Chương trình duy nhất tạo thành nhiều AMM là chương trình AMM Routing — và cái đó lại mỏng, chỉ phát hành CPI vào mỗi AMM lần lượt.
- Không có quyền nâng cấp chung trên các chương trình. Mỗi chương trình trên chuỗi có khóa nâng cấp chương trình riêng (một multisig 3/4 cộng với khóa thời gian chờ 24h). Chúng không được liên kết.
- Không có trạng thái chung giữa farm và AMM. Một farm không biết LP nào mà nó stake đến từ một pool CPMM, một CLMM-position-NFT-mint, hay một tiền SPL không liên quan. Chương trình farm xem mint staking là mờ.
- Không có phụ thuộc oracle. Định giá là dự trữ trên chuỗi. Không có dự phòng Pyth/Switchboard; AMM không kiểm tra oracle trước khi giải quyết.
Con trỏ
protocol-overview/architecture— sơ đồ chính thức cho thấy cách những phần này thành phần.protocol-overview/versions-and-migration— cách các quy ước phát triển trên các phiên bản chương trình.security/admin-and-multisig— ai kiểm soát các khóa đằng sau AmmConfigs.reference/fee-comparison— ma trận tỷ lệ phí mỗi sản phẩm.reference/program-addresses— ID chương trình chính thức.
- Raydium SDK v2 — nguồn sự thật cho các seed PDA, bố cục tài khoản, và định nghĩa IDL.
- Sổ đăng ký Raydium IDL — Anchor IDLs.
- Các trang tài khoản mỗi sản phẩm được trích dẫn nội tuyến ở trên.


