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

> LaunchLabを通じたエンドツーエンドのトークン立ち上げ：カーブの選択、初期設定、卒業前のボンディングカーブアクティビティの監視、および卒業したCPMMプールの検証。

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

  [英語版を表示 →](/user-flows/launch-token-launchlab)
</Info>

<Info>
  LaunchLabはRaydiumのプライマリマーケット立ち上げ会場です。プロジェクトはトークン供給をボンディングカーブに預金し、買い手はSOL（または別の引用ミント）を使ってカーブに対して取引します。卒業閾値に達すると、カーブの資産は自動的にCPMMプールに移行し、トークンは自由に取引できるようになります。このページでは、プロジェクト側の全体的なフローについて説明します。
</Info>

## 必要なもの

* **トークンミント** — 売却するトークン。以下の条件で新しく鋳造される必要があります：
  * 完全な供給がウォレットに鋳造されている（カーブに預金できるように）。
  * 立ち上げ前にミント権が取り消されている（そうでないと、新しい鋳造によってカーブ価格を操作される可能性があります）。
* **メタデータ** — 名前、シンボル、画像、ソーシャルリンク。Metaplexメタデータまたは同様のもの。
* **ウォレット** — 作成レント + ボールト資金 + 優先度手数料に約1 SOL（卒業自体は卒業者によって支払われ、あなたではありません）。
* **決定事項**：
  * カーブタイプ（二次 vs 仮想リザーブCPMM）。
  * 卒業閾値。
  * LP処分ポリシー（Burn / Lock / ToCreator）。
  * 初期価格とキャップ。

## カーブの選択

LaunchLabは2つのカーブファミリーをサポートしています：

### 二次曲線（`curve_type = 0`）

価格は販売供給に応じて二次的に増加します。古典的な「フェア立ち上げ」の感覚 — 早期の買い手は価格の利点を得られ、遅い買い手はより多く支払い、価格は滑らかに加速します。

```
price(s) = a * s^2 + b * s + c
```

ここで `s` は販売供給です。通常 `a > 0`（凸）。初期価格と卒業価格の間のスプレッドは `a, b, c` とキャップが与えられると決定的です。

最適な用途：ノベルティ立ち上げ、ミーム、コミュニティドリブンプロジェクト。

### 仮想リザーブCPMM（`curve_type = 1`）

*仮想*リザーブを使用して定積AMMをエミュレートします — カーブは `x * y = k` でCPMMのように動作しますが、プールは絶対に引き出されない合成トークンでシードされた状態で開始されます。

```
price = virtual_quote_reserve / virtual_base_reserve
```

買い手が購入するにつれて、`virtual_base_reserve` は減少し、`virtual_quote_reserve` は増加します — カーブは卒業後のCPMMが見える場合と同じに見えます。より滑らかなハンドオフ。

最適な用途：卒業後の価格連続性が予測可能である立ち上げ。

## UIウォークスルー

