紹介
はじめに
Last updated January 31, 2026
構築を始める前に Genesis のトークンローンチフローを理解しましょう。このガイドでは、初期化から配布までの各ステップを説明し、ローンチの計画を支援します。
構築の準備はできましたか?
フローを理解したら:
- JavaScript SDK - インストールと関数リファレンス
- Launch Pool - 比例配分の完全チュートリアル
- Presale - 固定価格販売の完全チュートリアル
Genesis フロー
すべての Genesis ローンチは以下のライフサイクルに従います:
┌─────────────────────────────────────────────────────────────────┐
│ 1. 初期化 │
│ Genesis Account 作成 → トークン発行 → エスクローで供給量保持 │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 2. BUCKET の追加 │
│ 配布設定(Launch Pool、Presale、トレジャリー) │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 3. ファイナライズ │
│ 設定のロック → 時間条件の有効化 │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 4. 入金期間 │
│ ユーザーが bucket タイプに基づいて SOL を入金 │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 5. トランジション │
│ 終了動作の実行 → トレジャリーへの資金ルーティング │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 6. 請求期間 │
│ ユーザーがトークンを請求 → チームが調達資金を請求 │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 7. ローンチ後(オプション) │
│ セキュリティのためにミント/フリーズ権限を取り消し │
└─────────────────────────────────────────────────────────────────┘
ステップ 1:初期化
何が起こるか: Genesis Account を作成し、トークンを発行して全供給量をエスクローで保持します。
指定する内容:
- トークンメタデータ(名前、シンボル、URI)
- 総供給量(小数点付き)
- Quote トークン(通常は wSOL)
結果: 新しい SPL トークンが作成され、配布まで Genesis Account によって管理されます。
トークン供給量の計画
SPL トークンはデフォルトで 9 桁の小数を使用します:
| 希望する供給量 | 9 桁の小数を含む場合 |
|---|---|
| 1 トークン | 1,000,000,000 |
| 1,000 トークン | 1,000,000,000,000 |
| 100 万トークン | 1,000,000,000,000,000 |
| 10 億トークン | 1,000,000,000,000,000,000 |
重要: 総供給量はすべての bucket 割り当ての合計と一致する必要があります。
ステップ 2:Bucket の追加
何が起こるか: bucket を追加してトークンの配布方法を設定します。
Bucket タイプ
| Bucket | タイプ | 目的 |
|---|---|---|
| Launch Pool | Inflow | 入金額に基づく比例配分 |
| Presale | Inflow | 上限付きの固定価格販売 |
| Unlocked | Outflow | 調達資金を受け取るトレジャリー |
設定例
一般的なローンチでは以下を使用します:
- Inflow bucket(Launch Pool または Presale) - 参加者から SOL を収集
- Outflow bucket(Unlocked) - チーム/トレジャリー用に収集した SOL を受け取る
トークン割り当て例(100万トークン):
├── Launch Pool: 800,000 トークン(80%)
└── Unlocked: 200,000 トークン(20% チーム割り当て)
資金フロー:
ユーザーが SOL を入金 → Launch Pool → 終了動作 → Unlocked Bucket → チームが請求
時間条件
各 bucket には 4 つの時間条件があります:
| 条件 | 制御内容 |
|---|---|
| 入金開始 | ユーザーが入金を開始できるタイミング |
| 入金終了 | 入金が締め切られるタイミング |
| 請求開始 | ユーザーがトークンを請求できるタイミング |
| 請求終了 | 請求が締め切られるタイミング |
Unix タイムスタンプ(ミリ秒ではなく秒)を使用してください。
ステップ 3:ファイナライズ
何が起こるか: 設定が永続的にロックされます。時間条件に基づいてローンチがアクティブになります。
ファイナライズ前と後の比較
| 前 | 後 |
|---|---|
| bucket を追加可能 | bucket の追加不可 |
| 設定を変更可能 | 設定がロック |
| ローンチ非アクティブ | ローンチアクティブ(時間条件に準拠) |
ファイナライズは元に戻せません。 ファイナライズ前に bucket の割り当て、時間条件、終了動作を十分に確認してください。
ステップ 4:入金期間
何が起こるか: ユーザーが Inflow bucket に SOL を入金します。
- Launch Pool: ユーザーが SOL を入金し、2% の手数料で引き出し可能
- Presale: ユーザーが固定価格で SOL を入金(ユーザーごとの入金上限(各ユーザーが貢献できる最大額)あり)
すべての入金には 2% のプロトコル手数料が適用されます。
ステップ 5:トランジション
何が起こるか: 入金が締め切られた後、終了動作を実行して資金をルーティングします。
一般的な終了動作:収集した SOL の 100% を Unlocked bucket(トレジャリー)に送信。
複数の送信先に資金を分割できます:
- 80% をトレジャリーへ
- 20% を流動性プール bucket へ
ステップ 6:請求期間
何が起こるか:
- ユーザーが入金額に基づいてトークンを請求
- チームが Unlocked bucket から調達した SOL を請求
トークン配布
Launch Pool: userTokens = (userDeposit / totalDeposits) × bucketAllocation
Presale: userTokens = userDeposit / pricePerToken
ステップ 7:ローンチ後(オプション)
何が起こるか: セキュリティのためにトークン権限を取り消します。
- ミント権限 - 取り消すと、新しいトークンの発行が永久に不可能になります
- フリーズ権限 - 取り消すと、トークンのフリーズが永久に不可能になります
これにより、ホルダーやラグチェッカーに対してトークン供給量が固定されていることを示します。
権限の取り消しは元に戻せません。ローンチが完了した場合のみ実行してください。
よくあるエラー
| エラー | 原因 | 解決策 |
|---|---|---|
already finalized | ファイナライズ後に変更を試みた | 新しい Genesis Account を作成 |
invalid total supply | bucket の割り当てが供給量と一致しない | 割り当ての合計が総供給量と一致するようにする |
time conditions overlap | タイムスタンプが競合している | 連続的な時間ウィンドウを使用する |
deposit period not active | 入金ウィンドウ外 | タイムスタンプを確認する |
計画チェックリスト
構築を始める前に:
- [ ] ローンチメカニズムの決定(Launch Pool vs Presale)
- [ ] 小数点付きの総トークン供給量の計算
- [ ] bucket 割り当ての計画(合計が総供給量と一致する必要あり)
- [ ] 時間ウィンドウの設定(入金開始/終了、請求開始/終了)
- [ ] 終了動作の決定(資金の送信先)
- [ ] トークンメタデータの準備(名前、シンボル、画像 URI)
FAQ
Genesis Account を初期化すると何が作成されますか?
メタデータ付きの新しい SPL トークン、マスター調整アカウント(Genesis Account PDA)が作成され、配布用にエスクローで保持される総供給量が発行されます。
ファイナライズ後にさらに bucket を追加できますか?
いいえ。ファイナライズは永続的です。bucket を追加したり設定を変更したりすることはできません。ファイナライズ前に完全な bucket 構造を計画してください。
Inflow bucket と Outflow bucket の違いは何ですか?
Inflow bucket はユーザーから SOL を収集します(Launch Pool、Presale)。Outflow bucket は終了動作を通じてトークンまたは SOL を受け取ります。通常はチーム/トレジャリーの請求用の Unlocked Bucket です。
ローンチはいつアクティブになりますか?
ファイナライズ後、bucket の時間条件に基づいてローンチがアクティブになります。現在の時刻が bucket の入金ウィンドウ内にある場合、ユーザーは参加できます。
小数点付きのトークン供給量はどのように計算しますか?
希望する供給量に 10^decimals を掛けます。9 桁の小数で 100 万トークンの場合:1,000,000 x 1,000,000,000 = 1,000,000,000,000,000。
SOL 以外のトークンを入金に使用できますか?
はい。quoteMint を任意の SPL トークンに設定できます。ただし、SOL 建てのローンチでは wSOL が標準です。
用語集
| 用語 | 定義 |
|---|---|
| Genesis Account | ローンチを調整しトークンを保持する PDA |
| Inflow Bucket | ユーザーからの入金を収集する bucket |
| Outflow Bucket | 終了動作を通じて資金を受け取る bucket |
| ファイナライズ | 設定をロックしてローンチを有効化する |
| 時間条件 | bucket のフェーズを制御する Unix タイムスタンプ |
| 終了動作 | 入金期間終了時に実行される自動アクション |
| トランジション | 終了動作を実行するインストラクション |
| Quote トークン | ユーザーが入金するトークン(通常は wSOL) |
次のステップ
構築の準備はできましたか?ローンチタイプを選択してください:
- JavaScript SDK - インストールと設定
- Launch Pool チュートリアル - 比例配分
- Presale チュートリアル - 固定価格販売
