> ## 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.

# 프로그램 주소

> Solana 메인넷 및 데브넷의 정식 Raydium 프로그램 ID와 공유 PDA. 다른 모든 페이지는 주소를 하드코딩하는 대신 여기로 연결합니다.

<Info>
  **이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.**

  [영문판 보기 →](/reference/program-addresses)
</Info>

<Info>
  **신뢰할 수 있는 정보의 원본입니다.** 이 페이지가 프로그램 주소를 명시하는 유일한 장소입니다. 다른 페이지는 모두 여기로 연결됩니다. ID가 변경되면 **여기에만** 업데이트하면 사이트의 모든 참조가 일관성 있게 유지됩니다.

  실제 트랜잭션에 서명하기 전에 항상 라이브 API(`https://api-v3.raydium.io/main/info`)에서 값을 교차 확인하세요.
</Info>

## 메인넷

<Tip>
  원칙: 아래 표와 일치하지 않는 프로그램 ID를 발견하면 **트랜잭션에 서명하지 마세요.** 일치하지 않는 프로그램 ID는 Solana에서 자금을 잃는 가장 쉬운 방법입니다.
</Tip>

### 온체인 프로그램

| 프로그램                              | 프로그램 ID                                        | 소스                                                               |
| --------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------- |
| **AMM v4** (하이브리드 AMM + OpenBook) | `675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8` | [raydium-amm](https://github.com/raydium-io/raydium-amm)         |
| **CPMM** (표준 AMM)                 | `CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C` | [raydium-cp-swap](https://github.com/raydium-io/raydium-cp-swap) |
| **CLMM** (집중 유동성)                 | `CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK` | [raydium-clmm](https://github.com/raydium-io/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`](/ko/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`](https://github.com/raydium-io) 아래의 공개 소스 저장소와 함께 제공됩니다. Stable AMM, LaunchLab, AMM Routing, Burn & Earn / LP Lock, Farm 프로그램은 공개되지 않으므로 라이브 API, 온체인 바이트코드, [`raydium-io/raydium-idl`](https://github.com/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`](/ko/products/cpmm/fees)를 참조하고, 교차 제품 매트릭스는 [`reference/fee-comparison`](/ko/reference/fee-comparison)을 참조하세요.

### PDA 시드

아래 시드는 **정식**이며 SDK와 온체인 CPI에서 모두 사용합니다. 항상 PDA를 계산하고 파생 주소를 하드코딩하지 마세요.

```ts theme={null}
// 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`](/ko/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/` (메인넷과 동일한 경로 구조).

## 온체인에서 주소를 검증하는 방법

1. **Solana Explorer.** [explorer.solana.com](https://explorer.solana.com)에 주소를 붙여 넣고 현재 업그레이드 권한이 있는 `Program`으로 표시되었는지 확인하세요. 메인넷은 Raydium의 업그레이드 권한으로 서명된 배포를 표시해야 합니다.
2. **CLI.** `solana program show <PROGRAM_ID> -u mainnet-beta`를 사용하여 배포 슬롯, BPF 로더, 업그레이드 권한, 데이터 길이를 검사하세요. 이를 실행 설명서에 기록하세요.
3. **IDL 첨부.** `anchor idl fetch <PROGRAM_ID> --provider.cluster mainnet`으로 온체인 IDL을 쿼리하세요. IDL의 `address` 필드가 일치해야 합니다. 동일한 IDL은 [github.com/raydium-io/raydium-idl](https://github.com/raydium-io/raydium-idl)에도 미러링되므로 신뢰하기 전에 온체인 IDL과 저장소를 비교하세요.
4. **설정/어드민 권한.** CPMM/CLMM 설정 계정의 경우 `owner`/`protocol_owner` 필드를 읽고 현재 Raydium 멀티시그와 일치하는지 확인하세요. [`security/admin-and-multisig`](/ko/security/admin-and-multisig)를 참조하세요.

위의 네 가지 확인 중 하나라도 이 페이지와 일치하지 않으면 이 페이지를 잘못된 것으로 취급하고 새 코드를 작성하기 전에 문제를 제기하세요.

## 이 페이지 업데이트

* 프로그램 ID 변경은 안전이 중요합니다. 다음 없이 프로그램 ID 변경을 배포하지 마세요: (a) Raydium 발표로의 링크, (b) [`reference/changelog`](/ko/reference/changelog)의 항목 추가, (c) 문서의 링크 검사 실행하여 이전 값을 여전히 참조하는 페이지가 없는지 확인.
* 더 이상 사용하지 않는 항목은 삭제되지 않고 상태 메모와 함께 표에 남습니다 — 기존 풀은 여전히 이전 프로그램을 통해 해석됩니다.

출처:

* 라이브 API: `https://api-v3.raydium.io/main/info`
* [github.com/raydium-io/raydium-idl](https://github.com/raydium-io/raydium-idl)
* [github.com/raydium-io/raydium-cp-swap](https://github.com/raydium-io/raydium-cp-swap)
