메인 콘텐츠로 건너뛰기

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
이 문서는 프로젝트 출시 이후 페이지 업데이트의 기록입니다. 프로토콜 자체의 역사적 타임라인은 introduction/history-and-milestones을 참조하세요. 여기의 모든 항목에는 날짜, 영향을 받은 장의 목록, 트리거 및 온체인 상태와 프로그램 소스를 마지막으로 검증한 날짜가 있습니다.

2026-05-18 — CLMM: 리밋 오더, 단방향 수수료, 동적 수수료

다음 CLMM 릴리스는 3가지 풀 레벨 기능을 추가합니다. 이들은 풀 생성 시 선택적이며 기존 풀 및 포지션과 역호환됩니다.

통합자를 위한 요약

  • 리밋 오더는 이제 CLMM의 1급 프리미티브입니다. LP는 지원하는 풀에서 단일 틱 오더를 열 수 있으며, 스왑이 틱을 넘을 때 FIFO로 채워지고, 오프체인 키퍼(limit_order_admin)가 소유자가 온라인 상태가 아닌 경우에도 채워진 출력을 결제할 수 있습니다. 7개의 새로운 SDK 메서드(openLimitOrder, increaseLimitOrder, decreaseLimitOrder, settleLimitOrder, closeLimitOrder, closeAllLimitOrder, settleAllLimitOrder)와 /limit-order/ 아래의 3개의 새로운 Temp API 엔드포인트(활성 오더, 사용자별 기록, PDA별 이벤트 로그)가 전체 플로우를 지원합니다.
  • **단방향 수수료(CollectFeeOn)**를 사용하면 풀이 입력 측면에서 스왑 수수료를 징수하거나(레거시, 모드 0), 항상 token_0에서(모드 1), 또는 항상 token_1에서(모드 2) 징수할 수 있습니다. 페어의 한쪽이 정규 회계 토큰인 경우 유용합니다.
  • 동적 수수료를 사용하면 풀이 빠른 틱 이동으로 상승하고 시간이 지남에 따라 감소하는 변동성 추적 할증료를 선택할 수 있으며, 계층별 DynamicFeeConfig 및 풀별 DynamicFeeInfo로 보정됩니다. 새로운 /main/clmm-dynamic-config 엔드포인트는 계층 목록을 표시합니다.
  • 새로운 명령어인 CreateCustomizablePool은 풀 생성 시 3가지 설정을 모두 노출합니다. 클래식 CreatePool은 기본 수수료, 리밋 오더 없음 풀에 계속 작동합니다.
  • 인덱서 주요 변경: PoolState의 방향별 거래량 카운터(swap_in_amount_token_{0,1}, swap_out_amount_token_{0,1})와 생애 주기 수수료 카운터(total_fees_token_{0,1}, total_fees_claimed_token_{0,1})는 fee_ondynamic_fee_info를 위한 공간을 확보하기 위해 패딩으로 폐기되었습니다. 이 필드를 직접 읽는 인덱서는 온체인 Observation 링 또는 API로 마이그레이션해야 합니다.

이것이 중요한 이유 (거래자, LP, 통합자의 경우)

  • 거래자는 롱테일 및 이벤트 구동 페어에서 더 좋은 견적을 얻습니다: 동적 수수료를 사용하면 풀이 LP가 범위를 능동적으로 확대할 필요 없이 테이커의 변동성 할증료를 흡수할 수 있으며, 리밋 오더 래더는 범위 전체 자본을 약정하지 않고 특정 가격에서 온체인 유동성을 심화시킵니다.
  • LP는 집중 범위 및 전체 범위 포지션과 함께 세 번째 전략을 얻습니다: 정확한 가격 오더를 주차하고, 가격이 방문할 때 채워지고, 견적 토큰으로 결제합니다. 채워진 부분에 대해 능동적 리밸런싱이 필요하지 않습니다.
  • 통합자는 동적 수수료 풀을 결정적으로 모델링할 수 있습니다 — 알고리즘과 매개변수는 완전히 온체인이고, 보정 계층은 쿼리 가능하며, 스왑 경로는 형태가 변하지 않습니다(각 단계당 수수료만 변함).

프로그램의 변경 사항

