Skip to main content
이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
버전 정보
  • SDK: @raydium-io/raydium-sdk-v2@0.2.64-alpha
  • 클러스터: Solana mainnet-beta
  • Stable AMM 프로그램 ID: 5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h (reference/program-addresses 참조)
  • 마지막 검증: 2026-09-09 (SDK 0.2.64-alpha 소스 및 raydium-sdk-V2-demo amm/trade 데모 기준)
SDK의 liquidity 모듈은 Stable AMM 풀을 기본적으로 지원합니다. Stable 풀은 ApiV3PoolInfoStandardItem에서 version: 5 (또는 pooltype: "StablePool")로 표시되며, AMM v4 (version: 4) 상수곱 풀과 동일한 addLiquidity / removeLiquidity / 스왑 헬퍼를 사용합니다. SDK가 변형을 감지하고 올바른 명령어를 자동으로 생성합니다. 오프체인 stable-curve 수학은 src/raydium/liquidity/stable.ts에 있습니다.

설정

initLayout()은 Stable 풀에서 선택사항이 아닙니다. liquidity.computeAmountOutpoolInfo.version에 따라 분기됩니다. version 4의 경우 상수곱 공식을 사용하고, 다른 경우 this.stableLayout.stableModelData를 읽고 조회 테이블을 보간합니다. initLayout()이 실행될 때까지 이 캐시는 비어 있으므로, 이 없이 v5 풀을 견적하면 오류 대신 잘못된 결과가 나옵니다. 멱등성이 있고 비용이 저렴하므로 시작 시 한 번 호출하세요.트랜잭션 빌더(swap, addLiquidity, removeLiquidity)는 이를 필요로 하지 않습니다. pooltype.includes("StablePool")에 따라 분기하고 AmmV5* 명령어를 생성하며, 전달하는 금액 범위는 이미 계산되어 있습니다.
liquidity.computeAmountIn은 Stable 풀을 지원하지 않습니다. computeAmountOut과 달리 버전 분기가 없으므로 항상 상수곱 역함수를 적용하여 v5 풀에서 잘못된 maxAmountIn을 반환합니다. Stable 풀에 대한 정확한 출력 스왑의 경우, 아래 오프체인 견적 헬퍼에서 getDxByDyBaseIn으로 직접 역함수를 계산하고 결과를 fixedSide: "out"과 함께 swap에 전달하세요.

Stable 풀 식별

ApiV3PoolInfoStandardItem의 두 가지 동등한 신호:
AMM v4 (version: 4, 상수곱)와 Stable AMM (version: 5) 모두 SDK의 동일한 LiquidityModule API를 통해 흐릅니다. 내부적으로 모듈은 다음으로 분기합니다:
  • v4 풀의 경우 InstructionType.AmmV4AddLiquidity / AmmV4RemoveLiquidity
  • v5 (Stable) 풀의 경우 InstructionType.AmmV5AddLiquidity / AmmV5RemoveLiquidity
풀의 programId (풀 키와 함께 반환됨)는 SDK에 어느 프로그램으로 CPI할지 알려줍니다. 하드코딩할 필요가 없습니다.

민트 쌍으로 풀 찾기

민트 쌍에 v4 (상수곱) 풀과 v5 (stable) 풀이 모두 있으면 응답에 둘 다 포함됩니다. 흐름에 필요한 것을 선택하거나 AMM 라우팅 프로그램에 전달하고 최적의 경로를 선택하도록 하세요.

Stable 풀을 통한 스왑

LiquidityModule.swap 흐름은 v4 풀과 동일한 형태입니다. v5 풀 객체를 전달하기만 하면 됩니다. 실수하기 쉬운 두 가지 세부 사항이 있습니다: computeAmountOut은 풀의 라이브 리저브가 풀 정보에 접합되어야 하고 (API 항목만으로는 충분하지 않음), slippagePercent가 아닌 일반 숫자입니다:
SDK는 풀 키에서 풀의 programId를 읽고 Stable AMM 프로그램으로 분기합니다. 특별한 programId 인수가 필요하지 않습니다.

유동성 추가 및 제거