[raydium.io/launchpad/create](https://raydium.io/launchpad/create) で：

1. **トークン。** ミントアドレスを貼り付けます。UIはメタデータを取得して表示します。

2. **カーブタイプ。** 二次またはバーチャルCPMMを選択します。UIは各々の価格チャートプレビューを表示します。

3. **卒業閾値。** デフォルト：カーブは `total_base_supply` のすべてが販売された後に終了します。代替案：特定の `graduation_quote_amount`（例：85 SOL）で終了します。

4. **引用ミント。** SOL（デフォルト）、USDC、または任意の他のミント。SOLが標準です。

5. **LP処分ポリシー：**

   * **Burn** — LP トークンが卒業時に使用不可のアドレスに送信されます。クリエイターはリクイディティを引き出せません。ユーザーはプールを永遠に信頼します。
   * **Lock** — LP トークンが `lock_duration` のタイムロックエスクローに送信されます。
   * **ToCreator** — LP トークンがクリエイターに送信されます。最も柔軟で、最も信頼最小化を低くします。

   最も尊敬される立ち上げはBurnを使用します。

6. **確認。** UIは以下をまとめます：予想される価格範囲、カーブがすべて売却された場合の初期調達、卒業CPMM設定。

7. **署名。** 1つのトランザクションが立ち上げ状態 + ベースボールト + クォートボールトを作成し、`total_base_supply` をウォレットからベースボールトに転送します。

## プログラマティックウォークスルー

```ts theme={null}
import { Raydium, TxVersion } from "@raydium-io/raydium-sdk-v2";
import { PublicKey } from "@solana/web3.js";
import BN from "bn.js";

const raydium = await Raydium.load({ connection, owner, cluster: "mainnet" });

const baseMint  = new PublicKey("MyNewToken...");
const quoteMint = new PublicKey("So11111111111111111111111111111111111111112"); // SOL

const { execute, extInfo } = await raydium.launchpad.createLaunchpad({
  programId:      LAUNCHPAD_PROGRAM_ID,
  baseMint,
  quoteMint,
  curveType:      0,                           // quadratic
  totalBaseSupply:    new BN("1000000000000000000"),   // 1B tokens with 9 decimals
  graduationQuoteAmount: new BN("85000000000"),         // 85 SOL
  lpDisposalPolicy:   "Burn",
  priceCurveParams: {
    a: new BN("1"),
    b: new BN("0"),
    c: new BN("0"),
  },
  startTime: new BN(Math.floor(Date.now() / 1000) + 300),  // start in 5 min
  txVersion: TxVersion.V0,
  computeBudgetConfig: { units: 400_000, microLamports: 50_000 },
});

const { txId } = await execute({ sendAndConfirm: true });
console.log("Launch ID:", extInfo.launchId.toBase58());
console.log("Base vault:", extInfo.baseVault.toBase58());
console.log("Quote vault:", extInfo.quoteVault.toBase58());
```

## 卒業前の監視

APIを通じてアクティビティを追跡します：

```ts theme={null}
const status = await fetch(
  `https://api-v3.raydium.io/launchpad/status?launchId=${launchId}`
).then(r => r.json());