새로운 계정

  • DynamicFeeConfig — 계층별 보정 레코드(필터 기간, 감소 기간, 감소 계수, 동적 수수료 제어, 최대 변동성 누적기). CreateDynamicFeeConfig(관리자)로 생성되며, 동적 수수료가 활성화된 경우 CreateCustomizablePool에서 참조됩니다.
  • LimitOrderState — 풀, 틱, 측면, 입력 금액, 미채우기 비율, FIFO 코호트 위상, 장부 기록 스냅샷을 보유하는 오더별 계정(PDA 시드: [owner, limit_order_nonce, order_nonce]). 생애 주기는 암시적입니다(filled_amount vs total_amount, 그리고 계정 존재): Open → Filled → Settled → Closed.
  • LimitOrderNonce — (소유자, nonce_index) 단조 증가 카운터(리밋 오더 PDA 시드를 가져옴). nonce_index: u8을 사용하면 동일한 소유자가 오더를 최대 256개의 독립적인 nonce 스트림으로 분할할 수 있습니다.
계정 → DynamicFeeConfig and DynamicFeeInfo계정 → LimitOrderState를 참조하세요.

PoolState 재구성

필드 그룹이전 레이아웃새 레이아웃
방향별 거래량 카운터swap_in_amount_token_0, swap_out_amount_token_0, swap_in_amount_token_1, swap_out_amount_token_1padding5: [u128; 4]로 폴딩됨
생애 주기 수수료 카운터total_fees_token_0, total_fees_claimed_token_0, total_fees_token_1, total_fees_claimed_token_1padding6: [u64; 4]로 폴딩됨
단방향 수수료fee_on: u8 (0 = FromInput, 1 = Token0Only, 2 = Token1Only)
동적 수수료dynamic_fee_info: DynamicFeeInfo (내장)
전체 계정 크기는 변하지 않습니다. 인덱서: 거래량 추적을 PoolState에서 Observation 링 또는 API로 전환하세요. 폐기된 카운터는 기존 풀에서 0으로 설정되지 않으므로(마지막으로 가져간 모든 것을 보유), 업그레이드 후 재읽으면 오래된 데이터가 반환됩니다.

TickState 추가 (주요 변경 사항 없음)

4개의 새 필드가 TickState의 끝에 추가되어 일부 끝 패딩을 대체합니다:
  • order_phase: u64 — 이 틱에서 리밋 오더 코호트를 구분하는 카운터.
  • orders_amount: u64 — 이 틱에서 모든 개방 오더에 의해 약정된 총 입력(모두 완전히 미채워진 것은 아님).
  • part_filled_orders_remaining: u64 — 현재 스왑으로 소비 중인 코호트에서 여전히 미채워진 입력.
  • unfilled_ratio_x64: u128 — 각 오더의 채우기 공유를 계산하는 데 사용되는 Q64.64 비율.
틱 배열 레이아웃, 크기 조정 및 PDA 시드는 변하지 않습니다.

새로운 명령어

  • CreateDynamicFeeConfig (관리자) — 보정된 DynamicFeeConfig 계층을 생성합니다. 권한: CreateAmmConfig와 동일한 재무부 멀티시그.
  • UpdateDynamicFeeConfig (관리자) — 기존 계층의 매개변수를 업데이트합니다.
  • CreateCustomizablePoolcollect_fee_on, enable_dynamic_fee, dynamic_fee_config를 노출하는 풀 생성 진입점. CreatePool과 공존합니다; 새로운 기능이 필요한 모든 새 풀에 대해 CreateCustomizablePool을 권장합니다.
  • OpenLimitOrder — 단일 틱 리밋 오더를 엽니다. LimitOrderNonce를 범프하고, LimitOrderState를 할당하고, 오더를 틱의 FIFO 코호트에 슬롯합니다.
  • IncreaseLimitOrder / DecreaseLimitOrder — 오더의 미채우기 부분을 조정합니다. InvalidOrderPhase로 완전히 채워진 오더에서 되돌립니다.
  • SettleLimitOrder — 채워진 출력을 소유자의 ATA로 스윕합니다. 호출자는 소유자 또는 풀의 limit_order_admin 키퍼일 수 있습니다.
  • CloseLimitOrder — 완전히 결제된 오더를 닫아 렌트를 회수합니다.

SwapV2 동작 변경

