이 페이지는 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)으로 초기화됩니다.BuyExactIn,BuyExactOut,SellExactIn,SellExactOut이 수용하는share_fee_rate인자를 제한합니다 — 거래 중 공유 수신자에게 직접 지불되는 추천 수수료입니다.PlatformConfig.fee_rate를 제한하지는 않습니다; 그 비율은 자체 상한이 있으며,platform-config에 설명되어 있습니다.CreateConfig와UpdateConfig모두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)를 대상으로 합니다. 민트는 SPL Token 프로그램 또는 Token-2022 중 하나가 소유할 수 있습니다 — 아래를 참고하세요.protocol_fee_owner—CollectFee에 서명하고 이 설정에 바인딩된 모든 런칭에서 누적된 프로토콜 수수료를 청구하는 공개키입니다. 온체인에 저장되며, 관리자는UpdateConfig를 통해 회전할 수 있습니다.migrate_fee_owner—CollectMigrateFee에 서명하는 공개키입니다.
Token-2022 인용 민트
CreateConfig는 Token-2022 quote_mint를 수용하며, 그러한 설정에 바인딩된 풀은 끝에서 끝까지 이를 수행합니다: 인용 금고, 두 수수료 금고, 공유 수수료 수신자의 토큰 계정 모두 Token-2022에서 생성되며, 스왑 명령어는 인용 측의 TransferFeeConfig를 고려합니다. PoolState.token_program_flag bit1은 런칭별로 선택을 기록합니다.
하나에 의존하기 전에 알아야 할 두 가지 제약이 있습니다:
- 더 이상 사용되지 않는
Initialize는 이에 대해 런칭할 수 없습니다.InitializeV2와InitializeWithToken2022만 Token-2022 인용 프로그램을 수용합니다.instructions를 참고하세요. - 확장 허용 목록이 적용되지 않습니다. CPMM 및 CLMM과 달리, LaunchLab은 인용 민트의 확장을 검사하지 않습니다 —
CreateConfig는 민트를 그대로 받으므로, 유일한 게이트는 어떤 민트가 설정에 바인딩되는지에 대한 관리자 재량입니다. 프로그램의NoSupportExtension검사는 LaunchLab이 자체적으로 생성하는 Token-2022 기본 민트만 포함합니다. 하나를 바인딩하는 것을 높은 신뢰 작업으로 취급하세요;reference/token-2022-support를 참고하세요.
마이그레이션 지갑
두 개의 저장된 졸업 지갑은 다른 서명자가 필요합니다: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.

