ローンチ

POSTローンチ作成

Last updated September 26, 2026

新しい Genesis トークンローンチのためのオンチェーントランザクションを構築します。ローンチ登録を呼び出す前に、署名して送信する必要がある未署名トランザクションを返します。

SDK の使用を推奨

ほとんどのインテグレーターには、SDK の createAndRegisterLaunch の使用を推奨します。この関数はトランザクションの作成、署名、送信、ローンチの登録を1回の呼び出しで処理します。このエンドポイントは、SDK を使用せずに直接 HTTP アクセスが必要な場合にのみ使用してください。

Genesis プログラムの全機能セットは metaplex.com ではまだサポートされていないため、Create API(または SDK)を使用してプログラムでローンチを構築することを推奨します。API を通じて作成されたメインネットのローンチは、登録後に metaplex.com に表示されます。

エンドポイント

POST /v1/launches/create

リクエストボディ

フィールド型必須説明
walletstringはい作成者のウォレット公開鍵
launchobjectはいローンチの完全な設定(下記参照)
agentobjectいいえ登録済みのエージェントに代わってローンチします(エージェントローンチを参照)

リクエストボディは includeBackendSigner、derivedSignerPublicKey、nonce、buildAllTxs も受け付けます。これらは metaplex.com 自身の署名フローで使用されるものです。API を直接呼び出す場合は指定しないでください。

ローンチ設定

launch オブジェクトはトークンとローンチのセットアップ全体を記述します:

フィールド型必須説明
namestringはいトークン名、1〜32文字
symbolstringはいトークンシンボル、1〜10文字
imagestringはいトークン画像 URL(Irys ゲートウェイ)
descriptionstringいいえトークンの説明、最大250文字
decimalsnumberいいえトークンのデシマル、1〜9(デフォルトは6)。新規トークンの launchpool は6である必要があり、既存トークンはオンチェーンのミントと一致する必要があります
supplynumberいいえトークンの総供給量(デフォルトは1,000,000,000)
networkstringいいえ'solana-mainnet'(デフォルト)または 'solana-devnet'
quoteMintstringいいえクォートトークンのミントアドレス(デフォルトはラップド SOL)
typestringはいローンチタイプ(ローンチタイプを参照)
finalizebooleanいいえローンチをファイナライズするかどうか(デフォルトは true)
allocationsarrayはいアロケーション設定の配列
externalLinksobjectいいえウェブサイト、Twitter、Telegram のリンク
publicKeystringはい作成者のウォレット公開鍵(トップレベルの wallet フィールドと一致する必要があります)
useExistingTokenbooleanいいえ新しいトークンをミントする代わりに既存の SPL トークンをローンチします(既存トークンを参照)
mintAddressstringいいえ既存トークンのミント。useExistingToken が true の場合は必須
isMutablebooleanいいえトークンのメタデータを変更可能なままにするかどうか(デフォルトは true)

新規トークンの場合、アロケーションの供給量の合計は supply と正確に一致する必要があります。デフォルトの 1,000,000,000 以外の supply を持つ新規トークンは、アカウントでカスタム供給量が有効になっていない限り 403 を返します。

ローンチタイプ

type説明
launchpool比例配分プール。アロケーション:launchpoolV2 と、任意の数の unlockedV2 および claimScheduleV2
presale固定価格プレセール。アロケーション(順序どおり):presaleV2、unlockedV2、その後に任意の数の claimScheduleV2
bondingCurveボンディングカーブによるローンチ。アロケーション:bondingCurveV2。供給量 1,000,000,000、デシマル6、SOL クォートに固定されます

スキーマには auction と custom も定義されています。auction は未実装のプレースホルダーで、custom はパブリック API で 400 として拒否されます。

アロケーションタイプ

allocations 配列の各アロケーションには type フィールド、name、supply、および同じタイプ名をキーとする設定オブジェクトがあります:

  • launchpoolV2 — 比例配分プール
  • presaleV2 — 固定価格プレセール
  • bondingCurveV2 — ボンディングカーブによる販売
  • unlockedV2 — 受取先へのロック解除済みトークン
  • claimScheduleV2 — ベスティングスケジュールに従って受取先にリリースされるトークン(クリフは任意)

Raydium の流動性は独立したアロケーションではなく、販売アロケーションのファンドフローとして設定します。RaydiumLP フローは Raydium CPMM プールを作成し、RaydiumClmmLP フローは Raydium CLMM(集中流動性)ポジションを作成します。CLMM ローンチは、アカウントで有効になっていない限り 403 を返します。

