이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
PlatformConfig는 GlobalConfig 위에 놓인 플랫폼 레벨 오버레이입니다. GlobalConfig가 프로토콜 전체 규칙을 정의한다면 (“거래 수수료는 1%, 공급량은 최소 10M, 이 지갑만 졸업 가능”), PlatformConfig는 각 런칭 플랫폼(pump.fun, Raydium의 자체 UI, 써드파티 런치패드)이 자신의 수수료를 추가하고, 졸업 후 LP의 지분을 청구하고, 런칭이 선택할 수 있는 곡선 형태를 제한하고, 온체인에 브랜딩(이름, 웹사이트, 이미지)을 표시하는 데 사용합니다.개요
PlatformConfig 계정은 플랫폼을 위한 다섯 가지 핵심 기능을 소유합니다:
- 브랜딩 — 이름, 웹사이트, 이미지 링크가 모두 인라인으로 저장되어 모든 익스플로러나 애그리게이터가 토큰을 런칭한 플랫폼을 표시할 수 있습니다.
- 플랫폼 수수료 — 프로토콜의
trade_fee_rate위에 추가되는 거래 수수료(fee_rate)입니다. 플랫폼의platform_fee_wallet에 누적됩니다.GlobalConfig.max_share_fee_rate에 의해 100 bps로 제한됩니다. - LP 마이그레이션 분배 — 세 개의 저장된 정수(
platform_scale,creator_scale,burn_scale)로1_000_000을 합산합니다. 2026-08-17 업그레이드 이전에는 creator scale이 별도의 creator Fee Key를 생성했습니다. 업그레이드 후 실행된 마이그레이션은 처음 두 개를 플랫폼 소유의 잠금 LP 지분으로 결합하고, 나머지는 소각합니다. - 곡선 매개변수 화이트리스트 —
(supply, total_base_sell, total_quote_fund_raising, migrate_type, migrate_cpmm_fee_on, vesting_params...)조합 중 이 플랫폼에서 허용되는 것을 나열하는Vec<PlatformCurveParam>입니다. 벡터가 비어 있거나 모든 항목이 유효하지 않으면 모든 조합이 허용됩니다. 그렇지 않으면 런칭이 항목 중 하나와 정확히 일치해야 합니다. - 글로벌 설정 허용 목록 — 선택된
GlobalConfig에 대해 플랫폼이 생성한PlatformAllowConfig를 요구하는 선택적 제한입니다.
create_platform_config를 참조하세요.)
레이아웃
platform_scale + creator_scale + burn_scale는 1_000_000과 같아야 합니다. 2026-08-17 업그레이드 이전에는 creator_scale이 별도로 잠금되었고 그 Fee Key는 토큰 생성자에게 갔습니다. 업그레이드 후 실행된 마이그레이션의 경우, 이는 platform_scale에 추가되고 잠금 LP 권리는 플랫폼으로 이동합니다. 업데이트된 로직의 예상 결과:
(0, 100_000, 900_000)— 90% LP 소각, 10% 플랫폼에 잠금.(50_000, 100_000, 850_000)— 85% 소각, 15% 플랫폼에 잠금.(0, 0, 1_000_000)— 완전 소각, NFT 민팅 없음. 엄격한 “내부자 없음” 런칭.
브랜딩 필드
name, web, img는 크기 상수까지 0으로 패딩된 인라인 바이트 배열입니다. 이들을 문자열로 읽으려면 첫 번째 \0까지 슬라이스하세요:
name: 64, web: 256, img: 256). 플랫폼이 익스플로러와 애그리게이터를 위해 충분한 메타데이터를 포함할 수 있으면서도 오프체인 스토리지를 건드리지 않습니다. 이 크기를 초과하는 것은 CreatePlatformConfig에서 InvalidInput으로 되돌립니다.
수수료 메커니즘
PlatformConfig에 바인딩된 곡선의 스왑은 세 개의 계층화된 수수료를 부과합니다:
trade_fee는 프로토콜의protocol_fee_owner에 누적됩니다(CollectFee를 통해 청구).platform_fee는 플랫폼별 금고에 누적됩니다(ClaimPlatformFee또는ClaimPlatformFeeFromVault를 통해 청구;instructions참조).creator_fee는 생성자의 공개키 + 인용 민트로 키된 생성자별 금고에 누적됩니다(ClaimCreatorFee를 통해 청구).
creator_fee_rate는 MAX_CREATOR_FEE_RATE = 5000(50 bps)으로 제한됩니다. fee_rate(플랫폼 수수료)는 GlobalConfig.max_share_fee_rate에 의해 10000(100 bps)으로 제한됩니다.
NFT 마이그레이션 분배 (CPMM 전용)
런칭이 CPMM으로 졸업할 때, 마이그레이션 명령어는CPMM::InitializeWithPermission에 의해 민팅된 LP 토큰을 두 가지 방식으로 분배합니다:
lp_to_platform이 0이 아니면, LP-Lock 프로그램이 이를 platform_nft_wallet이 소유한 하나의 Fee Key NFT로 래핑합니다. 이는 별도의 플랫폼 및 생성자 Fee Key를 생성한 업그레이드 이전 동작을 대체합니다. 업그레이드 이전에 완료된 마이그레이션으로 생성된 Fee Key는 변경되지 않습니다. 이 LP 수수료 권리는 platform_cp_creator에 의해 제어되는 CPMM 생성자 수수료와 별개입니다.
소각 슬라이스는 직접 소각되므로 어떤 계정도 이를 인출하거나 해당 지분이 나타내는 LP 수수료를 청구할 수 없습니다.
저장된 migrate_type = 0을 가진 기존 런칭은 여전히 레거시 AMM v4 경로를 사용할 수 있습니다. 새로운 초기화는 해당 마이그레이션 유형을 거부합니다.
곡선 매개변수 화이트리스트
curve_params: Vec<PlatformCurveParam>은 플랫폼이 런칭이 선택할 수 있는 곡선 형태를 제한하는 메커니즘입니다. 벡터가 비어 있지 않고 최소한 하나의 항목이 유효하면, 프로그램은 Initialize에서 런칭의 매개변수가 최소한 하나의 항목과 정확히 일치하도록 강제합니다.
u64 필드의 경우 u64::MAX, u8 필드의 경우 u8::MAX, supply / sell / fund-raising 필드의 경우 0. 모든 센티널을 가진 BondingCurveParam은 “모든 것 허용” — 빈 화이트리스트 동작과 동등합니다.
Initialize에서의 매칭 알고리즘:
curve_params를global_config이 런칭의 선택된GlobalConfig과 일치하는 항목으로 필터링합니다.- 필터링된 목록이 비어 있으면, 모든 매개변수를 허용합니다(플랫폼이 이
GlobalConfig에 대해 화이트리스트를 작성하지 않았습니다). - 필터링된 목록의 모든 항목이
all_is_invalid()를 가지면(모든 필드가 와일드카드), 모든 매개변수를 허용합니다. - 그렇지 않으면 항목을 반복합니다. 각 항목에 대해 런칭의 매개변수를 모든 비와일드카드 필드와 비교합니다. 모든 비와일드카드 필드가 일치하면 수락하고 반환합니다.
- 일치하는 항목이 없으면
InvalidInput으로 되돌립니다.
MAX_CURVE_PARAMS = 10은 화이트리스트 크기를 제한합니다.
PlatformAllowConfig — 플랫폼 제한
각 플랫폼은 런칭이 사용할 수 있는 GlobalConfig 계정을 제한할지 여부를 결정합니다. UpdatePlatformConfig::RestrictGlobalConfig(0 | 1)로 restrict_global_config를 설정합니다.
[b"platform_allow_config", platform_config, global_config].
플랫폼 관리자는 CreatePlatformAllowConfig 및 ClosePlatformAllowConfig를 통해 허용된 각 쌍당 하나의 계정을 생성하거나 닫습니다. 제한이 1일 때, 초기화는 remaining_accounts에서 예상 PDA를 검색하고 누락된 계정을 NotEnoughRemainingAccounts로 거부합니다. 제한이 0일 때, 허용 계정이 필요하지 않습니다.
이전 프로토콜 관리자 관리 PlatformGlobalAccess 계정 및 그 생성/닫기 명령어는 폐기됩니다. 기존 PlatformConfig 및 GlobalConfig 크기는 변경되지 않지만, 디코더는 이전 글로벌 플래그를 새 플랫폼 플래그로 교체해야 합니다. 이전 액세스 PDA는 새 검사에 의해 소비되지 않습니다.
읽기 경로
PoolState.platform_config는 원래 PlatformConfig를 직접 가리킵니다 — 한 번 가져와서 브랜딩을 캐시하세요.
업데이트 경로
지갑 로테이션(
platform_fee_wallet, platform_nft_wallet, platform_vesting_wallet, platform_cp_creator, transfer_fee_extension_auth, cpswap_config)은 모두 UpdatePlatformConfig를 통해 진행됩니다. 정확한 param 코드는 소스의 update_platform_config 디스패치 테이블을 읽으세요.
일반적인 함정
- 화이트리스트 센티널 잘못 설정.
total_locked_amount = 0을 가진BondingCurveParam은 와일드카드가 아닙니다 — 명시적으로 베스팅을 거부하는 런칭과 일치합니다. 해당 필드의 와일드카드는u64::MAX입니다. 같은 함정이cliff_period및unlock_period에 존재합니다.clear()를 사용하세요(프로그램이 노출함). 센티널을 올바르게 설정합니다. - NFT 분배 반올림. 세 개의 스케일은 정확히
1_000_000을 합산해야 합니다.CreatePlatformConfig에서 1 오차는 되돌립니다. 런타임에서 1 오차는 하나의 추가 LP 단위를 민팅하거나 소각할 것이고, 이것이 엄격한 동등성 검사가 있는 이유입니다. - 플랫폼 베스팅 이중 할당.
platform_vesting_scale > 0이면, 플랫폼은 런칭의 펀드레이징이 끝난 후 한 번CreatePlatformVestingAccount를 호출해야 합니다. 잊으면, 해당 지분은 할당되지 않고 영구적으로 휴면 상태로 남습니다(런칭의total_locked_amount예산은 소비되지만 플랫폼은 절대 청구하지 않습니다). platform_cp_creator모호성.Pubkey::default()로 설정되면, 런칭 생성자가 졸업 후 CPMM 풀의pool_creator로 기록됩니다. 실제 키로 설정되면, 그 키가 대신 기록됩니다. 이는 졸업 후 CPMM 생성자 수수료의 수혜자와 원래CPMM::CollectCreatorFee경로에 서명할 수 있는 사람을 결정합니다. 권한 없는 수집 경로는 여전히 이 기록된 키의 정규 ATA에 지불합니다. 플랫폼 설정 생성 시 어떤 모델을 원하는지 결정하세요.- 허용 계정 없이 제한. 필요한
PlatformAllowConfig를 생성하기 전에restrict_global_config를 활성화하면 해당 설정을 선택하는 새로운 런칭을 차단합니다.
참고 자료
products/launchlab/global-config— 런칭이 만족해야 하는 프로토콜 측 규칙.products/launchlab/vesting—platform_vesting_scale메커니즘.products/launchlab/creator-fees— 생성자 수수료 대 플랫폼 Fee Key 권리.products/launchlab/platforms— 플랫폼 통합자 방법.
raydium-launch/programs/launchpad/src/states/platform_config.rs—PlatformConfig,PlatformParams,MigrateNftInfo,PlatformCurveParam,BondingCurveParam,is_valid_curve_param.raydium-launch/programs/launchpad/src/states/platform_allow_config.rs—PlatformAllowConfig.raydium-launch/programs/launchpad/src/lib.rs— 플랫폼 설정 및 허용 설정 엔드포인트.