스왑 경로 자체는 형태가 변하지 않지만 3가지가 이제 과정에서 발생합니다:
  1. 동적 수수료(활성화된 경우): 풀의 DynamicFeeInfo는 각 단계에서 업데이트되고(감소 → 누적 → 상한), 결과 할증료가 해당 단계의 기본 수수료 위에 추가됩니다.
  2. 리밋 오더 매칭(단계가 개방 오더가 있는 초기화된 틱을 넘을 때): 스왑 입력의 일부는 FIFO로 소비되어 해당 틱의 코호트를 채우고, unfilled_ratio_x64는 원자적으로 업데이트됩니다.
  3. 단방향 수수료 라우팅(fee_on != 0인 경우): 수수료는 항상 입력 측면에서 가져오는 대신 스왑 방향에 관계없이 token_0 또는 token_1에서 가져옵니다.
이 각각은 풀이 레거시 기본값으로 생성된 경우 no-op입니다. 명령어 → SwapV2에서 업데이트된 상태 변경 매트릭스를 참조하세요.

새로운 오류 코드

ErrorCode 열거형은 이 릴리스에서 다시 번호가 매겨졌습니다: 5개의 레거시 변형(LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount)이 제거되었고 11개의 새로운 변형이 추가되었습니다. Anchor가 6000부터 열거형 순서로 오류를 번호 매기기 때문에 제거된 위치에서 이후의 모든 오류 코드가 이동했습니다 — 숫자 코드를 하드코딩한 클라이언트는 재매핑해야 합니다. 새로운 코드는 다음과 같습니다:
  • 6040 OrderAlreadyFilled
  • 6041 InvalidOrderPhase
  • 6042 InvalidLimitOrderAmount
  • 6043 OrderPhaseSaturated
  • 6044 InvalidDynamicFeeConfigParams
  • 6045 InvalidFeeOn
  • 6046 ZeroSqrtPrice
  • 6047 ZeroLiquidity
  • 6048 MissingBaseFlag
  • 6049 MissingMintAccount
  • 6050 MissingTokenProgram2022
전체 문자열과 모든 CLMM 오류의 이동 후 테이블은 오류 코드에 있습니다.

SDK의 변경 사항 (@raydium-io/raydium-sdk-v2)

  • raydium.clmm의 새로운 메서드: createCustomizablePool, openLimitOrder, increaseLimitOrder, decreaseLimitOrder, settleLimitOrder, settleAllLimitOrder, closeLimitOrder, closeAllLimitOrder.
  • raydium.api의 새로운 REST 헬퍼: getClmmDynamicConfigs, getClmmLimitOrderConfigs.
  • 새로운 타입: CollectFeeOn 열거형, DynamicFeeConfig, DynamicFeeInfo, LimitOrderState, LimitOrderConfig.
  • 내부 재정리: utils/libraries/로 이동했습니다. 패키지 배럴은 변경되지 않습니다; @raydium-io/raydium-sdk-v2/utils/... 아래의 깊은 임포트만 …/libraries/…로 업데이트하면 됩니다.
엔드투엔드 TypeScript 워크스루는 products/clmm/code-demos에 있습니다.

API의 변경 사항

  • api-v3/main/ 아래의 2개 새로운 엔드포인트:
    • GET /main/clmm-dynamic-configDynamicFeeConfig 계층의 목록.
    • GET /main/clmm-limit-order-config — 풀별 리밋 오더 구성.
  • temp-api-v1/limit-order/ 아래의 3개 새로운 엔드포인트:
    • GET /limit-order/order/list?wallet=… — 지갑의 현재 주차된 오더(개방 및 부분 채워짐, 인덱서의 Redis 캐시에서 제공; 동일 페이로드는 totalAmount / filledAmount / pendingSettle을 통해 두 위상을 모두 커버).
    • GET /limit-order/history/order/list-by-user?wallet=… — 지갑의 과거 리밋 오더. 선택적 필터: poolId, mint1, mint2, hideCancel. nextPageId / size(최대 100)를 통해 커서로 페이지 지정됩니다.
    • GET /limit-order/history/event/list-by-pda?pda=… — 하나 이상의 쉼표로 구분된 리밋 오더 PDA의 PDA별 이벤트 로그(open / increase / decrease / settle / close). nextPageId / size(최대 100)를 통해 커서로 페이지 지정됩니다.
모두 5개는 API 참조 탭에 설명되어 있습니다.

권한 표면