Streamflow アロケーションは廃止されました

以前の lockedV2(Streamflow)アロケーションタイプは受け付けられなくなりました。ロックおよびベスティングのアロケーションには claimScheduleV2 を使用してください。

既存トークン

すでにミント済みのトークンをローンチするには、useExistingToken: true を設定し、トークンの mintAddress を渡します。decimals はオンチェーンのミントと一致する必要があります。新規トークンとは異なり、アロケーションは供給量の一部のみを賄うことができます。合計は0より大きく supply 以下である必要があり、残りは作成者のウォレットに残ります。既存トークンのローンチは、アカウントで有効になっていない限り 403 を返し、bondingCurve タイプでは使用できません。

エージェントローンチ

登録済みのエージェントを作成者としてローンチを作成するには、agent を渡します:

フィールド型必須説明
agent.mintstringはいエージェントの Core アセットアドレス。wallet が所有している必要があります
agent.setTokenbooleanはいローンチしたトークンをエージェントのトークンとして設定するかどうか

エージェントのアセットサイナーウォレットがローンチの作成者になります。ローンチの登録にも同じ agent.mint を渡してください。

SDK の buildCreateLaunchPayload 関数は、簡略化された CreateLaunchInput をこの完全なペイロード形式に変換します。詳細は API クライアントのドキュメントを参照してください。

リクエスト例 — Launch Pool タイプ

curl -X POST https://api.metaplex.com/v1/launches/create \
-H "Content-Type: application/json" \
-d '{
"wallet": "YourWalletPublicKey...",
"launch": {
"name": "My Token",
"symbol": "MTK",
"image": "https://gateway.irys.xyz/...",
"decimals": 6,
"supply": 1000000000,
"network": "solana-devnet",
"quoteMint": "So11111111111111111111111111111111111111112",
"type": "launchpool",
"finalize": true,
"publicKey": "YourWalletPublicKey...",
"allocations": [...]
}
}'

成功レスポンス

{
"success": true,
"transactions": [
"base64-encoded-transaction-1...",
"base64-encoded-transaction-2..."
],
"blockhash": {
"blockhash": "...",
"lastValidBlockHeight": 123456789
},
"mintAddress": "MintPublicKey...",
"genesisAccount": "GenesisAccountPDA..."
}
フィールド型説明
successboolean成功時は true
transactionsstring[]Base64 エンコードされたシリアライズ済みトランザクション
blockhashobjectトランザクション確認用のブロックハッシュ
mintAddressstringトークンミントの公開鍵
genesisAccountstringGenesis アカウント PDA の公開鍵

エラーレスポンス

{
"success": false,
"error": "Validation failed",
"details": [...]
}
フィールド型説明
successbooleanエラー時は false
errorstringエラーメッセージ
detailsarray?バリデーションエラーの詳細(該当する場合)

エラーコード

コード説明
400無効な入力またはバリデーション失敗
500内部サーバーエラー

推奨:SDK の使用

このエンドポイントを直接呼び出す代わりに、createAndRegisterLaunch を使用することを推奨します。この関数はトランザクションの作成、署名、送信、登録のフロー全体を1回の呼び出しで処理します:

createAndRegisterLaunch.ts
1import {
2 createAndRegisterLaunch,
3 CreateLaunchInput,
4 genesis,
5} from '@metaplex-foundation/genesis'
6import { createUmi } from '@metaplex-foundation/umi-bundle-defaults'
7import { keypairIdentity } from '@metaplex-foundation/umi'
8
9const umi = createUmi('https://api.mainnet-beta.solana.com')
10 .use(genesis())
11
12// Use keypairIdentity to set a wallet when running server-side:
13// umi.use(keypairIdentity(myKeypair))
14
15const input: CreateLaunchInput = {
16 wallet: umi.identity.publicKey,
17 token: {
18 name: 'My Token',
19 symbol: 'MTK',
20 image: 'https://gateway.irys.xyz/...',
21 },
22 launchType: 'launchpool',
23 launch: {
24 launchpool: {
25 tokenAllocation: 500_000_000,
26 depositStartTime: new Date(Date.now() + 48 * 60 * 60 * 1000),
27 raiseGoal: 250,
28 raydiumLiquidityBps: 5000,
29 fundsRecipient: umi.identity.publicKey,
30 },
31 },
32}
33
34const result = await createAndRegisterLaunch(umi, {}, input)
35console.log(`Launch live at: ${result.launch.link}`)

SDK の全ドキュメント(3つの統合モードを含む)については、API クライアントを参照してください。