이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
이 항목은 2026-10-30에 예정된 CPMM 프로그램 업그레이드를 다룹니다. 배포 전에
raydium-cp-swap의 feat/initialize-v2 브랜치(40cbd81 헤드)에 대해 검증되었습니다. 새 명령어를 사용하기 전에 배포된 프로그램을 확인하세요.enable_creator_fee 플래그와 creator_fee_on 쪽 설정이 있으며, 둘 다 생성 시 고정됩니다. 지금까지 생성자는 관리자가 발급한 Permission PDA가 필요한 InitializeWithPermission을 통해서만 이를 설정할 수 있었습니다. 공개 Initialize는 항상 수수료를 비활성화 상태로 저장했습니다. 실제로는 LaunchLab 졸업과 기타 게이트된 흐름만 크리에이터 수수료를 청구하는 풀을 생성할 수 있었습니다.
이번 릴리스는 **InitializeV2**를 추가합니다. 이는 추가 인자 하나 creator_fee_on: Option<CreatorFeeOn>이 붙은 Initialize이며, 누구나 호출할 수 있습니다. 풀 수학, 스왑, 유동성, 수수료 수집 및 크리에이터 수수료의 프로토콜 몫은 변경되지 않습니다.
통합자를 위한 요약
- 새 명령어:
InitializeV2. 권한 없음. 인자는init_amount_0,init_amount_1,open_time및creator_fee_on: Option<CreatorFeeOn>입니다. 판별자[67, 153, 175, 39, 218, 16, 38, 32]. Some(side)는 해당 쪽에서 크리에이터 수수료를 활성화하고,None은 비활성화 상태로 둡니다.None은Initialize가 저장하는 것과 정확히 같은 값을 저장합니다.- 계정은
Initialize와 같고rent만 빠집니다. 처음 19개 계정은 동일하며 순서도 같습니다. 계정 목록을 참고하세요. - 생성자가 서명자입니다.
pool_state.pool_creator는 서명한creator입니다.InitializeWithPermission과 달리 수혜자를 다른 주소로 설정할 수 없습니다. - 생성자는 켜기/끄기와 쪽을 선택하며, 요율은 선택하지 않습니다. 풀은 해당 수수료 계층의
AmmConfig.creator_fee_rate를 청구합니다. 이 요율의 기본값은0이므로, 그러한 계층에서 활성화된 풀은 아무것도 누적하지 않습니다. - 기존의 어떤 것도 변경되지 않았습니다.
Initialize와InitializeWithPermission은 판별자, 계정, 인자 및 동작을 유지합니다. 계정 레이아웃이나 오류 코드는 변경되지 않았습니다. - 새 명령어를 사용하려면 IDL을 갱신하세요. 이 명령어를 호출하지 않는 클라이언트는 변경할 필요가 없습니다.
프로그램에서 변경된 사항
새 명령어: InitializeV2
InitializeV2는 Initialize와 동일한 생성 코드를 실행합니다. 이 명령어는:
pool_state로 정규 풀 PDA 또는 서명된 임의 키쌍을 모두 허용합니다;remaining_accounts를 통해 동일한 Token-2022 허용 목록 및SupportMintAssociated검사를 적용합니다;amm_config.disable_create_pool이 설정된 경우 생성을 거부합니다;open_time이 미래가 아니면block_timestamp + 1로 범프합니다;- 100 LP 기본 단위를 잠그고 나머지를 생성자에게 민팅합니다;
amm_config.create_pool_fee를 부과합니다.
PoolState에 기록하는 내용입니다:
잘못된 태그 또는 변형 바이트는 Anchor의 인자 역직렬화에서 실패합니다. 새로운 오류 코드는 관여하지 않습니다.
세 가지 생성 경로 비교
내부 리팩터링
세 핸들러는 이제 하나의initialize_pool 루틴을 공유합니다. 이 리팩터링은 Initialize 또는 InitializeWithPermission의 계정, 인자, 검사 또는 저장 값을 변경하지 않습니다. 새 테스트는 동일한 구성에서 일반 Initialize가 여전히 크리에이터 수수료를 비활성화 상태로 저장하는지도 확인합니다.
생성자가 알아야 할 사항
- 먼저 수수료 계층을 확인하세요. 크리에이터 수수료 요율은 풀이 아니라
AmmConfig에 속합니다. 청구하려는creator_fee_rate를 가진 계층을 선택하세요. 요율은products/cpmm/fees에 나와 있습니다. - 선택은 영구적입니다. 생성 후
enable_creator_fee또는creator_fee_on을 변경하는 명령어는 없습니다. 변경하려면 새 풀을 생성해야 합니다. - 트레이더는 거래 수수료에 더해 이를 지불합니다. 크리에이터 수수료는 스왑에 추가되는 별도의 요율입니다. LP, 프로토콜 또는 펀드 몫을 줄이지는 않지만, 동일한 계층에서 수수료가 꺼진 풀보다 거래 비용이 더 높아집니다.
- 수집 방식은 변경되지 않았습니다.
CollectCreatorFee또는CollectCreatorFeePermissionless를 사용하세요. 2026-09-19 릴리스의 프로토콜 몫이 적용되며, 생성 시 이를 선택 해제할 수 없습니다.
마이그레이션 참고 사항
- 풀 생성자. 크리에이터 수수료를 켜려는 경우에만
Initialize에서InitializeV2로 전환하세요.Some(side)를 전달하고rent계정을 제거하세요.Initialize는 계속 작동합니다. - SDK 사용자.
@raydium-io/raydium-sdk-v2@0.2.64-alpha의raydium.cpmm.createPool은Initialize를 빌드합니다.InitializeV2빌더가 포함된 릴리스가 나올 때까지는 갱신된 IDL에서 인코딩하세요. - 인덱서 및 라우터. LaunchLab이 아닌 일반 지갑이 생성한
enable_creator_fee = true풀이 더 많아질 것으로 예상하세요. 생성 경로나 계층만으로 판단하지 말고, 항상 각 풀 자체의enable_creator_fee와creator_fee_on으로 견적을 내세요. 명령어로 풀 생성을 추적한다면 새 명령어를 디코딩하세요.PoolState계정으로 추적하는 경우 변경이 필요 없습니다. - UI. 동일한 계층의 두 풀이 이제 서로 다를 수 있으므로, 풀이 크리에이터 수수료를 청구하는지와 그 요율을 표시하세요.
- LaunchLab 및 기타 권한 있는 흐름. 변경 없음. 지불자와 기록되는 생성자가 달라야 하는 경우
InitializeWithPermission이 여전히 사용할 경로입니다.
변경되지 않은 사항
- 모든 계정 레이아웃,
PoolState와AmmConfig포함. Initialize및InitializeWithPermission: 판별자, 계정, 인자 및 저장 값.Permission,CreatePermissionPda및ClosePermissionPda.- 스왑, 입금 및 출금 수학, 크리에이터 수수료 부과, 그리고 크리에이터 수수료의 프로토콜 몫.
- 오류 코드.
6000–6015는 변경되지 않았으며, 추가된 것이 없습니다. - 프로그램 ID.
업데이트된 페이지
products/cpmm/instructions: 업그레이드 배너; 요약 및 상태 변경 매트릭스 행; 인자, 인코딩 및 계정 목록을 포함한 새InitializeV2섹션;Initialize사후 조건이 이제InitializeV2를 가리킵니다.products/cpmm/fees: “크리에이터 수수료” 섹션이 세 가지 생성 경로를 모두 나열하고, 수수료를 활성화해도 요율이 설정되지 않음을 명시합니다.products/cpmm/accounts:poolState및 풀 ID 참고;creator_fee_on/enable_creator_fee필드 참고;Permission참고; 계정 수명 주기 행.products/cpmm/overview: “새로운 사항” 콜아웃 및 “예측 가능한 수수료” 항목.products/cpmm/code-demos:createPool이Initialize를 빌드한다는 점과InitializeV2를 사용하는 방법에 대한 참고.protocol-overview/shared-infrastructure: 크리에이터 수수료가 더 이상 LaunchLab 졸업 풀로 제한되지 않습니다.reference/token-2022-support: CPMM 풀 생성 경로.
raydium-cp-swap 브랜치 feat/initialize-v2 (40cbd81): programs/cp-swap/src/lib.rs, instructions/initialize_v2.rs, instructions/initialize.rs, instructions/initialize_with_permission.rs, instructions/mod.rs, states/pool.rs, 그리고 tests/initialize_v2.test.ts.