limit_order_admin은 오프체인 운영 키퍼이며 멀티시그가 아닙니다. 기존 오더에 대해 SettleLimitOrderCloseLimitOrder만 호출할 수 있으며, 결제의 출력은 항상 소유자의 ATA에 도착합니다. 풀 필드를 변경하거나, 오더를 열거나 수정하거나, 다른 작업을 위해 서명할 수 없습니다. 관리 키 및 멀티시그 → CLMM을 참조하세요.

업데이트된 페이지

  • products/clmm/overview — 새로운 “새로운 소식” 섹션 및 업데이트된 다음 단계 포인터.
  • products/clmm/accounts — 3개 새로운 계정, PoolState 마이그레이션 경고와 함께 재구성, TickState 추가, 새로운 PDA 헬퍼.
  • products/clmm/instructions — 7개 새로운 명령어, SwapV2 동작 추가 사항, 업데이트된 상태 변경 매트릭스.
  • products/clmm/fees — 단방향 수수료 섹션, 매개변수 테이블이 있는 동적 수수료 섹션.
  • products/clmm/math — 리밋 오더 매칭 의사 코드, 동적 수수료 도출.
  • products/clmm/code-demoscreateCustomizablePool 데모, 전체 리밋 오더 워크스루, 새로운 주의사항.
  • algorithms/clmm-math — 다중 틱 스왑 루프에서 리밋 오더 매칭 및 동적 수수료에 교차 참조.
  • sdk-api/typescript-sdk — CLMM 모듈 추가 섹션, utils/libraries/ 마이그레이션 참고.
  • api-reference/openapi/api-v3.yaml — 응답 스키마가 있는 2개 새로운 엔드포인트.
  • api-reference/openapi/temp-api-v1.yaml — 3개 새로운 리밋 오더 엔드포인트(/limit-order/order/list, /limit-order/history/order/list-by-user, /limit-order/history/event/list-by-pda) 및 요청 및 응답 스키마.
  • api-reference/api-v3/overview — 새로운 CLMM 구성 엔드포인트에 대한 참고.
  • api-reference/temp-api-v1/overview — 새로운 활성 오더, 사용자별 기록 및 PDA별 이벤트 엔드포인트에 대한 참고.
  • reference/error-codes — 11개 새로운 CLMM 오류 코드(6040–6050) 및 5개 제거된 레거시 코드; 제거 지점 이후의 숫자 코드가 이동됨.
  • security/admin-and-multisig — 새로운 DynamicFeeConfig 관리자 행 및 limit_order_admin 키퍼 행(제한된 권한 설명 포함).
검증 대상:
  • raydium-clmm 소스.
  • @raydium-io/raydium-sdk-v2 소스.
  • api-v3temp-api-v1 소스.

2026-04-26 — 초기 발행

Raydium 설명서 집합의 첫 번째 공개 릴리스. 검증 대상:
  • Solana mainnet-beta의 라이브 프로그램 배포.
  • @raydium-io/raydium-sdk-v2@0.2.42-alpha.
  • 2026년 4월을 통한 공개 Raydium 문서 및 온체인 참조.
앞으로 모든 프로토콜 업그레이드, 감사 또는 문서 개정은 이 파일에 새로운 항목으로 기록됩니다.

설명서 컨벤션

  • 버전 관리: 이 설명서는 달력 기반 버전 관리(YYYY-MM-DD)를 사용합니다. 각 업데이트는 파일의 상단에 새로운 항목을 생성합니다.
  • 검증 날짜: 모든 항목은 온체인/API 상태 및 프로그램 소스에 대해 내용을 마지막으로 교차 검증한 시간을 기록합니다. 명시되지 않으면 항목의 주요 날짜를 가정하세요.
  • 주요 변경 사항: 영향을 받는 페이지의 상자 형 경고에서 호출되고 아래 항목에 태그가 지정됩니다.
  • 커버리지: 이 변경 로그는 설명서 집합 자체를 다룹니다. 프로토콜 자체의 역사적 타임라인은 introduction/history-and-milestones에 있으며 “Raydium에서 X가 언제 일어났는가”에 대한 진실의 원천입니다.

수정사항

이 설명서에서 오류를 발견하면 설명서 저장소에서 문제 또는 풀 요청을 여세요. 수정사항은 이 변경 로그에 기록됩니다.

포인터