메인 콘텐츠로 건너뛰기
이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
이 항목은 2026-10-30에 예정된 CPMM 프로그램 업그레이드를 다룹니다. 배포 전에 raydium-cp-swap의 feat/initialize-v2 브랜치(40cbd81 헤드)에 대해 검증되었습니다. 새 명령어를 사용하기 전에 배포된 프로그램을 확인하세요.
모든 CPMM 풀에는 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.