런치

POST런칭 등록

Last updated September 26, 2026

런칭 생성의 온체인 트랜잭션이 확인된 후 Genesis 런칭을 등록합니다. 이 엔드포인트는 온체인 상태를 검증하고, 런칭 목록을 생성하며, 런칭 페이지 URL을 반환합니다.

SDK 사용을 권장합니다

대부분의 통합자는 SDK의 createAndRegisterLaunch를 사용해야 합니다. 이 함수는 트랜잭션 생성, 서명, 전송, 런칭 등록을 한 번의 호출로 처리합니다. 이 엔드포인트는 SDK 없이 직접 HTTP 접근이 필요한 경우에만 사용하세요.

엔드포인트

POST /v1/launches/register

요청 본문

필드타입필수설명
genesisAccountstring예Genesis 계정 공개 키 (런칭 생성 응답에서 제공)
networkstring아니오'solana-mainnet' (기본값) 또는 'solana-devnet'
launchobject예런칭 생성에서 사용한 것과 동일한 런칭 구성
twitterVerificationTokenstring아니오Twitter 인증에서 받은 토큰. 제공하면 토큰의 사용자 이름이 launch.externalLinks.twitter와 일치할 때 런칭의 Twitter 링크가 인증됨으로 표시됩니다.
creatorWalletstring아니오Genesis 계정 권한자와 다른 경우의 생성자 지갑 공개 키
agentobject아니오런칭 대상 에이전트의 { mint }. 런칭 생성에 보낸 agent.mint와 일치해야 함

launch 객체는 런칭 생성 엔드포인트로 전송한 것과 일치해야 API가 온체인 상태가 예상된 구성과 일치하는지 확인할 수 있습니다. 동일한 런칭 유형, 할당 규칙, 기존 토큰 규칙이 적용되며, 계정에서 활성화되지 않은 기능에 대한 403 응답도 포함됩니다. 최상위 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": "launchpool",
"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를 사용하세요:

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 문서와 세 가지 통합 모드에 대한 자세한 내용은 API 클라이언트를 참조하세요.