このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
PlatformConfig は GlobalConfig の上に乗るプラットフォームレベルのオーバーレイです。GlobalConfig がプロトコル全体のルール(「トレードフィーは 1%、供給量は最低 10M、このウォレットだけが卒業できる」)を定義するのに対し、PlatformConfig は各ローンチプラットフォーム(pump.fun、Raydium の UI、サードパーティのローンチパッド)が自分たちのフィーを追加し、卒業後の LP の一部を請求し、ローンチが選択できるカーブ形状を制限し、ブランディング(名前、ウェブサイト、画像)をオンチェーンに表示するために使用します。概要
PlatformConfig アカウントはプラットフォームの 5 つの横断的な関心事を管理します:
- ブランディング — 名前、ウェブサイト、画像リンク。すべてインラインで保存されるため、エクスプローラーやアグリゲーターがトークンをローンチしたプラットフォームを表示できます。
- プラットフォームフィー — プロトコルの
trade_fee_rateの上に追加されるトレードフィー(fee_rate)。プラットフォームのplatform_fee_walletに蓄積されます。GlobalConfig.max_share_fee_rateにより 100 bps に制限されます。 - LP 移行分配 — 3 つの保存された整数(
platform_scale、creator_scale、burn_scale)で合計1_000_000になります。2026-08-17 アップグレード前は、creator scale が別の creator Fee Key を生成していました。アップグレード後に実行された移行では、最初の 2 つをプラットフォーム所有のロック LP シェアに統合し、残りはバーンされます。 - カーブパラメータホワイトリスト —
(supply, total_base_sell, total_quote_fund_raising, migrate_type, migrate_cpmm_fee_on, vesting_params...)の組み合わせのうち、このプラットフォームで許可されるものを正確にリストアップするVec<PlatformCurveParam>。ベクトルが空またはすべてのエントリが無効な場合、任意の組み合わせが許可されます。そうでない場合、ローンチはエントリの 1 つと正確に一致する必要があります。 - グローバルコンフィグ許可リスト — 選択した
GlobalConfigに対してプラットフォームが作成したPlatformAllowConfigを要求するオプトイン制限。
create_platform_config を参照してください。)
レイアウト
platform_scale + creator_scale + burn_scale は 1_000_000 に等しくなければなりません。2026-08-17 アップグレード前は、creator_scale は別にロックされ、その Fee Key はトークン作成者に渡されていました。アップグレード後に実行された移行では、platform_scale に追加され、ロック LP 権はプラットフォームに移ります。更新されたロジックの下での例:
(0, 100_000, 900_000)— 90% LP バーン、10% プラットフォームにロック。(50_000, 100_000, 850_000)— 85% バーン、15% プラットフォームにロック。(0, 0, 1_000_000)— 完全バーン、NFT ミントなし。厳密な「インサイダーなし」ローンチ。
ブランディングフィールド
name、web、img はサイズ定数までゼロでパディングされたインラインバイト配列です。文字列として読み込むには、最初の \0 までスライスします:
name: 64、web: 256、img: 256)。プラットフォームはオフチェーンストレージに触れることなく、エクスプローラーとアグリゲーター向けに十分なメタデータを含めることができます。これらのサイズを超えるものは CreatePlatformConfig で InvalidInput で戻ります。
フィーメカニクス
PlatformConfig にバインドされたカーブ上のスワップは 3 層のフィーを請求します:
trade_feeはプロトコルのprotocol_fee_ownerに蓄積されます(CollectFeeで請求)。platform_feeはプラットフォームごとのボールトに蓄積されます(ClaimPlatformFeeまたはClaimPlatformFeeFromVaultで請求。instructionsを参照)。creator_feeはクリエイターの pubkey + quote mint でキーされたクリエイターごとのボールトに蓄積されます(ClaimCreatorFeeで請求)。
creator_fee_rate は MAX_CREATOR_FEE_RATE = 5000(50 bps)で制限されます。fee_rate(プラットフォームフィー)は GlobalConfig.max_share_fee_rate により 10000(100 bps)で制限されます。
NFT 移行分配(CPMM のみ)
ローンチが CPMM に卒業すると、移行命令はCPMM::InitializeWithPermission によってミントされた LP トークンを 2 つの方法に分割します:
lp_to_platform がゼロでない場合、LP-Lock プログラムはそれを platform_nft_wallet が所有する 1 つの Fee Key NFT にラップします。これはアップグレード前の動作(別のプラットフォームと creator Fee Key を作成)に置き換わります。アップグレード前に完了した移行によって作成された Fee Key は変わりません。この LP フィー権は platform_cp_creator で制御される CPMM creator フィーとは別です。
バーン スライスは直接バーンされるため、どのアカウントもそれを引き出したり、そのシェアで表される LP フィーを請求したりすることはできません。
保存された migrate_type = 0 を持つ既存のローンチは、レガシー AMM v4 パスを使用できます。新しい初期化はそのマイグレーションタイプを拒否します。
カーブパラメータホワイトリスト
curve_params: Vec<PlatformCurveParam> は、プラットフォームがそのローンチが選択できるカーブ形状を制限するメカニズムです。ベクトルが空でなく、少なくとも 1 つのエントリが有効な場合、プログラムは Initialize でローンチのパラメータが少なくとも 1 つのエントリと正確に一致することを強制します。
u64 フィールドの場合 u64::MAX、u8 フィールドの場合 u8::MAX、supply / sell / fund-raising フィールドの場合 0。すべてのセンチネルを持つ BondingCurveParam は「すべてを許可」です。空のホワイトリスト動作と同等です。
Initialize でのマッチングアルゴリズム:
curve_paramsをフィルタリングして、global_configがローンチの選択したGlobalConfigと一致するエントリを取得します。- フィルタリングされたリストが空の場合、任意のパラメータを許可します(プラットフォームはこの
GlobalConfigに対して何もホワイトリストに登録していません)。 - フィルタリングされたリストのすべてのエントリが
all_is_invalid()(すべてのフィールドがワイルドカード)の場合、任意のパラメータを許可します。 - それ以外の場合、エントリを反復処理します。各エントリについて、ローンチのパラメータをすべての非ワイルドカードフィールドと照合します。すべての非ワイルドカードフィールドが一致する場合、受け入れて戻ります。
- エントリが一致しない場合、
InvalidInputで戻ります。
MAX_CURVE_PARAMS = 10 はホワイトリストサイズを制限します。
PlatformAllowConfig — プラットフォームの制限
各プラットフォームは、そのローンチが使用できる GlobalConfig アカウントを制限するかどうかを決定します。UpdatePlatformConfig::RestrictGlobalConfig(0 | 1) で restrict_global_config を設定します。
[b"platform_allow_config", platform_config, global_config]。
プラットフォーム管理者は CreatePlatformAllowConfig と ClosePlatformAllowConfig を使用して、許可されたペアごとに 1 つのアカウントを作成または閉じます。制限が 1 の場合、初期化は remaining_accounts で予想される PDA を検索し、不足しているアカウントで NotEnoughRemainingAccounts で拒否します。制限が 0 の場合、許可アカウントは不要です。
以前のプロトコル管理者が管理していた PlatformGlobalAccess アカウントとその作成/閉じる命令は廃止されました。既存の PlatformConfig と GlobalConfig のサイズは変わりませんが、デコーダーは古いグローバルフラグを新しいプラットフォームフラグに置き換える必要があります。古いアクセス PDA は新しいチェックでは消費されません。
読み取りパス
PoolState.platform_config は元の PlatformConfig を直接指します。1 回取得してブランディングをキャッシュします。
更新パス
ウォレット回転(
platform_fee_wallet、platform_nft_wallet、platform_vesting_wallet、platform_cp_creator、transfer_fee_extension_auth、cpswap_config)はすべて UpdatePlatformConfig を通じて行われます。正確な param コードについては、ソースの update_platform_config ディスパッチテーブルを読んでください。
よくある落とし穴
- ホワイトリストセンチネルの設定ミス。
total_locked_amount = 0を持つBondingCurveParamはワイルドカードではなく、明示的にベスティングをオプトアウトしたローンチと一致します。そのフィールドのワイルドカードはu64::MAXです。同じ罠はcliff_periodとunlock_periodに存在します。clear()(プログラムが公開している)を使用してセンチネルを正しく設定します。 - NFT 分配の丸め。 3 つのスケールは正確に
1_000_000に合計する必要があります。CreatePlatformConfigでの 1 ずれのエラーは戻ります。実行時での 1 ずれは 1 つの余分な LP ユニットをミントまたはバーンします。これが厳密な等価性チェックが存在する理由です。 - プラットフォームベスティングの二重配分。
platform_vesting_scale > 0の場合、プラットフォームはローンチの資金調達終了後に 1 回CreatePlatformVestingAccountを呼び出す必要があります。忘れた場合、そのシェアは未配分のまま永遠に休止状態になります(ローンチのtotal_locked_amount予算は消費されますが、プラットフォームは請求しません)。 platform_cp_creatorの曖昧性。Pubkey::default()に設定されている場合、ローンチ作成者は卒業後の CPMM プールのpool_creatorとして記録されます。実際のキーに設定されている場合、そのキーが代わりに記録されます。これは卒業後の CPMM creator フィーの受益者と、元のCPMM::CollectCreatorFeeパスに署名できるユーザーを決定します。パーミッションレス収集パスは依然としてこの記録されたキーの正規 ATA に支払います。プラットフォーム設定作成時にどのモデルを使用するかを決定します。- 許可アカウントなしの制限。 必要な
PlatformAllowConfigを作成する前にrestrict_global_configを有効にすると、そのコンフィグを選択する新しいローンチがブロックされます。
ポインタ
products/launchlab/global-config— ローンチが満たす必要があるプロトコル側のルール。products/launchlab/vesting—platform_vesting_scaleメカニクス。products/launchlab/creator-fees— creator フィーとプラットフォーム Fee Key 権。products/launchlab/platforms— プラットフォーム統合者向けハウツー。
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— プラットフォームコンフィグと許可コンフィグエントリポイント。

