> ## 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.

# LaunchLab 命令一覧

> Initialize、Buy、Sell、Graduate、CollectFees、SetParams — すべての LaunchLab 命令の引数形状、アカウント一覧、前提条件と事後条件。

<Info>
  **このページは AI による自動翻訳です。すべての内容は英語版を正とします。**

  [英語版を表示 →](/products/launchlab/instructions)
</Info>

<Info>
  LaunchLab は厳選された命令セットを公開しています：6 つのユーザー向け呼び出しと、いくつかの管理者向けプリミティブです。SDK がすべてをラップしていますが、このページではアグリゲータ、監視ツール、CPI が必要なプログラムのために、生の表面を文書化しています。
</Info>

## 命令インベントリ

| グループ         | 命令                                                         | 呼び出し可能な主体                                                                                                                     |
| ------------ | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| グローバル設定      | `CreateConfig` / `UpdateConfig`                            | 管理者                                                                                                                           |
| ローンチライフサイクル  | `Initialize` / `InitializeV2`                              | 誰でも（クリエータ） — SPL Token ローンチ。V2 は最終的な CPMM 卒業のための `amm_creator_fee_on` を記録                                                     |
| ローンチライフサイクル  | `InitializeWithToken2022`                                  | 誰でも（クリエータ） — Token-2022 ローンチ、オプションの `TransferFeeConfig`                                                                       |
| トレード         | `BuyExactIn` / `BuyExactOut`                               | 誰でも — ボンディングカーブ上の正確な入力 / 正確な出力買い                                                                                              |
| トレード         | `SellExactIn` / `SellExactOut`                             | 誰でも — ボンディングカーブ上の正確な入力 / 正確な出力売り                                                                                              |
| 卒業           | `MigrateToAmm`                                             | マイグレーションウォレット（`GlobalConfig` で設定） — AMM v4 に卒業。`amm_creator_fee_on = BothToken` の場合に使用され、クリエータ手数料が両側で徴収可能                     |
| 卒業           | `MigrateToCpswap`                                          | マイグレーションウォレット — CPMM に卒業。`amm_creator_fee_on = QuoteToken` の場合に使用され、Token-2022 ローンチに必須。CPMM の `InitializeWithPermission` をラップ |
| 手数料          | `CollectFee`                                               | 管理者 — ローンチからプロトコル手数料を回収                                                                                                       |
| 手数料          | `CollectMigrateFee`                                        | 管理者 — 累積されたマイグレーション手数料を回収                                                                                                     |
| 手数料          | `ClaimCreatorFee`                                          | クリエータ — カーブフェーズ中に累積されたクリエータ手数料を請求                                                                                             |
| ベスティング       | `CreateVestingAccount`                                     | クリエータ — ロックされたトークンを受益者に配分、卒業後にアンロック                                                                                           |
| ベスティング       | `CreatePlatformVestingAccount`                             | プラットフォーム管理者 — プラットフォーム側の受益者にロックされたトークンを配分                                                                                     |
| ベスティング       | `ClaimVestedToken`                                         | 受益者 — cliff 後にアンロックされたトークンを請求                                                                                                 |
| プラットフォーム設定   | `CreatePlatformConfig` / `UpdatePlatformConfig`            | プラットフォーム管理者                                                                                                                   |
| プラットフォーム設定   | `UpdatePlatformCurveParam` / `RemovePlatformCurveParam`    | プラットフォーム管理者 — プラットフォーム毎の許可されたカーブ形状のリストを管理                                                                                     |
| プラットフォーム手数料  | `ClaimPlatformFee` / `ClaimPlatformFeeFromVault`           | プラットフォーム管理者                                                                                                                   |
| プラットフォームアクセス | `CreatePlatformGlobalAccess` / `ClosePlatformGlobalAccess` | 管理者 — どのプラットフォームが特定の `GlobalConfig` を使用できるかをゲート                                                                               |

「ExactIn/ExactOut」の分割は CPMM の `SwapBaseInput` / `SwapBaseOutput` を反映しています — オンチェーン上では異なる命令ディスクリミネータで、丸め処理がわずかに異なります。

**卒業パス選択。** `migrate_type` は `Initialize{V2,WithToken2022}` の時点で `PoolState` に記録され、2 つの卒業命令のいずれが実行できるかを決定します。Token-2022 ローンチは常に CPMM にマイグレーションします。SPL Token ローンチは `amm_creator_fee_on` の設定に応じて AMM v4 または CPMM にマイグレーションします：

