Skip to main content
이 페이지는 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를 참고하세요.

레이아웃

PDA 유도:
(서명하기 전에 온체인 계정에서 정확한 시드 순서를 확인하세요 — 프로그램의 create_config 명령어가 정식 출처입니다.)

필드 의미

curve_typeindex

이 둘이 함께 GlobalConfig를 고유하게 식별합니다. (curve_type, index) 쌍마다 하나의 GlobalConfig가 존재합니다:
  • curve_type = 0 — 상수곱 가상 예비금 곡선. 기본값이며 가장 많이 사용됩니다.
  • curve_type = 1 — 고정 가격 곡선.
  • curve_type = 2 — 선형 가격 곡선.
indexu16으로, 관리자가 곡선 타입당 여러 설정을 발행할 수 있게 합니다(예: 더 낮은 수수료 설정, 더 높은 최소 인용 모금 설정). Initialize에서 런칭이 (curve_type, index) 쌍을 제공하면 프로그램이 일치하는 GlobalConfig를 로드합니다.

수수료

  • trade_fee_rate — 거래량의 1/1_000_000 단위로 표시됩니다. 곡선의 모든 매매에 적용됩니다. protocol_fee_ownerCollectFee를 통해 자신의 몫을 청구합니다.
  • migrate_fee — 졸업 시 한 번 부과되는 고정 수수료(라멜 또는 인용 단위, 설정에 따라 다름). migrate_fee_ownerCollectMigrateFee를 통해 청구합니다.
  • max_share_fee_rate10_000(100 bps)으로 초기화됩니다. 바인딩된 PlatformConfig플랫폼 공유 수수료율을 제한합니다(platform-config 참고). 프로그램은 trade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE를 강제합니다.

공급량 및 비율 하한

이 하한들은 런칭이 Initialize에서 선택할 수 있는 곡선 형태 파라미터를 제한합니다. 생성자의 CurveParams가 이 중 하나라도 위반하면 InitializeInvalidInput으로 되돌립니다.
  • min_base_supply — 곡선이 선언할 수 있는 최소 supply(소수점 없음). 기본값은 10_000_000.
  • max_lock_rate1/1_000_000 단위로 표시; 기본값 300_000(30%). total_locked_amount <= supply * max_lock_rate / 1_000_000을 통해 베스팅을 제한합니다.
  • min_base_sell_rate1/1_000_000 단위로 표시; 기본값 200_000(20%). base_supply_graduation / supply를 아래에서 제한합니다.
  • min_base_migrate_rate1/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_ownerCollectFee에 서명하고 이 설정에 바인딩된 모든 런칭에서 누적된 프로토콜 수수료를 청구하는 공개키. 온체인에 저장되며, 관리자는 UpdateConfig를 통해 회전할 수 있습니다.
  • migrate_fee_ownerCollectMigrateFee에 서명하는 공개키.

마이그레이션 지갑

저장된 두 졸업 지갑은 서로 다른 서명자가 필요합니다:
  • migrate_to_amm_wallet — 저장된 migrate_type = 0인 기존 레거시 런칭에 대해 MigrateToAmm에 서명합니다.
  • migrate_to_cpswap_walletMigrateToCpswap에 서명합니다. 새로 초기화된 모든 런칭이 이 경로를 사용합니다.
이들은 보통 Raydium 운영 졸업 크랭크에 의해 보유되므로, 생성자가 호출할 때까지 기다리지 않고 곡선이 임계값에 도달한 직후 졸업이 진행됩니다.

플랫폼 측 허용 목록

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) — 로드할 GlobalConfig PDA를 선택합니다.
  • CurveParams — 곡선 형태(supply, total_base_sell, total_quote_fund_raising, migrate_type)를 설명합니다.
  • VestingParams — 락된 공급량을 설명합니다.
  • MintParams — 기본 민트용입니다.
프로그램은 다음을 강제합니다:
  • curve_typeglobal_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 후, 런칭의 PoolStateglobal_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 읽기

사용 가능한 모든 설정을 나열하는 UI의 경우, SDK의 getAllGlobalConfigs 헬퍼를 사용하거나 이들을 미러링하는 LaunchLab API 엔드포인트를 쿼리하세요. 온체인 계정 수는 적습니다(실제로는 한 자리 수).

참고 자료

소스:
  • raydium-launch/programs/launchpad/src/states/config.rsGlobalConfig 구조체 및 initialize.
  • raydium-launch/programs/launchpad/src/lib.rscreate_config, update_config.