インテグレーションAPI

POSTローンチ登録

Last updated February 19, 2026

ローンチ作成からのオンチェーントランザクションが確認された後、Genesis ローンチを登録します。このエンドポイントはオンチェーン状態を検証し、ローンチリスティングを作成して、ローンチページの URL を返します。

SDK の使用を推奨

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

エンドポイント

POST /v1/launches/register

リクエストボディ

フィールド必須説明
genesisAccountstringはいGenesis アカウントの公開鍵(ローンチ作成レスポンスから取得)
networkstringいいえ'solana-mainnet'(デフォルト)または 'solana-devnet'
launchobjectはいローンチ作成で使用したものと同じローンチ設定

launch オブジェクトは、API がオンチェーン状態と期待される設定の一致を検証できるように、ローンチ作成エンドポイントに送信したものと一致する必要があります。トップレベルの network フィールドは検証対象の Solana クラスターを指定します。launch 内の network もこれと一致させてください。

リクエスト例

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

成功レスポンス

{
"success": true,
"existing": false,
"launch": {
"id": "uuid-launch-id",
"link": "https://www.metaplex.com/token/MintPublicKey..."
},
"token": {
"id": "uuid-token-id",
"mintAddress": "MintPublicKey..."
}
}
フィールド説明
successboolean成功時は true
existingboolean?ローンチが既に登録されている場合は true(冪等)
launch.idstring一意のローンチ ID
launch.linkstring公開ローンチページの URL
token.idstring一意のトークン ID
token.mintAddressstringトークンミントの公開鍵

ローンチが既に登録されている場合、エンドポイントは重複を作成せず、existing: true を付けて既存のレコードを返します。

メインネットのローンチは登録後に metaplex.com に表示されます。返される launch.link は公開ローンチページを指します。

エラーレスポンス

{
"success": false,
"error": "Genesis account not found on-chain",
"details": [...]
}

エラーコード

コード説明
400無効な入力、オンチェーン状態の不一致、または Genesis アカウントが見つからない
500内部サーバーエラー

バリデーション

登録エンドポイントは広範なオンチェーンバリデーションを実行します:

  • Genesis V2 アカウントを取得し、存在することを確認します
  • すべてのバケットアカウントが期待されるアロケーションと一致することを検証します
  • トークンメタデータ(名前、シンボル、画像)が入力と一致することを確認します
  • ミントのプロパティ(供給量、デシマル、権限)をチェックします

推奨: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: 'project',
23 launch: {
24 launchpool: {
25 tokenAllocation: 500_000_000,
26 depositStartTime: new Date(Date.now() + 48 * 60 * 60 * 1000),
27 raiseGoal: 200,
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 クライアントを参照してください。