* `BothToken` → `MigrateToAmm` → AMM v4 プール（クリエータ手数料は両側から徴収可能；AMM v4 はネイティブのクリエータ手数料フィールドを持たないため、クリエータ手数料は LP ロック NFT メカニズムで代わりに取得されます）。
* `QuoteToken` → `MigrateToCpswap` → `creator_fee_on = OnlyQuoteToken` の CPMM プール（クリエータは LaunchLab Fee Key NFT を通じて CPMM プールから継続して手数料を獲得します — [`products/launchlab/creator-fees`](/ja/products/launchlab/creator-fees) を参照）。

<Tip>
  **`AmmCreatorFeeOn` 列挙型名についての注記。** Rust ソースはこの列挙型を `AmmCreatorFeeOn` と呼び、バリアントは `QuoteToken` と `BothToken` です。名前は誤解を招きます：現在の運用では、バリアントはクリエータ手数料が卒業後の CPMM プールのどちら側から徴収されるかを制御するだけでなく、卒業**対象プログラム**（AMM v4 vs CPMM）を選択し、ローンチの `PoolState` の `migrate_type` とペアになります。このフィールドを「マイグレーション対象 + 卒業後のクリエータ手数料側」の組み合わせとして扱ってください。オンチェーンの列挙型名はリファクタリングされていませんが、これを `MigrationTarget` として推論することがより現実に合致しています。
</Tip>

## `Initialize`

新しいローンチを作成します。

**引数**

```
launch_params: {
    curve_type:                 u8,
    base_supply_max:            u64,
    base_supply_graduation:     u64,
    k:                          u128,              // または curve_type=1 の initial_virtual_quote_reserve
    open_time:                  u64,
    quote_mint:                 Pubkey,
    base_token_metadata: {                         // インライン名/シンボル/URI；プログラムは Metaplex に CPI
        name:   String,
        symbol: String,
        uri:    String,
    },
    fees: {
        buy_numerator:   u64,
        buy_denominator: u64,
        sell_numerator:  u64,
        sell_denominator: u64,
        lp_share:        u64,
        creator_share:   u64,
        protocol_share:  u64,
        total_share:     u64,
    },
    post_graduation_lp_policy:  u8,                // 0 = Burn、1 = Lock、2 = ToCreator
}
```

**アカウント**（簡略版）

| #  | 名前                 | W | S | 注記                                        |
| -- | ------------------ | - | - | ----------------------------------------- |
| 1  | `creator`          | W | S | レント + ベース mint 作成の支払い。                    |
| 2  | `launch_config`    |   |   | プロトコル設定バインディング。                           |
| 3  | `launch_state`     | W |   | 新規アカウント。                                  |
| 4  | `launch_authority` |   |   | PDA。                                      |
| 5  | `base_mint`        | W | S | 新規 Keypair（または PDA） — この命令で初期化。           |
| 6  | `base_vault`       | W |   | `launch_authority` の `base_mint` 上の ATA。  |
| 7  | `quote_mint`       |   |   |                                           |
| 8  | `quote_vault`      | W |   | `launch_authority` の `quote_mint` 上の ATA。 |
| 9  | `metadata`         | W |   | Metaplex メタデータ PDA。                       |
| 10 | `metaplex_program` |   |   |                                           |
| 11 | `token_program`    |   |   | SPL Token のみ。                             |
| 12 | `system_program`   |   |   |                                           |
| 13 | `rent`             |   |   |                                           |

**前提条件**

* `quote_mint ∈ launch_config.allowed_quote_mints`。
* `base_supply_graduation ≤ base_supply_max`。
* 手数料パラメータが `launch_config.max_*_fee_rate` チェックに合格。
* `open_time ≥ now − slop`（SDK は `≥ now` を強制；プログラムはわずかなバックデートを許容）。
* `curve_type` が認識される。

**事後条件**

* `base_mint` は `supply = base_supply_max`、すべて `base_vault` に。
* `base_mint.mint_authority = launch_authority`、`freeze_authority = None`。
* `LaunchState` は `status = Active`、`base_sold = 0`、`quote_reserve_real = 0` で初期化。
* `quote_reserve_target` はカーブパラメータ + `base_supply_graduation` + `buy_numerator` から計算（おおよそ）。

**一般的なエラー** — `InvalidQuoteMint`、`FeeRateTooHigh`、`InvalidCurveParams`、`MathOverflow`。

## `Buy`（標準バリアント：`BuyExactIn`）

ユーザーは固定の `quote_in` を提供；カーブは `base_out` を計算します。

**引数**

```
quote_in:          u64
minimum_base_out:  u64
```

**アカウント**

