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

# Địa chỉ chương trình

> ID chương trình Raydium chính thức và PDA chia sẻ trên Solana mainnet-beta và devnet. Mọi trang khác liên kết đến đây thay vì hardcode địa chỉ.

<Info>
  **Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.**

  [Xem bản tiếng Anh →](/reference/program-addresses)
</Info>

<Info>
  **Nguồn sự thật.** Trang này là nơi duy nhất trong tài liệu liệt kê các địa chỉ chương trình một cách chính xác. Các trang khác liên kết đến đây. Nếu một ID thay đổi, hãy cập nhật **chỉ ở đây** và mọi tham chiếu trên trang sẽ luôn nhất quán.

  Luôn kiểm tra chéo các giá trị so với API trực tiếp (`https://api-v3.raydium.io/main/info`) trước khi ký các giao dịch thực.
</Info>

## Mainnet-beta

<Tip>
  Quy tắc cơ bản: nếu một ID chương trình trong thực tế không khớp với bảng dưới đây, **đừng ký giao dịch.** ID chương trình không khớp là cách dễ nhất để mất tiền trên Solana.
</Tip>

### Các chương trình on-chain

| Chương trình                                  | ID chương trình                                | Nguồn                                                            |
| --------------------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------- |
| **AMM v4** (Hybrid AMM + OpenBook)            | `675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8` | [raydium-amm](https://github.com/raydium-io/raydium-amm)         |
| **CPMM** (Standard AMM)                       | `CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C` | [raydium-cp-swap](https://github.com/raydium-io/raydium-cp-swap) |
| **CLMM** (Concentrated Liquidity)             | `CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK` | [raydium-clmm](https://github.com/raydium-io/raydium-clmm)       |
| **Stable AMM** (StableSwap-style curve)       | `5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h` | mã nguồn không công khai                                         |
| **Farm v3** (staking RAY cũ)                  | `EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q` | mã nguồn không công khai                                         |
| **Farm v5** (farm hệ sinh thái cũ)            | `9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z` | mã nguồn không công khai                                         |
| **Farm v6** (farm hệ sinh thái hiện tại)      | `FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG` | mã nguồn không công khai                                         |
| **LaunchLab**                                 | `LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj`  | mã nguồn không công khai                                         |
| **AMM Routing** (router on-chain của Raydium) | `routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS`  | mã nguồn không công khai                                         |
| **Burn & Earn / LP Lock**                     | `LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE`  | mã nguồn không công khai                                         |

Ghi chú:

* AMM v4 và Farm v3/v5 **được giữ lại cho các pool và vị thế hiện có**. SDK và giao diện Raydium định tuyến tạo pool mới và farm hệ sinh thái mới đến CPMM, CLMM và Farm v6 tương ứng — xem [`protocol-overview/versions-and-migration`](/vi/protocol-overview/versions-and-migration).
* ID Farm v3 ở trên cũng đóng vai trò là chương trình staking \$RAY đơn tài sản. Hoạt động giống hệt Farm v3 cho LP staking.
* **Stable AMM** là một chương trình riêng biệt mà chương trình AMM Routing có thể chỉ định cùng với AMM v4, CPMM và CLMM. Tính thanh khoản mỏng manh hơn so với ba chương trình khác và SDK không cung cấp API hạng nhất cho nó; những người tích hợp định tuyến qua nó thường làm như vậy thông qua router.
* **Tính sẵn có mã nguồn.** Trong các chương trình on-chain ở trên, chỉ `raydium-amm` (AMM v4), `raydium-cp-swap` (CPMM) và `raydium-clmm` (CLMM) được phát hành với các kho lưu trữ mã nguồn công khai dưới [`github.com/raydium-io`](https://github.com/raydium-io). Stable AMM, LaunchLab, AMM Routing, Burn & Earn / LP Lock và các chương trình Farm không công khai — xác minh chúng dựa trên API trực tiếp, bytecode on-chain và IDL được xuất bản trong [`raydium-io/raydium-idl`](https://github.com/raydium-io/raydium-idl).

### Quyền admin được chia sẻ

Tất cả các chương trình dựa trên Anchor (CLMM, CPMM, LaunchLab, Lock) chia sẻ một `Pubkey` admin được hardcode duy nhất cho kiểm soát truy cập cấp lệnh vào các đường dẫn admin (như `CreateAmmConfig` hoặc `UpdatePoolStatus`):

| Cluster      | Admin                                          |
| ------------ | ---------------------------------------------- |
| mainnet-beta | `GThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ` |
| devnet       | `DRayqG9RXYi8WHgWEmRQGrUWRWbhjYWYkCRJDd6JBBak` |

Các quyền hoạt động cấp tài khoản (ví dụ: `protocol_owner`, `fund_owner` trên `AmmConfig` CPMM/CLMM, hoặc các ví di chuyển trên `GlobalConfig` LaunchLab) được lưu trữ on-chain và có thể khác với admin chương trình. Đọc chúng trực tiếp từ tài khoản cấu hình liên quan trước khi gửi các giao dịch quan trọng.

### Quy ước cấu hình / PDA được chia sẻ

Một số chương trình Raydium công khai **các tài khoản cấu hình** có các khóa công khai ổn định và được liệt kê trên API công khai. Ưu tiên tra cứu API hơn hardcoding:

```
# CPMM fee configs (returns an array of {id, index, tradeFeeRate, ...})
GET https://api-v3.raydium.io/main/cpmm-config

# CLMM fee configs
GET https://api-v3.raydium.io/main/clmm-config
```

Tham số phí `AmmConfig` CPMM mặc định chỉ mục `0` (pool 0,25% tiêu chuẩn), để tham khảo:

| Trường              | Giá trị  | Ý nghĩa                                                                    |
| ------------------- | -------- | -------------------------------------------------------------------------- |
| `trade_fee_rate`    | `2500`   | 0,25% khối lượng giao dịch                                                 |
| `protocol_fee_rate` | `120000` | 12% **của phí giao dịch** (không phải khối lượng) định tuyến đến giao thức |
| `fund_fee_rate`     | `40000`  | 4% **của phí giao dịch** định tuyến đến quỹ multisig                       |
| `creator_fee_rate`  | `500`    | 0,05% khối lượng giao dịch cho người tạo pool (tùy chọn)                   |

Xem [`products/cpmm/fees`](/vi/products/cpmm/fees) để hiểu cách các phần được chia, và [`reference/fee-comparison`](/vi/reference/fee-comparison) để biết ma trận so sánh liên sản phẩm.

### Hạt seed PDA

Các hạt seed dưới đây là **chính thức** và được sử dụng bởi cả SDK và CPI on-chain. Luôn tính toán PDA; không hardcode các địa chỉ được dẫn xuất.

```ts theme={null}
// CPMM — all seeds are static ASCII strings unless noted.
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` **được sắp xếp theo thứ tự byte khóa công khai** (token0 \< token1) trước khi băm. Làm sai điều này sẽ tạo ra một PDA hợp lệ cho một pool không tồn tại.

Các hạt seed CLMM tương đương tuân theo cùng một kiểu; xem [`products/clmm/accounts`](/vi/products/clmm/accounts).

## Devnet

| Chương trình              | ID chương trình                                                                                                                                     |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **AMM v4**                | `DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav`                                                                                                      |
| **CPMM**                  | `DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb`                                                                                                      |
| **CLMM**                  | `DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH`                                                                                                      |
| **Stable AMM**            | `DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m`                                                                                                      |
| **LaunchLab**             | `DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6`                                                                                                      |
| **AMM Routing**           | `DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd`                                                                                                      |
| **Burn & Earn / LP Lock** | `DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC`                                                                                                      |
| **Farm v3 / v5 / v6**     | Không được xuất bản một cách đáng tin cậy cho devnet — xác nhận qua API trực tiếp (`https://api-v3-devnet.raydium.io/main/info`) trước khi sử dụng. |

Cơ sở REST API Devnet: `https://api-v3-devnet.raydium.io/` (cùng hình dạng tuyến đường như mainnet).

## Cách xác minh một địa chỉ on-chain

1. **Solana Explorer.** Dán địa chỉ vào [explorer.solana.com](https://explorer.solana.com) và xác nhận nó được đánh dấu là `Program` với quyền nâng cấp hiện tại. Mainnet-beta sẽ hiển thị các triển khai được ký bởi quyền nâng cấp của Raydium.
2. **CLI.** Sử dụng `solana program show <PROGRAM_ID> -u mainnet-beta` để kiểm tra deploy slot, BPF loader, upgrade authority và độ dài dữ liệu. Ghi lại những điều này trong runbook của bạn.
3. **Đính kèm IDL.** Truy vấn IDL on-chain bằng `anchor idl fetch <PROGRAM_ID> --provider.cluster mainnet`. Trường `address` của IDL sẽ phải khớp. Các IDL tương tự được sao chép tại [github.com/raydium-io/raydium-idl](https://github.com/raydium-io/raydium-idl) — so sánh IDL on-chain với kho trước khi tin tưởng nó.
4. **Các quyền cấu hình/admin.** Đối với các tài khoản cấu hình CPMM/CLMM, đọc trường `owner`/`protocol_owner` và xác nhận nó khớp với multisig Raydium hiện tại được xuất bản trong [`security/admin-and-multisig`](/vi/security/admin-and-multisig).

Nếu bất kỳ bốn bước kiểm tra nào ở trên không đồng ý với trang này, hãy coi trang này là sai và mở một issue trước khi viết mã mới cho các địa chỉ.

## Cập nhật trang này

* Các thay đổi về ID chương trình là an toàn quan trọng. **Không** gửi một thay đổi ID chương trình mà không (a) liên kết đến thông báo Raydium, (b) thêm mục nhập trong [`reference/changelog`](/vi/reference/changelog) và (c) chạy kiểm tra liên kết trên tài liệu để xác nhận không có trang nào vẫn tham chiếu giá trị cũ.
* Các tính năng không dùng nữa vẫn lại trong bảng với một ghi chú trạng thái thay vì bị xóa — các pool hiện có vẫn được giải quyết qua chương trình cũ.

Nguồn:

* API trực tiếp: `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)
