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 →
PlatformConfig là lớp cấu hình cấp nền tảng nằm trên GlobalConfig. Trong khi GlobalConfig định nghĩa các quy tắc toàn giao thức (“phí giao dịch là 1%, cung cấp phải ít nhất 10M, chỉ ví này có thể tốt nghiệp”), PlatformConfig là những gì mỗi nền tảng phát hành — pump.fun, giao diện Raydium riêng, launchpad của bên thứ ba — sử dụng để thêm phí của họ, yêu cầu phần của LP sau tốt nghiệp, hạn chế hình dạng đường cong nào mà các lần phát hành của họ có thể chọn, và hiển thị branding của họ (tên, trang web, hình ảnh) trên chuỗi.Nó là gì
Một tài khoảnPlatformConfig quản lý năm mối quan tâm xuyên suốt cho một nền tảng:
- Branding — tên, trang web, liên kết hình ảnh, tất cả được lưu trữ nội tuyến để bất kỳ trình khám phá hay tổng hợp nào cũng có thể hiển thị nền tảng đã phát hành token.
- Phí nền tảng — một phí giao dịch bổ sung (
fee_rate) trên top củatrade_fee_ratecủa giao thức. Tích lũy vàoplatform_fee_walletcủa nền tảng. Bị giới hạn ở 100 bps bởiGlobalConfig.max_share_fee_rate. - Phân chia LP migration — ba số nguyên được lưu trữ (
platform_scale,creator_scale,burn_scale) cộng lại bằng1_000_000. Trước bản nâng cấp 2026-08-17, creator scale tạo ra một Fee Key riêng của creator. Các migration được thực hiện sau bản nâng cấp kết hợp hai cái đầu tiên thành một chia sẻ locked-LP do nền tảng sở hữu; phần còn lại bị đốt. - Danh sách trắng tham số đường cong — một
Vec<PlatformCurveParam>liệt kê chính xác những kết hợp(supply, total_base_sell, total_quote_fund_raising, migrate_type, migrate_cpmm_fee_on, vesting_params...)nào được phép trên nền tảng này. Nếu vector trống hoặc tất cả các mục không hợp lệ, bất kỳ kết hợp nào được phép; nếu không, các lần phát hành phải khớp chính xác với một trong các mục. - Danh sách cho phép global-config — một hạn chế tùy chọn yêu cầu một
PlatformAllowConfigdo nền tảng tạo choGlobalConfigđược chọn.
create_platform_config trong mã nguồn để có danh sách seed chính thức.)
Bố cục
platform_scale + creator_scale + burn_scale phải bằng 1_000_000. Trước bản nâng cấp 2026-08-17, creator_scale bị khóa riêng và Fee Key của nó đi đến creator token. Đối với các migration được thực hiện sau bản nâng cấp, nó được thêm vào platform_scale và quyền locked-LP của nó đi đến nền tảng thay thế. Ví dụ kết quả theo logic cập nhật:
(0, 100_000, 900_000)— 90% LP bị đốt, 10% khóa cho nền tảng.(50_000, 100_000, 850_000)— 85% bị đốt, 15% khóa cho nền tảng.(0, 0, 1_000_000)— đốt toàn bộ, không mint NFT. Các lần phát hành “không có insider” nghiêm ngặt.
Các trường branding
name, web, và img là các mảng byte nội tuyến được đệm bằng các số không lên đến hằng số kích thước của chúng. Để đọc chúng dưới dạng chuỗi, cắt lên đến \0 đầu tiên:
name: 64, web: 256, img: 256) để các nền tảng có thể bao gồm đủ siêu dữ liệu cho các trình khám phá và tổng hợp mà không cần chạm vào lưu trữ ngoài chuỗi. Bất cứ điều gì vượt quá các kích thước này sẽ hoàn nguyên tại CreatePlatformConfig với InvalidInput.
Cơ chế phí
Một swap trên một đường cong được ràng buộc vớiPlatformConfig tính ba phí lớp:
trade_feetích lũy vàoprotocol_fee_ownercủa giao thức (được yêu cầu quaCollectFee).platform_feetích lũy vào một kho lưu trữ trên mỗi nền tảng (được yêu cầu quaClaimPlatformFeehoặcClaimPlatformFeeFromVault; xeminstructions).creator_feetích lũy vào một kho lưu trữ trên mỗi creator được khóa bằng pubkey của creator + quote mint (được yêu cầu quaClaimCreatorFee).
creator_fee_rate bị giới hạn bởi MAX_CREATOR_FEE_RATE = 5000 (50 bps). fee_rate (phí nền tảng) bị giới hạn ở 10000 (100 bps) bởi GlobalConfig.max_share_fee_rate.
Phân chia NFT migration (chỉ CPMM)
Khi một lần phát hành tốt nghiệp thành CPMM, lệnh migration chia các token LP được mint bởiCPMM::InitializeWithPermission theo hai cách:
lp_to_platform khác không, chương trình LP-Lock bao nó thành một Fee Key NFT do platform_nft_wallet sở hữu. Điều này thay thế hành vi trước bản nâng cấp tạo ra các Fee Key riêng của nền tảng và creator. Các Fee Key được tạo bởi các migration hoàn thành trước bản nâng cấp vẫn không thay đổi. Quyền phí LP này tách biệt với phí creator CPMM được kiểm soát bởi platform_cp_creator.
Phần burn được đốt trực tiếp, vì vậy không có tài khoản nào có thể rút nó hoặc yêu cầu phí LP được đại diện bởi phần chia đó.
Các lần phát hành hiện có với migrate_type = 0 được lưu trữ vẫn có thể sử dụng đường dẫn AMM v4 kế thừa. Khởi tạo mới từ chối loại migrate đó.
Danh sách trắng tham số đường cong
curve_params: Vec<PlatformCurveParam> là cơ chế của nền tảng để hạn chế hình dạng đường cong nào mà các lần phát hành của nó có thể chọn. Nếu vector không trống và ít nhất một mục hợp lệ, chương trình thực thi tại Initialize rằng các tham số của lần phát hành khớp chính xác với ít nhất một mục.
u64::MAX cho các trường u64, u8::MAX cho các trường u8, 0 cho các trường supply / sell / fund-raising. Một BondingCurveParam với tất cả sentinel là “cho phép bất cứ điều gì” — tương đương với hành vi danh sách trắng trống.
Thuật toán khớp tại Initialize:
- Lọc
curve_paramsđể các mục cóglobal_configkhớp vớiGlobalConfigđược chọn của lần phát hành. - Nếu danh sách được lọc trống, cho phép bất kỳ tham số nào (nền tảng không danh sách trắng bất cứ điều gì cho
GlobalConfignày). - Nếu mọi mục trong danh sách được lọc có
all_is_invalid()(mọi trường là wildcard), cho phép bất kỳ tham số nào. - Nếu không, lặp lại các mục; cho mỗi mục, kiểm tra các tham số của lần phát hành so với mọi trường không phải wildcard. Nếu tất cả các trường không phải wildcard khớp, chấp nhận và trả về.
- Nếu không có mục nào khớp, hoàn nguyên với
InvalidInput.
MAX_CURVE_PARAMS = 10 giới hạn kích thước danh sách trắng.
PlatformAllowConfig — hạn chế một nền tảng
Mỗi nền tảng quyết định có hạn chế GlobalConfig nào mà các lần phát hành của nó có thể sử dụng hay không. Đặt restrict_global_config với UpdatePlatformConfig::RestrictGlobalConfig(0 | 1).
[b"platform_allow_config", platform_config, global_config].
Admin nền tảng tạo hoặc đóng một tài khoản cho mỗi cặp được phép qua CreatePlatformAllowConfig và ClosePlatformAllowConfig. Khi hạn chế là 1, khởi tạo tìm kiếm remaining_accounts cho PDA dự kiến và từ chối một tài khoản bị thiếu với NotEnoughRemainingAccounts. Khi hạn chế là 0, không cần tài khoản cho phép.
Tài khoản PlatformGlobalAccess được quản lý bởi admin giao thức trước đây và các lệnh tạo/đóng của nó đã bị loại bỏ. Kích thước PlatformConfig và GlobalConfig hiện có không thay đổi, nhưng bộ giải mã phải thay thế cờ toàn cầu cũ bằng cờ nền tảng mới. Các PDA truy cập cũ không được tiêu thụ bởi kiểm tra mới.
Đường dẫn đọc
PoolState.platform_config trỏ trực tiếp đến PlatformConfig gốc — tìm nạp một lần và lưu vào bộ nhớ cache branding.
Đường dẫn cập nhật
Các xoay vòng ví (
platform_fee_wallet, platform_nft_wallet, platform_vesting_wallet, platform_cp_creator, transfer_fee_extension_auth, cpswap_config) đều đi qua UpdatePlatformConfig. Đọc bảng gửi update_platform_config của mã nguồn để có các mã param chính xác.
Những cạm bẫy phổ biến
- Sentinel danh sách trắng được đặt sai. Một
BondingCurveParamvớitotal_locked_amount = 0không phải là wildcard — nó khớp với các lần phát hành rõ ràng từ chối vesting. Wildcard cho trường đó làu64::MAX. Cùng một cạm bẫy tồn tại chocliff_periodvàunlock_period. Sử dụngclear()(mà chương trình hiển thị) để đặt sentinel một cách chính xác. - Làm tròn phân chia NFT. Ba scale phải cộng lại chính xác
1_000_000. Lỗi off-by-one tạiCreatePlatformConfighoàn nguyên; off-by-one tại thời gian chạy sẽ mint hoặc đốt một đơn vị LP bổ sung, đó là lý do kiểm tra bằng nhau nghiêm ngặt ở đó. - Phân bổ kép vesting nền tảng. Nếu
platform_vesting_scale > 0, nền tảng phải gọiCreatePlatformVestingAccountmột lần sau khi giai đoạn gây quỹ của lần phát hành kết thúc; nếu nó quên, phần chia đó vẫn chưa được phân bổ và không hoạt động mãi mãi (ngân sáchtotal_locked_amountcủa lần phát hành được tiêu thụ nhưng nền tảng không bao giờ yêu cầu). - Sự mơ hồ
platform_cp_creator. Khi được đặt thànhPubkey::default(), creator lần phát hành được ghi lại làpool_creatorcủa pool CPMM sau tốt nghiệp; khi được đặt thành một khóa thực, khóa đó được ghi lại thay thế. Điều này xác định người thụ hưởng của phí creator CPMM sau tốt nghiệp và ai có thể ký đường dẫnCPMM::CollectCreatorFeegốc. Đường dẫn bộ sưu tập không cần phép vẫn trả cho ATA chính tắc của khóa được ghi lại này. Quyết định tại thời điểm tạo cấu hình nền tảng mô hình nào bạn muốn. - Hạn chế mà không có tài khoản cho phép. Bật
restrict_global_configtrước khi tạoPlatformAllowConfigcần thiết sẽ chặn các lần phát hành mới chọn cấu hình đó.
Con trỏ
products/launchlab/global-config— quy tắc phía giao thức mà một lần phát hành phải thỏa mãn.products/launchlab/vesting— cơ chếplatform_vesting_scale.products/launchlab/creator-fees— phí creator so với quyền Fee Key nền tảng.products/launchlab/platforms— hướng dẫn của người tích hợp nền tảng.
raydium-launch/programs/launchpad/src/states/platform_config.rs—PlatformConfig,PlatformParams,MigrateNftInfo,PlatformCurveParam,BondingCurveParam,is_valid_curve_param.raydium-launch/programs/launchpad/src/states/platform_allow_config.rs—PlatformAllowConfig.raydium-launch/programs/launchpad/src/lib.rs— các điểm vào cấu hình nền tảng và cho phép cấu hình.