| #  | 名前                         | W | S |
| -- | -------------------------- | - | - |
| 1  | `user`                     | W | S |
| 2  | `launch_state`             | W |   |
| 3  | `launch_authority`         |   |   |
| 4  | `base_vault`               | W |   |
| 5  | `quote_vault`              | W |   |
| 6  | `user_base_ata`            | W |   |
| 7  | `user_quote_ata`           | W |   |
| 8  | `base_mint`                |   |   |
| 9  | `quote_mint`               |   |   |
| 10 | `token_program`            |   |   |
| 11 | `associated_token_program` |   |   |
| 12 | `system_program`           |   |   |

**前提条件**

* `launch_state.status == Active`。
* `now ≥ open_time`。
* `user_quote_ata.balance ≥ quote_in`。
* `quote_in > 0`。

**効果**

1. `quote_in` を `quote_in_after_fee` と手数料部分に分割。
2. ポスト手数料のクォートが与えられたカーブの Newton 法を解く。
3. `require(base_out ≥ minimum_base_out)` 否則 `ExceededSlippage` でリバート。
4. `quote_in` をユーザー → vault に移動。`base_out` を vault → ユーザーに移動。
5. `base_sold += base_out`、`quote_reserve_real += quote_in_after_fee × (lp_share / total_share)` を更新。
6. 手数料カウンタを更新（`protocol_fees_quote`、`creator_fees_quote`）。
7. `state_data.num_buys += 1`。
8. 更新後に `quote_reserve_real ≥ quote_reserve_target` の場合、SDK は通常、同じトランザクションで `Graduate` ix をチェーンします。プログラムは `Buy` 内で自動卒業しません — 後続の `Graduate` が必要です。

## `BuyExactOut`

ユーザーは正確な `base_out` を指定；プログラムは `quote_in` を計算。

**引数**

```
base_out:      u64
maximum_quote_in: u64
```

`BuyExactIn` と同じアカウント。Newton 反復ではなく、閉形式の二次積分（または curve\_type 1 の CPMM 逆関数）を使用。

## `Sell` / `SellExactIn` / `SellExactOut`

`Buy` のミラー。ユーザーは `base_in` をカーブに返し、`quote_out` を受け取ります。手数料は `quote_out` から差し引かれるため、ユーザーは生の統合収益より少なく受け取ります。

**前提条件** —

* `user_base_ata.balance ≥ base_in`。
* 販売は `base_sold` を 0 より下に押すことはできません（会計が一貫していれば前提と冗長）。
* ローンチは `Active`。

**効果** — `Buy` と対称。`base_sold` は減少、`quote_reserve_real` は減少。手数料は依然として発生。

## `MigrateToAmm` / `MigrateToCpswap`

カーブが `total_quote_fund_raising` に達したら、ローンチを取引可能な AMM プールに卒業させます。2 つの命令は 2 つの卒業対象に対応しています — AMM v4 および CPMM — およびいずれかのローンチに対して**1 つのみが有効**で、`pool_state.migrate_type` で決定されます（`Initialize` 時に設定）。

**署名者**

* `MigrateToAmm` — バインディング `GlobalConfig` に記録された `migrate_to_amm_wallet`。
* `MigrateToCpswap` — バインディング `GlobalConfig` に記録された `migrate_to_cpswap_wallet`。

これらのウォレットは通常、Raydium 運営の卒業クランクで保有されます；実際には卒業はしきい値を超える数秒後に実行され、最終購入を誰がトリガーしたかに関わらず。

**引数**

`MigrateToAmm` は 3 つを取ります（主に OpenBook マーケットパラメータで、プログラムが AMM v4 に転送）：

```
base_lot_size:               u64
quote_lot_size:              u64
market_vault_signer_nonce:   u8
```

`MigrateToCpswap` は何も取りません。

**効果（両方に共通）**

1. `pool_state.status == Migrate` を検証（つまり、`quote_reserve_target` に達した）。否則、`PoolMigrated`（ステータスは既に `Migrated`）または `PoolFunding`（まだ資金調達中）でリバート。
2. `pool_state.migrate_type` が命令にマッチするか検証（AMM の場合 `0`、CPMM の場合 `1`）。否則 `MigrateTypeNotMatch` でリバート。
3. 卒業後のリザーブを計算：
   * `base_amount_out = base_vault.amount − vesting_schedule.total_locked_amount`
   * `quote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee`