addLiquidityremoveLiquidity는 v4 및 v5 풀에서 동일하게 작동합니다:
내부적으로 SDK는 pooltype.includes("StablePool")이 참이므로 InstructionType.AmmV5AddLiquidity를 생성합니다. 해당하는 removeLiquidity 흐름은 대칭입니다. lpAmount와 각 쪽에서 수락할 최소 금액을 입력하세요.

오프체인 견적 헬퍼 (stable.ts)

서버 측 견적 또는 백테스팅의 경우 SDK는 기본 stable-curve 수학을 노출합니다:
이들은 순수 함수입니다. RPC 없음, 서명 없음. 온체인 ModelDataInfoinitLayout()에 의해 한 번 가져와지고 raydium.liquidity.stableLayout 내에 캐시되며, .stableModelData로 읽을 수 있습니다. initStableModelLayout()은 멱등성이 있습니다. validDataCount === 0인 동안만 다시 가져오므로 initLayout()을 다시 호출하는 것은 무료입니다. 현재 리저브(x, y)를 전달하면 헬퍼는 조회 테이블을 이진 검색하고 두 개의 인접한 DataElement 행 사이를 선형 보간하여 계산합니다. 기본 알고리즘은 products/stable/math를 참조하세요.

AMM 라우팅을 통한 라우팅 (멀티홉 / 최적 가격)

직접 장소를 선택하지 않으려면 AMM 라우팅 프로그램이 모든 Raydium AMM (v4 / CPMM / CLMM / Stable)을 고려하고 최적의 조합을 통해 라우팅합니다: 라우터는 단일 swap()이 아닌 5개 호출 파이프라인이며, 프로덕션에서 사용 가능하게 하는 캐싱 조언과 함께 products/routing/code-demos에 완전히 작성되어 있습니다. 형태는:
raydium.tradeV2.fetchRoutes는 없으며, tradeV2.swapinputMint / outputMint / slippage를 수락하지 않습니다. getAllRouteComputeAmountOut에서 이미 계산된 swapInfo를 사용합니다. 단일 알려진 풀의 경우 해당 풀 유형의 자체 빌더 (raydium.liquidity.swap for AMM v4 and Stable, raydium.cpmm.swap, raydium.clmm.swap)를 이 페이지의 앞부분에 표시된 대로 사용하세요.
이것은 프로덕션 스왑퍼 및 애그리게이터를 위한 권장 경로입니다. Stable 풀이 존재하는지 또는 오늘 더 나은 장소인지 수동으로 결정할 필요가 없습니다.

권장 사항

  1. 최종 사용자 스왑의 경우 tradeV2 라우팅 흐름을 선호하세요. Stable을 포함한 모든 Raydium 풀 유형을 처리합니다.
  2. 풀 특정 작업 (알려진 Stable 풀에서 LP 추가/제거)의 경우 LiquidityModule을 직접 사용하세요. v5 풀을 자동으로 감지합니다.
  3. 오프체인 견적 / 분석의 경우 initLayout()getStablePrice / getDyByDxBaseIn / getDxByDyBaseIn을 호출하세요. 모델 데이터가 캐시된 후 견적당 RPC 트래픽이 없습니다.
  4. 원시 SwapBaseIn 명령어를 직접 인코딩하지 마세요. 2026-06-22 업그레이드는 죽은 OpenBook 계정을 제거했으므로 새로운 스왑 레이아웃은 9개 계정을 사용합니다 (이전 18개 계정 레이아웃은 하위 호환성을 위해 여전히 파싱됨). Deposit은 이제 12개 계정 (이전 14개 호환), Withdraw 12개 (이전 21/22개 호환), WithdrawPnl 10개 호환성 경로 없음입니다. SDK의 사전 빌드된 헬퍼는 올바른 레이아웃과 순서를 선택합니다. 직접 작성하는 것은 오류가 발생하기 쉽습니다. 전체 계정 테이블은 products/stable/instructions를 참조하세요.

다음 단계

  • 수학 — 조회 테이블 보간이 작동하는 방식.
  • 명령어 — 전체 명령어 참조.
  • AMM 라우팅 — AMM v4, CPMM, CLMM, Stable 전체의 멀티풀 라우팅.
소스: