이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
버전 정보
- SDK:
@raydium-io/raydium-sdk-v2@0.2.42-alpha - 클러스터: Solana
mainnet-beta - 프로그램 ID:
reference/program-addresses참조 - 마지막 검증: 2026-04
package.json에서 SDK 버전을 고정하세요. 본딩 곡선 인터페이스는 마이너 릴리스 간에 변경되었습니다.설정
여기의 데모는raydium-sdk-V2-demo/src/launchpad의 파일을 반영합니다. 부트스트랩은 데모 저장소의 config.ts.template을 따릅니다:
런칭 생성
소스:src/launchpad/createMint.ts (그리고 API 기반 Bonk 변형을 위한 createBonkMintApi.ts)
initialK는 이차 곡선의 스케일 팩터입니다. 졸업 시 특정 오프닝 CPMM 가격을 목표로 조정하세요. 유도는products/launchlab/bonding-curve를 참조하세요.- SDK는 베이스 민트, 메타데이터 PDA, 그리고 두 개의 볼트를 단일 트랜잭션으로 생성합니다. 메타데이터 URI가 길면 1232바이트를 초과할 수 있으며, 이 경우 SDK는 두 개의 트랜잭션으로 분할합니다.
Initialize후, 런칭은openTime까지 거래할 수 없습니다.openTime을 1~2분 앞으로 설정하여 프론트러너가 첫 매수를 잡을 기회를 줄이세요.
런칭 상태 조회
getLaunchById는 디코딩된 LaunchState와 계산된 “졸업 진행도” 분수를 Decimal로 반환합니다.
매수 — 정확한 인용 입력
소스:src/launchpad/buy.ts
computeBuyBase는 온체인 Newton 솔버(이차 곡선) 또는 폐쇄형 CPMM 역함수(curve_type 1)를 반영합니다. “수신할 금액” UI 필드를 채우는 데 사용하세요.
매수 — 정확한 베이스 출력
maximumQuoteIn을 초과하면 ExceededSlippage로 거부합니다.
매도
소스:src/launchpad/sell.ts
base_sold를 baseIn만큼 줄이면 quote_out은 base_sold − baseIn과 base_sold 사이의 곡선 아래 적분 영역에서 매도 수수료를 뺀 값과 같습니다.
임계값 교차 매수에서 자동 졸업
SDK는 사후 매수 상태가 임계값을 교차할 것으로 감지하면buy* 트랜잭션 내에 Graduate 명령을 연결합니다:
Graduate는 권한이 없으므로 누구든지(MEV 봇 포함) 임계값 교차 후 첫 Graduate를 착지하려고 경쟁할 수 있습니다 — 일반적으로 분 단위가 아닌 초 단위입니다. 첫 착지자는 CPMM 풀 계정의 임차료만 지불합니다. 다른 이점은 없습니다.
수동 Graduate
autoGraduate가 꺼져 있거나 임계값 교차 트랜잭션이 실패한 경우, 졸업을 별도로 실행할 수 있습니다:
quote_reserve_real < quote_reserve_target이면 NotAtThreshold로 되돌립니다. 재시도 안전 — 성공 후 두 번째 Graduate 시도는 NotActive로 되돌립니다.
크리에이터 수수료 수집
소스:src/launchpad/claimCreatorFee.ts (단일 민트) 및 collectAllCreatorFees.ts (배치)
런칭의 생명주기 추적
모두 함께 모니터링 스크립트는 다음과 같을 수 있습니다:gRPC를 통해 구성 및 풀 감시
소스:src/grpc/launchpadPoolInfo.ts
Yellowstone gRPC를 통해 LaunchLab 프로그램을 구독하고 각 민트의 토큰 프로그램과 함께 모든 GlobalConfig 및 PoolState 업데이트를 기록합니다. 하나의 accounts 구독에 두 개의 datasize 필터가 두 계정 유형을 분리하므로, 단일 스트림이 둘 다를 포함합니다.
데모는 런칭의 민트를 분류하기 위한 가장 짧은 올바른 참조이며, Token-2022 인용 민트 릴리스가 필요하게 합니다:
- 풀은
PoolState.token_program_flag에서 직접 분류되며, 민트 페치 없이 베이스 민트에 대해 bit0을, 인용 민트에 대해 bit1을 디코딩합니다. 전체 바이트를0에 대해 테스트하는 것 — 인용 민트가 레거시 전용이었을 때 충분했던 — 인용 민트가 Token-2022일 때마다 레거시 베이스 민트를 Token-2022로 잘못 읽습니다. - 구성은 그런 식으로 분류할 수 없습니다:
GlobalConfig는 인용 민트의 주소를 저장하고 프로그램 플래그는 없으므로, 데모는 민트 계정의 소유자를 한 번 읽고 민트당 캐시합니다.
create 대 update는 데모 자신의 캐시에서 추론되며, 시작 시 getProgramAccounts에서 시드됩니다. 시드가 비활성화되면 “create”를 “이 스트림에서 처음 본” 것으로 읽으세요.
gRPC 액세스는 공개 RPC 표면의 일부가 아닙니다 — 데모 저장소의 src/grpc/README.md를 참조하세요.
Rust CPI
자신의 Anchor 프로그램에서 LaunchLab을 호출하는 것은 드뭅니다(대부분의 런칭 통합은 TS 측만). 그렇다면, 프로그램은cpi::accounts::Buy, cpi::accounts::Sell 등이 있는 Anchor 크레이트 raydium_launchlab을 제공합니다 — 패턴은 CPMM / CLMM CPI 예제를 반영합니다. 이 사이트가 채워지면 sdk-api/rust-cpi를 일반화된 템플릿으로 참조하세요.
함정
- 수수료 분할 산술 오프바이원.
total_share가 정확히lp_share + creator_share + protocol_share가 아니면,Initialize는InvalidFeeShares로 되돌립니다.totalShare를 합계와 같게 설정하세요. - 허용되지 않은 인용 민트 사용.
launch_config.allowed_quote_mints는 고정 목록입니다. 다른 민트를 전달하면 되돌립니다. 먼저raydium.launchpad.getConfig()로 확인하세요. - 메타데이터 크기. 긴
uri문자열은 Metaplex CPI를 예산 초과로 밀어냅니다.uri를 ~200자 이하로 유지하세요 — 대부분의 CDN 호스팅 JSON 메타데이터는 쉽게 맞습니다. - 졸업 경쟁. 자동화된 봇은
quote_reserve_real을 모니터링하고 임계값 교차 후 슬롯 또는 두 개 내에Graduate를 프론트런합니다. 이는 무해합니다 — 임차료만 비용입니다 — 하지만 UI가status전환을 빠른 이벤트로 취급해야 함을 의미합니다.
다음 단계
products/launchlab/bonding-curve— 곡선 수학.products/cpmm/code-demos— 결과 풀로 할 일.user-flows/launch-token-launchlab— 오프체인 단계를 포함한 엔드-투-엔드 토큰 런칭 가이드.
- Raydium SDK v2
- Raydium LaunchLab 프로그램 소스