console.log("Sold so far:",       status.baseSold.toString());
console.log("Quote raised:",      status.quoteRaised.toString());
console.log("Current price:",     status.currentPriceUsd);
console.log("Graduation progress:", status.graduationProgress, "%");
```

または、オンチェーン状態を直接デコードします：

```ts theme={null}
const launchState = await raydium.launchpad.fetchLaunchState(launchId);
console.log({
  baseSold:   launchState.baseSold.toString(),
  quoteHeld:  launchState.quoteHeld.toString(),
  graduated:  launchState.graduated,
});
```

### 監視するメトリクス

* **販売貫通率**：販売されたベースの割合。卒業閾値は通常80～100%販売時点です。
* **現在の価格**：現在の `baseSold` 時点でのカーブから導出されます。
* **ユニークな買い手**：インデクサーを通じた異なる支払い者の数。
* **買い/売り比率**：早期の立ち上げは減速する強い買い圧力を見ます。

24時間後の販売貫通率が `<10%` の場合、マーケティングが適切かどうかを検討してください。LaunchLabは低評価の立ち上げを救いません。

## 卒業

卒業は別のトランザクションであり、誰でも呼び出すことができます（通常、閾値に達したことに最初に気付いた人が小さな `graduation_bounty` を獲得します）。初期設定を超えてクリエイターからのアクションは必要ありません。

### 卒業が行うこと

1. ボールト残高を読み込みます。
2. カーブを閉じます（それに対してこれ以上の買い/売りはありません）。
3. ボールト残高を初期リクイディティとして新しいCPMMプールを作成します。
4. ボールト残高に基づいて初期LPトークンを鋳造します。
5. 設定されたポリシーに従ってLPトークンを処分します（Burn / Lock / ToCreator）。

卒業後、CPMMプールはライブであり、通常のRaydiumルーティングを通じて取引されます。

### 卒業の監視

```ts theme={null}
const launchState = await raydium.launchpad.fetchLaunchState(launchId);
if (launchState.graduated) {
  const cpmmPoolId = launchState.graduatedCpmmPool;
  console.log("Graduated to CPMM pool:", cpmmPoolId.toBase58());
}
```

### 手動卒業

誰もバウンティを請求しない場合、卒業を強制したい場合、あなた自身で呼び出すことができます：

```ts theme={null}
await raydium.launchpad.graduate({
  launchId,
  txVersion: TxVersion.V0,
  computeBudgetConfig: { units: 600_000, microLamports: 100_000 },
});
```

卒業は大量のCUを使用します。600kに予算を立てます。

## 卒業後

### CPMMプールを検証する

```ts theme={null}
const pool = await raydium.cpmm.getPoolInfoFromRpc({ poolId: cpmmPoolId });
console.log("CPMM price:", pool.poolInfo.price);
console.log("CPMM TVL:  ", pool.poolInfo.tvl);
```

CPMMプールは（概ね）以下を持つべきです：

* ベーストークン残高：`total_base_supply - baseSold` + カーブ残差。
* クォートトークン残高：`quoteRaised - graduationFee`。
* 価格：最後のカーブ価格に一致します。

### LP処分を検証する

* **Burn**：LP ミントの供給は1nc1nerator11111111111111111111111111111111 または同様に送信されたことを示します。
* **Lock**：ロック解除タイムスタンプでエスクローPDAのLPトークン。
* **ToCreator**：クリエイターのウォレット内のLPトークン。

### クリエイター手数料を収集する

クリエイター手数料シェアを設定した場合、定期的に呼び出します：

```ts theme={null}
await raydium.launchpad.collectCreatorFees({
  launchId,
  txVersion: TxVersion.V0,
});
```

手数料は卒業前のカーブ取引と卒業後の卒業CPMMプール（ `ToCreator` LP の場合）から発生します。

## 発表チェックリスト

卒業後の発表には以下を含める必要があります：

* [ ] 卒業トランザクションハッシュ。
* [ ] 新しいCPMMプールID。
* [ ] LP処分証明（バーン tx / ロック tx / クリエイターウォレット）。
* [ ] アグリゲータカバレッジETA（ウォレットは通常5分以内にインデックス）。
* [ ] トークンコントラクト検証（発表チャネル全体でミントアドレスを一致させます）。

## 落とし穴

### 1. ミント権が取り消されていない

`baseMint.mintAuthority` がまだ制御するキーの場合、新しい供給を鋳造して独自のカーブに売却できます。取り消されていない立ち上げは、アグリゲータとリスティングサイトによって一般的に高リスクまたは未検証としてフラグが付けられます。立ち上げ前に取り消します。

### 2. カーブパラメータが間違っている

`a` が高すぎる二次曲線は、初期トークンを無料（価格≈0）にし、後期トークンを不当にします。`a` が低すぎるカーブは、カーブをほぼ線形にします（「ボンディング」の感覚を失う）。devnetで最初にパラメータをテストします。

### 3. 卒業閾値が高すぎる

卒業が現実的な需要より多くの資本を必要とする場合、カーブは決して卒業せず、買い手はカーブに対してのみ売却できるトークンを保持します（より悪い価格で）。実際に達成できる閾値を選択します。

### 4. クォートミント詐欺

クォートミントがカスタムトークン（SOL/USDCではない）の場合、ユーザーは信頼しません。クォートにはSOLまたはUSDCを使用します。

### 5. ベースボールト資金調達を忘れた

SDKは作成時にウォレットから `totalBaseSupply` を転送します。ウォレットにそれがない場合、txは復帰します。署名する前に残高を確認します。

### 6. LP処分 = Burnは取り消し不可

LPが1nc1neratorに送信されると、誰もリクイディティを引き出せません。*あなたを含む*。これがポイントです — 信頼最小化。確実でない場合はBurnを選択しないでください。

### 7. 卒業後CPMM手数料レベル

卒業したプールはLaunchLabのデフォルトCPMM設定（0.25%）を使用します。1%または0.01%を望んでいた場合、卒業後に自分で2番目のCPMMプールを作成し、リクイディティを移行する必要があります — 厄介で、分裂的です。デフォルトを受け入れるか、LaunchLabではなく直接CPMM作成で立ち上げます。

## ポインタ

* [`products/launchlab/overview`](/ja/products/launchlab/overview) — LaunchLabのコンセプトとライフサイクル。
* [`products/launchlab/bonding-curve`](/ja/products/launchlab/bonding-curve) — 曲線数学の詳細。
* [`products/launchlab/instructions`](/ja/products/launchlab/instructions) — 完全な命令リファレンス。
* [`products/launchlab/vesting`](/ja/products/launchlab/vesting) — ベストメカニクス。
* [`algorithms/bonding-curves`](/ja/algorithms/bonding-curves) — 一般的なボンディング曲線数学。
* [`user-flows/creating-a-launchlab-token`](/ja/user-flows/creating-a-launchlab-token) — トークンクリエイターのUIウォークスルー（JustSenditおよびLaunchLabモード）。
* [`user-flows/how-creator-fees-work`](/ja/user-flows/how-creator-fees-work) — マイグレーション前および後のクリエイター手数料概要。

出典：

* Raydium SDK v2 `launchpad` モジュール。
* `api-v3.raydium.io` エンドポイント経由の起動状態。
