이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
신뢰할 수 있는 정보의 원본입니다. 이 페이지가 프로그램 주소를 명시하는 유일한 장소입니다. 다른 페이지는 모두 여기로 연결됩니다. ID가 변경되면 여기에만 업데이트하면 사이트의 모든 참조가 일관성 있게 유지됩니다.실제 트랜잭션에 서명하기 전에 항상 라이브 API(https://api-v3.raydium.io/main/info)에서 값을 교차 확인하세요.
메인넷
원칙: 아래 표와 일치하지 않는 프로그램 ID를 발견하면 트랜잭션에 서명하지 마세요. 일치하지 않는 프로그램 ID는 Solana에서 자금을 잃는 가장 쉬운 방법입니다.
온체인 프로그램
| 프로그램 | 프로그램 ID | 소스 |
|---|
| AMM v4 (하이브리드 AMM + OpenBook) | 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 | raydium-amm |
| CPMM (표준 AMM) | CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C | raydium-cp-swap |
| CLMM (집중 유동성) | CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK | raydium-clmm |
| Stable AMM (StableSwap 곡선 방식) | 5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h | 공개되지 않음 |
| Farm v3 (레거시 RAY 스테이킹) | EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q | 공개되지 않음 |
| Farm v5 (레거시 생태계 팜) | 9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z | 공개되지 않음 |
| Farm v6 (현재 생태계 팜) | FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG | 공개되지 않음 |
| LaunchLab | LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj | 공개되지 않음 |
| AMM 라우팅 (Raydium의 온체인 라우터) | routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS | 공개되지 않음 |
| Burn & Earn / LP Lock | LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE | 공개되지 않음 |
주의사항:
- AMM v4와 Farm v3/v5는 기존 풀과 포지션을 위해 유지됩니다. Raydium UI와 SDK는 새 풀 생성과 새 생태계 팜을 각각 CPMM, CLMM, Farm v6으로 라우팅합니다.
protocol-overview/versions-and-migration을 참조하세요.
- 위의 Farm v3 ID는 $RAY 단일 자산 스테이킹 프로그램으로도 사용됩니다. LP 스테이킹의 경우 Farm v3과 동일한 동작을 합니다.
- Stable AMM은 AMM 라우팅 프로그램이 AMM v4, CPMM, CLMM과 함께 사용할 수 있는 별도 프로그램입니다. 다른 세 프로그램에 비해 유동성이 적으며 SDK는 이에 대한 일급 API를 노출하지 않습니다. 이를 통해 라우팅하는 통합자는 일반적으로 라우터를 통해 수행합니다.
- 소스 코드 가용성. 위의 온체인 프로그램 중
raydium-amm (AMM v4), raydium-cp-swap (CPMM), raydium-clmm (CLMM)만 github.com/raydium-io 아래의 공개 소스 저장소와 함께 제공됩니다. Stable AMM, LaunchLab, AMM Routing, Burn & Earn / LP Lock, Farm 프로그램은 공개되지 않으므로 라이브 API, 온체인 바이트코드, raydium-io/raydium-idl의 공개 IDL에 대해 검증하세요.
공유 어드민 권한
모든 Anchor 기반 프로그램 (CLMM, CPMM, LaunchLab, Lock)은 어드민 경로 (예: CreateAmmConfig 또는 UpdatePoolStatus)에 대한 명령어 수준 접근 제어를 위해 단일 하드코딩된 어드민 Pubkey를 공유합니다:
| 클러스터 | 어드민 |
|---|
| mainnet-beta | GThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ |
| devnet | DRayqG9RXYi8WHgWEmRQGrUWRWbhjYWYkCRJDd6JBBak |
계정 수준 운영 권한 (예: CPMM/CLMM AmmConfig의 protocol_owner, fund_owner 또는 LaunchLab GlobalConfig의 마이그레이션 지갑)은 온체인에 저장되며 프로그램 어드민과 다를 수 있습니다. 높은 스테이크의 트랜잭션을 보내기 전에 관련 설정 계정에서 직접 이를 읽고 확인하세요.
공유 설정 / PDA 규칙
여러 Raydium 프로그램은 공개 키가 안정적이고 공개 API에 나열된 설정 계정을 노출합니다. 하드코딩보다 API 조회를 선호하세요:
# CPMM 수수료 설정 (배열 반환: {id, index, tradeFeeRate, ...})
GET https://api-v3.raydium.io/main/cpmm-config
# CLMM 수수료 설정
GET https://api-v3.raydium.io/main/clmm-config
기본 CPMM AmmConfig 인덱스 0 (표준 0.25% 풀) 수수료 매개변수 (참고용):
| 필드 | 값 | 의미 |
|---|
trade_fee_rate | 2500 | 거래량의 0.25% |
protocol_fee_rate | 120000 | 거래 수수료의 12% (거래량 아님)를 프로토콜로 라우팅 |
fund_fee_rate | 40000 | 거래 수수료의 4%를 펀드 멀티시그로 라우팅 |
creator_fee_rate | 500 | 풀 생성자에게 거래량의 0.05% (선택사항) |
수수료 분할이 어떻게 구성되는지는 products/cpmm/fees를 참조하고, 교차 제품 매트릭스는 reference/fee-comparison을 참조하세요.
PDA 시드
아래 시드는 정식이며 SDK와 온체인 CPI에서 모두 사용합니다. 항상 PDA를 계산하고 파생 주소를 하드코딩하지 마세요.
// CPMM — 모든 시드는 명시된 경우를 제외하고 정적 ASCII 문자열입니다.
const [ammConfig] = PublicKey.findProgramAddressSync(
[Buffer.from("amm_config"), u16ToBytes(index)],
CPMM_PROGRAM_ID,
);
const [authority] = PublicKey.findProgramAddressSync(
[Buffer.from("vault_and_lp_mint_auth_seed")],
CPMM_PROGRAM_ID,
);
const [poolState] = PublicKey.findProgramAddressSync(
[Buffer.from("pool"), ammConfig.toBuffer(), token0Mint.toBuffer(), token1Mint.toBuffer()],
CPMM_PROGRAM_ID,
);
const [lpMint] = PublicKey.findProgramAddressSync(
[Buffer.from("pool_lp_mint"), poolState.toBuffer()],
CPMM_PROGRAM_ID,
);
const [vault0] = PublicKey.findProgramAddressSync(
[Buffer.from("pool_vault"), poolState.toBuffer(), token0Mint.toBuffer()],
CPMM_PROGRAM_ID,
);
const [vault1] = PublicKey.findProgramAddressSync(
[Buffer.from("pool_vault"), poolState.toBuffer(), token1Mint.toBuffer()],
CPMM_PROGRAM_ID,
);
const [observation] = PublicKey.findProgramAddressSync(
[Buffer.from("observation"), poolState.toBuffer()],
CPMM_PROGRAM_ID,
);
token0Mint / token1Mint은 해싱 전에 공개 키 바이트 순서로 정렬됩니다 (token0 < token1). 이를 잘못하면 존재하지 않는 풀에 대한 유효한 PDA가 생성됩니다.
동등한 CLMM 시드도 동일한 스타일을 따릅니다. products/clmm/accounts를 참조하세요.
데브넷
| 프로그램 | 프로그램 ID |
|---|
| AMM v4 | DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav |
| CPMM | DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb |
| CLMM | DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH |
| Stable AMM | DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m |
| LaunchLab | DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6 |
| AMM 라우팅 | DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd |
| Burn & Earn / LP Lock | DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC |
| Farm v3 / v5 / v6 | 데브넷용으로 안정적으로 공개되지 않음 — 사용 전 라이브 API (https://api-v3-devnet.raydium.io/main/info)에서 확인하세요. |
데브넷 REST API 기본 주소: https://api-v3-devnet.raydium.io/ (메인넷과 동일한 경로 구조).
온체인에서 주소를 검증하는 방법
- Solana Explorer. explorer.solana.com에 주소를 붙여 넣고 현재 업그레이드 권한이 있는
Program으로 표시되었는지 확인하세요. 메인넷은 Raydium의 업그레이드 권한으로 서명된 배포를 표시해야 합니다.
- CLI.
solana program show <PROGRAM_ID> -u mainnet-beta를 사용하여 배포 슬롯, BPF 로더, 업그레이드 권한, 데이터 길이를 검사하세요. 이를 실행 설명서에 기록하세요.
- IDL 첨부.
anchor idl fetch <PROGRAM_ID> --provider.cluster mainnet으로 온체인 IDL을 쿼리하세요. IDL의 address 필드가 일치해야 합니다. 동일한 IDL은 github.com/raydium-io/raydium-idl에도 미러링되므로 신뢰하기 전에 온체인 IDL과 저장소를 비교하세요.
- 설정/어드민 권한. CPMM/CLMM 설정 계정의 경우
owner/protocol_owner 필드를 읽고 현재 Raydium 멀티시그와 일치하는지 확인하세요. security/admin-and-multisig를 참조하세요.
위의 네 가지 확인 중 하나라도 이 페이지와 일치하지 않으면 이 페이지를 잘못된 것으로 취급하고 새 코드를 작성하기 전에 문제를 제기하세요.
이 페이지 업데이트
- 프로그램 ID 변경은 안전이 중요합니다. 다음 없이 프로그램 ID 변경을 배포하지 마세요: (a) Raydium 발표로의 링크, (b)
reference/changelog의 항목 추가, (c) 문서의 링크 검사 실행하여 이전 값을 여전히 참조하는 페이지가 없는지 확인.
- 더 이상 사용하지 않는 항목은 삭제되지 않고 상태 메모와 함께 표에 남습니다 — 기존 풀은 여전히 이전 프로그램을 통해 해석됩니다.
출처: