集成API
POST注册发行
Last updated February 19, 2026
在创建发行的链上交易确认后注册 Genesis 发行。该端点验证链上状态、创建发行列表并返回发行页面 URL。
建议使用 SDK
大多数集成方应使用 SDK 中的 createAndRegisterLaunch,它在一次调用中处理创建交易、签名、发送和注册发行的全部流程。只有在需要不依赖 SDK 直接进行 HTTP 访问时才需要使用此端点。
端点
POST /v1/launches/register
请求体
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
genesisAccount | string | 是 | Genesis 账户公钥(来自创建发行响应) |
network | string | 否 | 'solana-mainnet'(默认)或 'solana-devnet' |
launch | object | 是 | 与创建发行中使用的相同发行配置 |
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..."
}
}
| 字段 | 类型 | 描述 |
|---|---|---|
success | boolean | 成功时为 true |
existing | boolean? | 如果发行已注册则为 true(幂等) |
launch.id | string | 唯一发行 ID |
launch.link | string | 公开发行页面 URL |
token.id | string | 唯一代币 ID |
token.mintAddress | string | 代币铸造公钥 |
如果发行已经注册,该端点将返回现有记录并附带 existing: true,而不会创建重复项。
主网发行在注册后将显示在 metaplex.com 上。返回的 launch.link 指向公开的发行页面。
错误响应
{
"success": false,
"error": "Genesis account not found on-chain",
"details": [...]
}
错误码
| 状态码 | 描述 |
|---|---|
400 | 无效输入、链上状态不匹配或 Genesis 账户未找到 |
500 | 内部服务器错误 |
验证
注册端点执行广泛的链上验证:
- 获取 Genesis V2 账户并验证其存在
- 验证所有 bucket 账户与预期分配匹配
- 验证代币元数据(名称、符号、图片)与输入匹配
- 检查铸造属性(供应量、精度、权限)
推荐:使用 SDK
我们建议使用 createAndRegisterLaunch 而非直接调用此端点,该函数在一次调用中处理整个流程——创建交易、签名、发送和注册:
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}`)
请参阅 API 客户端获取完整的 SDK 文档,包括全部三种集成模式。
