통합 API

POST런칭 생성

Last updated February 19, 2026

새로운 Genesis 토큰 런칭을 위한 온체인 트랜잭션을 빌드합니다. 런칭 등록을 호출하기 전에 서명하여 전송해야 하는 미서명 트랜잭션을 반환합니다.

SDK 사용을 권장합니다

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

Genesis 프로그램의 전체 기능을 metaplex.com에서 아직 지원하지 않으므로, Create API(또는 SDK)를 사용하여 런칭을 프로그래밍 방식으로 생성하는 것을 권장합니다. 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아니오견적 토큰 민트 주소 (기본값은 래핑된 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}`)

전체 SDK 문서와 세 가지 통합 모드에 대한 자세한 내용은 API 클라이언트를 참조하세요.