이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
GlobalConfig는 프로토콜 수준의 설정 계정입니다. (curve_type, index)를 키로 하는 여러 개가 존재할 수 있으며, 모든 런칭은 Initialize 시점에 정확히 하나를 선택합니다. 선택된 GlobalConfig의 값들은 해당 런칭의 파라미터에 대한 하드 제한이 됩니다. 플랫폼 수준의 커스터마이제이션(플랫폼별 수수료율, 허용된 곡선 형태, 졸업 시 NFT 분할)은 products/launchlab/platform-config을 참고하세요.개요
GlobalConfig는 (curve_type, index) 당 하나씩 존재하는 PDA로, 모든 런칭이 따라야 할 프로토콜 규칙을 정합니다:
- 허용되는 본딩 곡선의 종류(
curve_type). - 곡선이 매매 시마다 부과하는 거래 수수료율.
- 졸업 시 부과되는 마이그레이션 수수료.
- 공급량, 락 비율, 판매 비율, 마이그레이션 비율의 하한.
- 인용 민트(보통 래핑된 SOL 또는 USDC) — 사용자가 구매하는 자산.
- 네 개의 프로토콜 지갑: 프로토콜 수수료 소유자, 마이그레이션 수수료 소유자, CPMM 및 레거시 AMM v4 졸업을 위해 보유된 두 개의 마이그레이션 제어 지갑.
GlobalConfig 계정은 LaunchLab 프로그램 관리자 또는 위임된 설정 생성 권한자가 생성할 수 있습니다. 기존 설정의 업데이트는 관리자만 가능합니다. 정식 권한자는 reference/program-addresses를 참고하세요.
레이아웃
create_config 명령어가 정식 출처입니다.)
필드 의미
curve_type과 index
이 둘이 함께 GlobalConfig를 고유하게 식별합니다. (curve_type, index) 쌍마다 하나의 GlobalConfig가 존재합니다:
curve_type = 0— 상수곱 가상 예비금 곡선. 기본값이며 가장 많이 사용됩니다.curve_type = 1— 고정 가격 곡선.curve_type = 2— 선형 가격 곡선.
index는 u16으로, 관리자가 곡선 타입당 여러 설정을 발행할 수 있게 합니다(예: 더 낮은 수수료 설정, 더 높은 최소 인용 모금 설정). Initialize에서 런칭이 (curve_type, index) 쌍을 제공하면 프로그램이 일치하는 GlobalConfig를 로드합니다.
수수료
trade_fee_rate— 거래량의1/1_000_000단위로 표시됩니다. 곡선의 모든 매매에 적용됩니다.protocol_fee_owner가CollectFee를 통해 자신의 몫을 청구합니다.migrate_fee— 졸업 시 한 번 부과되는 고정 수수료(라멜 또는 인용 단위, 설정에 따라 다름).migrate_fee_owner가CollectMigrateFee를 통해 청구합니다.max_share_fee_rate—10_000(100 bps)으로 초기화됩니다. 바인딩된PlatformConfig의 플랫폼 공유 수수료율을 제한합니다(platform-config참고). 프로그램은trade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE를 강제합니다.
공급량 및 비율 하한
이 하한들은 런칭이Initialize에서 선택할 수 있는 곡선 형태 파라미터를 제한합니다. 생성자의 CurveParams가 이 중 하나라도 위반하면 Initialize는 InvalidInput으로 되돌립니다.
min_base_supply— 곡선이 선언할 수 있는 최소supply(소수점 없음). 기본값은10_000_000.max_lock_rate—1/1_000_000단위로 표시; 기본값300_000(30%).total_locked_amount <= supply * max_lock_rate / 1_000_000을 통해 베스팅을 제한합니다.min_base_sell_rate—1/1_000_000단위로 표시; 기본값200_000(20%).base_supply_graduation / supply를 아래에서 제한합니다.min_base_migrate_rate—1/1_000_000단위로 표시; 기본값200_000(20%). 졸업 후 풀을 시드하기 위해 남겨진 토큰 수를 제한합니다.min_quote_fund_raising— 런칭이 선언할 수 있는 최소quote_reserve_target(소수점 포함). 기본값은 인용 민트의30_000_000_000단위입니다.
인용 민트 및 프로토콜 지갑
quote_mint— 사용자가 구매하는 자산. 대부분의 런칭은 래핑된 SOL(So111…112) 또는 USDC(EPjF…Dt1v)를 사용합니다. 하나의GlobalConfig는 하나의 인용 민트에 바인딩되며, 다른 인용 대상이 필요한 런칭은 다른(curve_type, index)를 대상으로 합니다.protocol_fee_owner—CollectFee에 서명하고 이 설정에 바인딩된 모든 런칭에서 누적된 프로토콜 수수료를 청구하는 공개키. 온체인에 저장되며, 관리자는UpdateConfig를 통해 회전할 수 있습니다.migrate_fee_owner—CollectMigrateFee에 서명하는 공개키.
마이그레이션 지갑
저장된 두 졸업 지갑은 서로 다른 서명자가 필요합니다:migrate_to_amm_wallet— 저장된migrate_type = 0인 기존 레거시 런칭에 대해MigrateToAmm에 서명합니다.migrate_to_cpswap_wallet—MigrateToCpswap에 서명합니다. 새로 초기화된 모든 런칭이 이 경로를 사용합니다.
플랫폼 측 허용 목록
GlobalConfig는 더 이상 requires_platform_auth를 가지지 않습니다. 이전 바이트는 패딩이므로 계정 크기는 변하지 않습니다. 접근은 이제 PlatformConfig.restrict_global_config와 해당 플랫폼의 관리자가 생성한 PlatformAllowConfig 계정으로 제어됩니다. platform-config를 참고하세요.
초기화 시 기본값
CreateConfig가 호출되면 프로그램은 많은 필드를 하드코딩된 기본값으로 시드합니다:
curve_type, index, migrate_fee, trade_fee_rate, quote_mint, 네 개의 지갑 공개키를 명시적으로 설정하며, 이후 값들은 UpdateConfig를 통해 조정할 수 있습니다.
런칭이 GlobalConfig를 선택하는 방법
Initialize에서 생성자는 다음을 전달합니다:
(curve_type, index)— 로드할GlobalConfigPDA를 선택합니다.CurveParams— 곡선 형태(supply,total_base_sell,total_quote_fund_raising,migrate_type)를 설명합니다.VestingParams— 락된 공급량을 설명합니다.MintParams— 기본 민트용입니다.
curve_type이global_config.curve_type과 일치합니다.supply >= global_config.min_base_supply.total_locked_amount <= supply * max_lock_rate / 1_000_000.total_base_sell >= supply * min_base_sell_rate / 1_000_000.(supply − total_base_sell − total_locked_amount) >= supply * min_base_migrate_rate / 1_000_000— 즉, 졸업 후 풀을 시드하기에 충분한 토큰이 남아있습니다.total_quote_fund_raising >= min_quote_fund_raising.migrate_type == 1(CPSWAP).- 선택된 플랫폼이
restrict_global_config == 1을 가지면 일치하는PlatformAllowConfig가 포함됩니다.
Initialize 후, 런칭의 PoolState는 global_config 공개키를 직접 저장하므로 바인딩은 영구적입니다.
업데이트 경로
UpdateConfig는 관리자 전용이며 (param: u8, value: u64) 쌍을 받습니다. 각 param 값은 변경할 필드를 선택합니다:
지갑 회전(
protocol_fee_owner, migrate_fee_owner, migrate_to_amm_wallet, migrate_to_cpswap_wallet)은 별도의 Pubkey 인자 형태를 사용합니다. 관리자 트랜잭션을 구성하기 전에 update_config 소스에서 정확한 디스패치 테이블을 확인하세요.
플랫폼 인증을 위한 이전 UpdateConfig 선택자 12는 제거되었습니다. 플랫폼 관리자는 이제 자신의 허용 목록을 관리합니다.
클라이언트에서 GlobalConfig 읽기
getAllGlobalConfigs 헬퍼를 사용하거나 이들을 미러링하는 LaunchLab API 엔드포인트를 쿼리하세요. 온체인 계정 수는 적습니다(실제로는 한 자리 수).
참고 자료
products/launchlab/platform-config— 곡선 형태를 더욱 제한하는 플랫폼별 오버레이.products/launchlab/accounts— 런칭을 위한 전체 계정 그래프.products/launchlab/instructions—Initialize및 업데이트 명령어.reference/program-addresses— 관리자 공개키, 프로그램 ID, 공유 권한자.
raydium-launch/programs/launchpad/src/states/config.rs—GlobalConfig구조체 및initialize.raydium-launch/programs/launchpad/src/lib.rs—create_config,update_config.