4. 対象プログラム（`AMM v4 Initialize2` または `CPMM InitializeWithPermission`）に CPI し、これらのリザーブで卒業後のプールを作成。
5. バインディング `PlatformConfig.{platform_scale, creator_scale, burn_scale}` に従って結果の LP を分割（CPMM のみ） — 1 ピースを `platform_nft_wallet` にミント、1 つを LP ロックプログラムでラップされたクリエータ NFT に、1 つを Burn & Earn で焼却。AMM v4 卒業の場合、LP 配分は AMM v4 の独自の初期化パラメータで管理。
6. `base_mint.mint_authority` を失効させる（`None` に設定）。
7. `pool_state.status = Migrated` をフリップし、`vesting_schedule.start_time = block_time + cliff_period` を設定。

**事後条件** — この時点から `BuyExactIn`、`BuyExactOut`、`SellExactIn`、`SellExactOut` は `PoolMigrated` でリジェクト。結果の AMM プールは正規で、他の AMM v4 / CPMM プールと同様にトレード可能。

**一般的なエラー** — `PoolFunding`、`PoolMigrated`、`MigrateTypeNotMatch`、`InvalidCpSwapConfig`、`MathOverflow`。

## `CollectFee`

単一ローンチのプロトコルの累積トレード手数料の管理者による回収。

**引数** — なし。

**アカウント**

| # | 名前                        | W | S | 注記                                                |
| - | ------------------------- | - | - | ------------------------------------------------- |
| 1 | `protocol_fee_owner`      |   | S | `global_config.protocol_fee_owner` と同じである必要があります。 |
| 2 | `authority`               |   |   | PDA `[b"vault_auth_seed"]`；vault 転送に署名。           |
| 3 | `pool_state`              | W |   | `quote_protocol_fee` をゼロにするために変更。                 |
| 4 | `global_config`           |   |   | 署名者の真実の源。                                         |
| 5 | `quote_vault`             | W |   | `quote_protocol_fee` でドレイン。                       |
| 6 | `recipient_token_account` | W |   | `protocol_fee_owner` の `quote_mint` 上の ATA。       |
| 7 | `quote_mint`              |   |   |                                                   |
| 8 | `token_program`           |   |   | SPL Token（quote mint は常に SPL Token）。              |

**効果** — `pool_state.quote_protocol_fee` を `quote_vault` から `recipient_token_account` に転送し、カウンタをゼロにします。最初の購入後いつでも呼び出し可能。

## `CollectMigrateFee`

卒業時に累積されたマイグレーション手数料の管理者による回収。`CollectFee` と同じアカウント形状で、署名者は `protocol_fee_owner` ではなく `migrate_fee_owner` で、ドレイン対象は `pool_state.migrate_fee` です。

## `ClaimCreatorFee`

クリエータが所有する**同じクォート mint を使用するすべてのローンチ**の累積クリエータ手数料のクリエータ毎の回収。プール毎のものではなく、クリエータ毎のフィー vault をドレイン。

**引数** — なし。

**アカウント**

| # | 名前                         | W | S | 注記                                                  |
| - | -------------------------- | - | - | --------------------------------------------------- |
| 1 | `creator`                  | W | S | プールクリエータ。                                           |
| 2 | `fee_vault_authority`      |   |   | PDA `[b"creator_fee_vault_auth_seed"]`。             |
| 3 | `creator_fee_vault`        | W |   | シード `[creator, quote_mint]` の PDA；集約されたクリエータ vault。 |
| 4 | `recipient_token_account`  | W |   | `init_if_needed`；`creator` の `quote_mint` 上の ATA。   |
| 5 | `quote_mint`               |   |   |                                                     |
| 6 | `token_program`            |   |   |                                                     |
| 7 | `system_program`           |   |   | 必要に応じて ATA 作成用。                                     |
| 8 | `associated_token_program` |   |   |                                                     |

**効果** — `creator_fee_vault` の全残高を `recipient_token_account` に転送。vault が空の場合はゼロ超過チェックでリバート。

## `ClaimPlatformFee`

ローンチのクォート vault を直接ドレインするプラットフォーム毎の回収。集約されたプラットフォーム vault を経由せずに、特定の単一ローンチのシェアを請求したい場合に使用。

**引数** — なし。

**アカウント**

| #  | 名前                         | W | S | 注記                                                   |
| -- | -------------------------- | - | - | ---------------------------------------------------- |
| 1  | `platform_fee_wallet`      | W | S | `platform_config.platform_fee_wallet` と同じである必要があります。 |
| 2  | `authority`                |   |   | PDA `[b"vault_auth_seed"]`。                          |
| 3  | `pool_state`               | W |   | `pool_state.platform_fee` でドレイン。                     |
| 4  | `platform_config`          |   |   | 署名者の真実の源。                                            |
| 5  | `quote_vault`              | W |   | ドレイン。                                                |
| 6  | `recipient_token_account`  | W |   | `init_if_needed`；`platform_fee_wallet` の ATA。        |
| 7  | `quote_mint`               |   |   |                                                      |
| 8  | `token_program`            |   |   |                                                      |
| 9  | `system_program`           |   |   |                                                      |
| 10 | `associated_token_program` |   |   |                                                      |

