集成API

POST创建发行

Last updated February 19, 2026

为新的 Genesis 代币发行构建链上交易。返回未签名交易,需在调用注册发行之前完成签名和发送。

建议使用 SDK

大多数集成方应使用 SDK 中的 createAndRegisterLaunch,它在一次调用中处理创建交易、签名、发送和注册发行的全部流程。只有在需要不依赖 SDK 直接进行 HTTP 访问时才需要使用此端点。

我们建议使用 Create API(或 SDK)以编程方式构建发行,因为 metaplex.com 尚未支持 Genesis 程序的全部功能。通过 API 创建的主网发行在注册后将显示在 metaplex.com 上。

端点

POST /v1/launches/create

请求体

字段类型必填描述
walletstring创建者钱包公钥
launchobject完整发行配置(见下文)

发行配置

launch 对象描述完整的代币和发行设置:

字段类型必填描述
namestring代币名称,1–32 个字符
symbolstring代币符号,1–10 个字符
imagestring代币图片 URL(Irys 网关)
descriptionstring代币描述,最多 250 个字符
decimalsnumber代币精度(默认为 6)
supplynumber代币总供应量(默认为 1,000,000,000)
networkstring'solana-mainnet'(默认)或 'solana-devnet'
quoteMintstring报价代币铸造地址(默认为 wrapped SOL)
typestring'project'
finalizeboolean是否最终确认发行(默认为 true
allocationsarray分配配置数组
externalLinksobject网站、Twitter、Telegram 链接
publicKeystring创建者的钱包公钥(必须与顶级 wallet 字段一致)

分配类型

allocations 数组中每个分配都有一个 type 字段:

  • launchpoolV2 — 按比例分配池
  • raydiumV2 — Raydium LP 分配
  • unlockedV2 — 向接收方分配解锁代币
  • lockedV2 — 通过 Streamflow 锁仓代币
  • presaleV2 — 固定价格预售

SDK 的 buildCreateLaunchPayload 函数负责将简化的 CreateLaunchInput 转换为此完整载荷格式。请参阅 API 客户端文档。

请求示例

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": "project",
"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 而非直接调用此端点,该函数在一次调用中处理整个流程——创建交易、签名、发送和注册:

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 文档,包括全部三种集成模式。