이 페이지는 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-demoamm/trade 데모 기준)
liquidity 모듈은 Stable AMM 풀을 기본적으로 지원합니다. Stable 풀은 ApiV3PoolInfoStandardItem에서 version: 5 (또는 pooltype: "StablePool")로 표시되며, AMM v4 (version: 4) 상수곱 풀과 동일한 addLiquidity / removeLiquidity / 스왑 헬퍼를 사용합니다. SDK가 변형을 감지하고 올바른 명령어를 자동으로 생성합니다. 오프체인 stable-curve 수학은 src/raydium/liquidity/stable.ts에 있습니다.설정
Stable 풀 식별
ApiV3PoolInfoStandardItem의 두 가지 동등한 신호:
version: 4, 상수곱)와 Stable AMM (version: 5) 모두 SDK의 동일한 LiquidityModule API를 통해 흐릅니다. 내부적으로 모듈은 다음으로 분기합니다:
- v4 풀의 경우
InstructionType.AmmV4AddLiquidity/AmmV4RemoveLiquidity - v5 (Stable) 풀의 경우
InstructionType.AmmV5AddLiquidity/AmmV5RemoveLiquidity
programId (풀 키와 함께 반환됨)는 SDK에 어느 프로그램으로 CPI할지 알려줍니다. 하드코딩할 필요가 없습니다.
민트 쌍으로 풀 찾기
Stable 풀을 통한 스왑
LiquidityModule.swap 흐름은 v4 풀과 동일한 형태입니다. v5 풀 객체를 전달하기만 하면 됩니다. 실수하기 쉬운 두 가지 세부 사항이 있습니다: computeAmountOut은 풀의 라이브 리저브가 풀 정보에 접합되어야 하고 (API 항목만으로는 충분하지 않음), slippage는 Percent가 아닌 일반 숫자입니다:
programId를 읽고 Stable AMM 프로그램으로 분기합니다. 특별한 programId 인수가 필요하지 않습니다.
유동성 추가 및 제거
addLiquidity와 removeLiquidity는 v4 및 v5 풀에서 동일하게 작동합니다:
pooltype.includes("StablePool")이 참이므로 InstructionType.AmmV5AddLiquidity를 생성합니다. 해당하는 removeLiquidity 흐름은 대칭입니다. lpAmount와 각 쪽에서 수락할 최소 금액을 입력하세요.
오프체인 견적 헬퍼 (stable.ts)
서버 측 견적 또는 백테스팅의 경우 SDK는 기본 stable-curve 수학을 노출합니다:ModelDataInfo는 initLayout()에 의해 한 번 가져와지고 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에 완전히 작성되어 있습니다. 형태는:
권장 사항
- 최종 사용자 스왑의 경우
tradeV2라우팅 흐름을 선호하세요. Stable을 포함한 모든 Raydium 풀 유형을 처리합니다. - 풀 특정 작업 (알려진 Stable 풀에서 LP 추가/제거)의 경우
LiquidityModule을 직접 사용하세요. v5 풀을 자동으로 감지합니다. - 오프체인 견적 / 분석의 경우
initLayout()후getStablePrice/getDyByDxBaseIn/getDxByDyBaseIn을 호출하세요. 모델 데이터가 캐시된 후 견적당 RPC 트래픽이 없습니다. - 원시
SwapBaseIn명령어를 직접 인코딩하지 마세요. 2026-06-22 업그레이드는 죽은 OpenBook 계정을 제거했으므로 새로운 스왑 레이아웃은 9개 계정을 사용합니다 (이전 18개 계정 레이아웃은 하위 호환성을 위해 여전히 파싱됨).Deposit은 이제 12개 계정 (이전 14개 호환),Withdraw12개 (이전 21/22개 호환),WithdrawPnl10개 호환성 경로 없음입니다. SDK의 사전 빌드된 헬퍼는 올바른 레이아웃과 순서를 선택합니다. 직접 작성하는 것은 오류가 발생하기 쉽습니다. 전체 계정 테이블은products/stable/instructions를 참조하세요.
다음 단계
소스:raydium-sdk-V2/src/raydium/liquidity/liquidity.ts— 모듈 진입점; v4 / v5 분기.raydium-sdk-V2/src/raydium/liquidity/stable.ts—StableLayout,getStablePrice,getDxByDyBaseIn,getDyByDxBaseIn.