**効果** — `pool_state.platform_fee` を `quote_vault` から `recipient_token_account` に転送、カウンタをゼロにします。

## `ClaimPlatformFeeFromVault`

プラットフォーム毎の集約された回収。プラットフォーム経由でルーティングされたすべてのローンチからの手数料を累積するプラットフォームのクォート mint 毎のフィー vault をドレイン。

**引数** — なし。

**アカウント**

| # | 名前                         | W | S | 注記                                                   |
| - | -------------------------- | - | - | ---------------------------------------------------- |
| 1 | `platform_fee_wallet`      | W | S | `platform_config.platform_fee_wallet` と同じである必要があります。 |
| 2 | `fee_vault_authority`      |   |   | PDA `[b"platform_fee_vault_auth_seed"]`。             |
| 3 | `platform_config`          |   |   |                                                      |
| 4 | `platform_fee_vault`       | W |   | シード `[platform_config, quote_mint]` の PDA。           |
| 5 | `recipient_token_account`  | W |   | `init_if_needed`；`platform_fee_wallet` の ATA。        |
| 6 | `quote_mint`               |   |   |                                                      |
| 7 | `token_program`            |   |   |                                                      |
| 8 | `system_program`           |   |   |                                                      |
| 9 | `associated_token_program` |   |   |                                                      |

**効果** — `platform_fee_vault` の全残高を `recipient_token_account` に転送。vault が空の場合はリバート。

## ベスティングおよびプラットフォーム設定命令

これらは専用ページに文書化されています。各々が独自の状態モデルを持つため：

* [`CreateVestingAccount`、`CreatePlatformVestingAccount`、`ClaimVestedToken`](/ja/products/launchlab/vesting)
* [`CreatePlatformConfig`、`UpdatePlatformConfig`、`UpdatePlatformCurveParam`、`RemovePlatformCurveParam`、`CreatePlatformGlobalAccess`、`ClosePlatformGlobalAccess`](/ja/products/launchlab/platform-config)
* [`CreateConfig`、`UpdateConfig`](/ja/products/launchlab/global-config)

## 状態変化マトリックス

| 命令                                      | `status`   | `real_base` | `real_quote`     | 手数料カウンタ                                       | 事後状態プール                        |
| --------------------------------------- | ---------- | ----------- | ---------------- | --------------------------------------------- | ------------------------------ |
| `Initialize{V2,WithToken2022}`          | Funding    | 0           | 0                | 0                                             | —                              |
| `BuyExactIn(q_in)`                      | Funding    | +∆          | +∆q\_after\_fee  | `quote_protocol_fee += ∆`、`platform_fee += ∆` | —                              |
| `SellExactIn(b_in)`                     | Funding    | −∆          | −∆q\_before\_fee | （同じ）                                          | —                              |
| しきい値に達成                                 | → Migrate  | —           | —                | —                                             | —                              |
| `MigrateToAmm` / `MigrateToCpswap`      | → Migrated | （凍結）        | （凍結）             | `migrate_fee` セット                             | 作成、`PlatformConfig` に従って LP 分割 |
| `CollectFee` / `CollectMigrateFee`      | any        | —           | —                | カウンタをゼロ化                                      | —                              |
| `ClaimCreatorFee` / `ClaimPlatformFee*` | any        | —           | —                | vault をドレイン                                   | —                              |
| `CreateVestingAccount`                  | Funding    | —           | —                | —                                             | `allocated_share_amount` をバンプ  |
| `ClaimVestedToken`                      | Migrated   | —           | —                | —                                             | `base_vault` をドレイン             |

## 次はどこへ

* [`products/launchlab/code-demos`](/ja/products/launchlab/code-demos) — 各命令の TypeScript 例。
* [`products/launchlab/accounts`](/ja/products/launchlab/accounts) — 完全な状態形状。
* [`reference/error-codes`](/ja/reference/error-codes) — LaunchLab エラー列挙型。

ソース：

* [Raydium SDK v2 `LaunchLab` モジュール](https://github.com/raydium-io/raydium-sdk-V2)
* Raydium LaunchLab プログラムソース
