메인 콘텐츠로 건너뛰기

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 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →

유일한 공개 티어

CPMM 및 CLMM과 달리 AMM v4는 AmmConfig 계정이 없습니다. 수수료는 각 풀의 AmmInfo.fees 구조체에 직접 저장되며, 풀 생성 시 고정됩니다. 현재 운영 중인 거의 모든 AMM v4 풀을 다루는 기본값은 다음과 같습니다:
온체인 필드기본값의미
swap_fee_numerator / swap_fee_denominator25 / 10_000AMM 경로 스왑에서의 총 거래 수수료: 입력량의 0.25%.
trade_fee_numerator / trade_fee_denominator25 / 10_000OpenBook 통합이 수수료 포함 지정가 주문 가격 책정을 계산할 때 사용합니다. 기본적으로 swap_fee와 동일한 0.25%입니다.
pnl_numerator / pnl_denominator12 / 100프로토콜의 수수료 지분: 12% — 즉, 거래량의 0.25% × 12% = 0.03%입니다. need_take_pnl_* 카운터로 누적됩니다.
min_separate_numerator / min_separate_denominator5 / 10_000수수료 분배 반올림 로직이 사용하는 내부 정밀도 하한입니다.
pnl_numerator / pnl_denominator는 거래량이 아닌 수수료의 분수임에 주목하세요 — 흔한 오해입니다. LP 지분은 상호 보완적입니다 (수수료의 88% = 거래량의 0.22%). 별도의 “LP 지분” 분자가 없습니다. 소수의 초기 풀들은 다른 분자 값으로 생성되었을 수 있으니, 인용하기 전에 항상 AmmInfo.fees를 읽으세요. 펀드 수수료크리에이터 수수료 항목이 없습니다. 이것들은 CPMM/CLMM의 발명이며 AMM v4의 원래 수수료 모델에는 없던 것입니다.

분배 계산 방식

각 스왑에서 풀은 입력 금액에서 총 거래 수수료를 부과한 후 다음과 같이 배분합니다:
gross_fee   = ceil(amount_in * swap_fee_numerator / swap_fee_denominator)        // amount_in의 0.25%
pnl_portion = gross_fee * pnl_numerator / pnl_denominator                        // gross_fee의 12%
lp_portion  = gross_fee − pnl_portion                                            // gross_fee의 88%
  • lp_portion은 볼트에 남아 다음 k에 기여합니다. LP는 나중에 LP 토큰을 태워서 이를 포착합니다.
  • pnl_portion은 스왑 입력 쪽에 따라 AmmInfo.state_data.need_take_pnl_coin 또는 need_take_pnl_pc를 증가시킵니다.
CPMM과 동일한 불변식 보존 트릭입니다: PnL 금액은 물리적으로 볼트에 있지만 곡선에 사용되는 예비금에서 빼집니다. 따라서 TakePnl은 토큰을 이동하면서 가격을 변동시키지 않습니다.

OpenBook으로부터의 PnL (역사적)

더 이상 누적되지 않습니다. OpenBook 통합이 비활성화되어 있어서, 이 섹션에서 설명하는 두 번째 PnL 흐름은 더 이상 생성되지 않습니다. 기존 풀의 total_pnl_{coin,pc} 카운터는 역사적 값을 가질 수 있지만, 새로운 금액은 추가되지 않습니다. 0.03% 프로토콜 수수료 경로(위)는 영향을 받지 않으며 여전히 활성입니다.
역사적으로 AMM v4는 두 번째 수수료 같은 수익 흐름을 가지고 있었습니다. OpenBook의 지정가 주문이 체결될 때, 풀은 체결의 테이커 쪽에 있을 수 있었고 시장의 메이커/테이커 스프레드를 얻거나 지불할 수 있었습니다. 이러한 PnL 이벤트는 MonitorStep 중에 풀 볼트로 결제되었으며, 프로그램은 이를 정보 카운터로 state_data.total_pnl_{coin,pc}로 입금했습니다.
  • 풀의 게시된 그리드가 곡선 가격 주변에 올바르게 보정되었을 때, OpenBook 체결은 수수료 긍정적이 되는 경향이 있었습니다 — AMM은 OpenBook에서 효과적으로 시장 조성을 하고 있었으며 메이커 리베이트를 얻고 있었습니다.
  • OpenBook이 일시 중지되었거나 이벤트 큐가 가득 찼을 때, 풀은 불리한 가격으로 체결된 오래된 주문에 앉아 있을 수 있어 음의 PnL을 생성했습니다. 이 운영상 결합은 하이브리드 설계에서 벗어나는 동기 중 하나였습니다.
이 OpenBook PnL은 0.03% 프로토콜 수수료와 같지 않았습니다. OpenBook PnL은 풀 예비금을 직접 인상했습니다 (수수료 분배에 비례하여 LP + 프로토콜에 이익). 0.03% 프로토콜 수수료는 관리자 회수를 위해 특별히 태그되었습니다. OpenBook 쪽이 꺼진 상태에서 오늘날 유일한 수수료 누적은 AMM 스왑의 0.25%와 그 분배입니다.

회수

관리자(Raydium 멀티시그)는 WithdrawPnl / TakePnl을 호출하여 need_take_pnl_*을 프로그램의 AmmConfig에 구성된 풀 수준 “PnL 소유자” 계정으로 회수합니다 (다른 프로그램 범위 구성 — 풀당 CPMM 스타일 AmmConfig가 아님). 회수 작업:
  1. 먼저 보류 중인 OpenBook 체결을 정산합니다. (OpenBook이 비활성 상태이므로 이제는 작동하지 않습니다.)
  2. need_take_pnl_coin / need_take_pnl_pc을 풀 볼트에서 PnL 대상으로 전송합니다.
  3. 카운터를 0으로 설정합니다.
이 작업은 곡선을 이동하지 않습니다. LP는 TakePnl 호출 전후에 가격 변화를 보지 않아야 합니다.

LP 수수료 조회

“LP 수수료 수집” 전용 명령어가 없습니다. LP 수수료는 볼트에 누적되고 시간 경과에 따라 k를 인상합니다. LP는 Withdraw를 통해 LP 토큰을 태워서 이를 실현합니다. LP 토큰의 가치는 (coin_reserve_effective, pc_reserve_effective)이 증가함에 따라 단조증가합니다.

시각화: 1,000 USDC 거래량의 흐름

기본 파라미터 풀에 대한 USDC 중심 스왑 $1,000의 경우:
총 거래 수수료 (0.25%):   $2.50
  LP 지분   (0.22%):       $2.20   → 풀에 남음, k 인상
  PnL 지분  (0.03%):       $0.30   → need_take_pnl_pc, TakePnl에서 회수
사용자에게 전송되는 나머지: $997.50   (곡선 기반 가격 영향 제외)
CPMM AmmConfig[0] (0.25% 티어, 크리에이터 수수료 없음): LP $2.10, 프로토콜 $0.30, 펀드 $0.10. CPMM은 AMM v4의 동등 티어에서 LP가 받았을 부분을 깎아서 펀드 항목을 도입합니다.

비교 표

AMM v4CPMM index=0CLMM index=2
거래 수수료0.25%0.25%0.25%
LP0.22%0.21%배출량에 따라 변함
프로토콜0.03%0.03%티어별
펀드N/A0.01%티어별
크리에이터 (선택사항)N/A기본값 0N/A
수수료 위치풀 볼트 + need_take_pnl_*풀 볼트 + protocol_fees_* + fund_fees_*전역 + 틱당 + 포지션당
reference/fee-comparison의 전체 행렬입니다.

통합자 주의사항

  • 견적. SDK 또는 api-v3.raydium.io/pools/info/ids를 통해 AmmInfo를 가져오세요. 원본 볼트 잔액에 대해 직접 견적을 계산하지 마세요 — OpenBook 에스크로우 금액과 PnL 제외 모두 유효 예비금을 getTokenAccountBalance가 보여주는 것에서 벗어나게 합니다.
  • 오래된 수수료 파라미터. 원칙적으로 SetParamsswap_fee_numerator를 변경할 수 있지만, 실제로 Raydium 멀티시그는 운영 중인 어떤 풀의 기본값도 변경하지 않았습니다. 여전히 항상 하드코딩된 값 대신 온체인 상태에서 읽으세요.
  • 보상 없음. AMM v4는 온풀 보상 배출을 지원하지 않습니다. 레거시 이코시스템 팜(Farm v3 / v5 / v6)은 스테이킹 레이어 동등물입니다 — products/farm-staking을 참조하세요.

다음으로 볼 내용

출처: