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

# Toolchain

> Cấu hình tối thiểu cho việc đọc trạng thái on-chain của Raydium, xây dựng giao dịch và phát triển với các chương trình. Hướng dẫn Solana CLI, Anchor, SDK TypeScript và Python, cùng các mẹo cho devnet/localnet.

<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 →](/solana-fundamentals/toolchain)
</Info>

<Info>
  Toàn bộ tài liệu này giả định bạn có một toolchain phát triển Solana hoạt động. Trang này liệt kê các công cụ, các phiên bản tối thiểu được biết là hoạt động với Raydium từ tháng 4 năm 2026, và các vấn đề cấu hình cụ thể. Hãy bắt đầu từ đây trước khi chạy bất kỳ ví dụ mã nào trong các chương sau.
</Info>

## Công cụ cơ bản

### Solana CLI

Giao diện dòng lệnh chính thức để tương tác với các cụm Solana — quản lý ví, gọi RPC, triển khai chương trình.

Cài đặt:

```bash theme={null}
sh -c "$(curl -sSfL https://release.solana.com/v1.18.22/install)"
# Hoặc phiên bản ổn định mới nhất:
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
```

Xác minh:

```bash theme={null}
solana --version   # → solana-cli 1.18.22 (hoặc mới hơn)
```

Cấu hình cho mainnet:

```bash theme={null}
solana config set --url https://api.mainnet-beta.solana.com
solana config set --keypair ~/.config/solana/id.json
solana-keygen new                           # tạo ví nếu bạn chưa có
solana address                              # khóa công khai của bạn
```

Để kiểm tra Raydium, bạn hầu như luôn cần một ví devnet được cấp quỹ:

```bash theme={null}
solana config set --url https://api.devnet.solana.com
solana airdrop 2                            # 2 SOL để kiểm tra
```

### SPL Token CLI

CLI chính thức cho các hoạt động SPL Token / Token-2022 — tạo mint, đúc token, chuyển token.

Cài đặt (có sẵn với Solana CLI):

```bash theme={null}
spl-token --version
```

Các hoạt động thường gặp:

```bash theme={null}
spl-token create-token                                  # tạo mint SPL Token
spl-token create-token --program-id TOKEN_2022 ...      # tạo mint Token-2022
spl-token create-account <MINT>                         # tạo ATA
spl-token mint <MINT> 1000                              # đúc 1000 token vào ATA của bạn
spl-token transfer <MINT> 100 <RECIPIENT>               # chuyển 100
spl-token display <ACCOUNT_OR_MINT>                     # kiểm tra
```

### Anchor CLI

Cần thiết để lấy IDL Raydium, xây dựng client và xác minh chương trình.

Cài đặt:

```bash theme={null}
cargo install --git https://github.com/coral-xyz/anchor avm --locked
avm install 0.30.1
avm use 0.30.1
anchor --version
```

Các hoạt động thường gặp:

```bash theme={null}
anchor idl fetch <PROGRAM_ID> -o program.idl.json       # lấy IDL on-chain
anchor idl init -f idl.json <PROGRAM_ID>                # tải lên IDL
anchor build                                             # xây dựng chương trình từ mã nguồn
```

## Cấu hình TypeScript

Đường dẫn tích hợp chính cho Raydium.

### Gói

```bash theme={null}
npm install \
  @solana/web3.js \
  @solana/spl-token \
  @coral-xyz/anchor \
  @raydium-io/raydium-sdk-v2 \
  bn.js \
  decimal.js
```

Phiên bản được biết là hoạt động cùng nhau từ tháng 4 năm 2026:

| Gói                          | Phiên bản     |
| ---------------------------- | ------------- |
| `@solana/web3.js`            | ≥1.95         |
| `@solana/spl-token`          | ≥0.4          |
| `@coral-xyz/anchor`          | ≥0.30         |
| `@raydium-io/raydium-sdk-v2` | ≥0.2.42-alpha |

### Script tối thiểu

```ts theme={null}
import { Connection, Keypair } from "@solana/web3.js";
import { Raydium } from "@raydium-io/raydium-sdk-v2";

const connection = new Connection("https://api.mainnet-beta.solana.com", "confirmed");
const owner      = Keypair.fromSecretKey(/* your key */);

const raydium = await Raydium.load({
  connection,
  owner,
  cluster:      "mainnet",
  disableFeatureCheck: true,
});

const poolInfo = await raydium.api.fetchPoolById({ id: "..." });
console.log(poolInfo);
```

Xem [`sdk-api/typescript-sdk`](/vi/sdk-api/typescript-sdk) để có tham chiếu SDK đầy đủ.

## Cấu hình Rust

Để tích hợp CPI và các chương trình on-chain.

### Toolchain

```bash theme={null}
rustup install 1.76.0           # hoặc bất kỳ phiên bản Anchor yêu cầu hiện tại
rustup component add rustfmt clippy
solana-install init 1.18.22     # BPF toolchain được bao gồm
```

### Cargo.toml của chương trình cho tích hợp Raydium CPI

```toml theme={null}
[dependencies]
anchor-lang        = "0.30.1"
anchor-spl         = "0.30.1"
raydium-cp-swap    = { version = "0.2", features = ["cpi"] }
raydium-clmm       = { version = "0.1", features = ["cpi"] }
```

Tính năng `"cpi"` nhập khẩu mô-đun `cpi` với các helper CPI (để bạn có thể gọi `raydium_cp_swap::cpi::swap_base_input(...)`). Xem [`sdk-api/rust-cpi`](/vi/sdk-api/rust-cpi).

## Cấu hình Python

Đường dẫn tích hợp thứ cấp — phổ biến cho các nhà phát triển bot.

### Gói

```bash theme={null}
pip install solders solana-py anchorpy
pip install raydium-py    # SDK Raydium của cộng đồng (không chính thức)
```

Phiên bản:

| Gói          | Phiên bản |
| ------------ | --------- |
| `solders`    | ≥0.21     |
| `solana-py`  | ≥0.34     |
| `anchorpy`   | ≥0.21     |
| `raydium-py` | ≥0.2.1    |

### Script tối thiểu

```python theme={null}
from solana.rpc.async_api import AsyncClient
from solders.keypair import Keypair
from anchorpy import Provider, Wallet, Program

async def main():
    conn = AsyncClient("https://api.mainnet-beta.solana.com")
    owner = Keypair()
    wallet = Wallet(owner)
    provider = Provider(conn, wallet)

    # Tải IDL và chương trình
    with open("cpmm.idl.json") as f:
        idl = json.load(f)
    program = Program(idl, CPMM_PROGRAM_ID, provider)

    pool = await program.account["PoolState"].fetch(pool_id)
    print(pool)
```

Xem [`sdk-api/python-integration`](/vi/sdk-api/python-integration).

## Endpoint RPC

RPC mainnet công cộng (`api.mainnet-beta.solana.com`) bị giới hạn tốc độ nặng nề và sẽ bị điều tiết dưới bất kỳ tải nào. Để sử dụng không tầm thường, hãy lấy một endpoint riêng tư:

| Nhà cung cấp           | Ghi chú                                                   |
| ---------------------- | --------------------------------------------------------- |
| Helius                 | Phổ biến nhất; gói miễn phí rộng rãi.                     |
| Triton                 | Doanh nghiệp; định giá cao cấp, ổn định.                  |
| QuickNode              | Tốt; độ trễ dưới miligiây.                                |
| RPC node của riêng bạn | Chi phí \~\$500/tháng cho phần cứng; kiểm soát hoàn toàn. |

Cấu hình:

```ts theme={null}
const connection = new Connection("https://mainnet.helius-rpc.com/?api-key=...");
```

Một số hoạt động RPC cần khả năng mở rộng:

* `getProgramAccounts` — quét không hạn chế rất tốn kém; một số nhà cung cấp hạn chế hoặc tính phí theo lần quét.
* `getPriorityFeeEstimate` — endpoint cụ thể của Helius; những người khác có tương đương.
* `geyser` / WebSocket streaming — cần thiết cho bot độ trễ thấp; không phải tất cả nhà cung cấp đều công khai nó.

## Devnet và localnet

### Devnet

Cụm kiểm tra công khai của Solana. Raydium có một phần triển khai devnet:

* Một số pool CPMM tồn tại để kiểm tra.
* AMM v4 có các pool devnet lịch sử.
* CLMM có một vài pool demo.
* Farm v6 được triển khai.

```bash theme={null}
solana config set --url https://api.devnet.solana.com
solana airdrop 2
```

SDK hỗ trợ devnet thông qua `cluster: "devnet"`:

```ts theme={null}
const raydium = await Raydium.load({ connection, owner, cluster: "devnet" });
```

**Cảnh báo**: các pool devnet có thanh khoản mỏng và có thể có trạng thái cũ. Đừng dựa vào devnet để khám phá giá; chỉ sử dụng nó để xây dựng và kiểm tra luồng hướng dẫn.

### Localnet với trạng thái mainnet được fork

Để kiểm tra thực tế, fork trạng thái mainnet vào trình xác thực cục bộ:

```bash theme={null}
solana-test-validator \
  --url https://api.mainnet-beta.solana.com \
  --clone CPMMoo8L3F4NbTegBCKVNunggL7H1Zpdmwpwh8KMoZ0F \
  --clone CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK \
  --clone <SOME_POOL_ID> \
  --clone <SOME_MINT_ID>
```

Điều này sao chép trạng thái chương trình/tài khoản cụ thể vào localhost, nơi bạn có thể giao dịch tự do. Lý tưởng cho:

* Kiểm tra đơn vị tích hợp CPI của bạn với chương trình Raydium thực.
* Phát lại giao dịch với tham số được sửa đổi để gỡ lỗi.
* Kiểm tra áp lực với khối lượng tổng hợp lớn.

Đội Raydium sử dụng localnet được fork rộng rãi để kiểm tra hồi quy trước khi triển khai mainnet.

## Mẫu dự án

### Starter tích hợp TypeScript

```
my-raydium-app/
├── package.json
├── tsconfig.json
├── src/
│   ├── swap.ts           # ví dụ swap
│   ├── add-liquidity.ts
│   └── read-pool.ts
└── .env                  # RPC URL, đường dẫn ví
```

Tệp `package.json` tối thiểu:

```json theme={null}
{
  "name": "my-raydium-app",
  "type": "module",
  "scripts": { "swap": "tsx src/swap.ts" },
  "dependencies": {
    "@raydium-io/raydium-sdk-v2": "^0.2.42-alpha",
    "@solana/web3.js": "^1.95",
    "@solana/spl-token": "^0.4"
  },
  "devDependencies": {
    "@types/node": "^20",
    "tsx": "^4",
    "typescript": "^5"
  }
}
```

### Starter chương trình Anchor CPI

```
my-raydium-cpi/
├── Anchor.toml
├── Cargo.toml
├── programs/
│   └── my-cpi/
│       ├── Cargo.toml
│       └── src/lib.rs
└── tests/
    └── my-cpi.ts
```

Với Anchor 0.30:

```bash theme={null}
anchor init my-raydium-cpi
cd my-raydium-cpi
# thêm raydium-cp-swap vào Cargo.toml với features = ["cpi"]
anchor build
anchor test
```

## Tiện ích CLI hữu ích

### `solana-keygen`

```bash theme={null}
solana-keygen new --outfile ./wallet.json          # tạo khóa
solana-keygen pubkey ./wallet.json                 # hiển thị khóa công khai
```

### Đọc bất kỳ tài khoản nào

```bash theme={null}
solana account <ADDRESS> --output json-compact
```

Hữu ích để xem trạng thái pool mà không cần bộ giải mã.

### Nhật ký chương trình

```bash theme={null}
solana logs | grep CPMMoo8                         # theo dõi nhật ký tx liên quan đến CPMM
```

### Kiểm tra giao dịch

```bash theme={null}
solana confirm <TX_SIGNATURE> -v                   # in đẹp các nhật ký
```

Hoặc thông qua [explorer](https://explorer.solana.com) — dán chữ ký và xem tab "Program Logs".

## Vệ sinh môi trường

### Ví riêng biệt cho mỗi mục đích

* **Ví phát triển**: giữ testnet SOL, được sử dụng để xây dựng.
* **Ví sản xuất**: giữ SOL thực, chỉ được sử dụng cho lần triển khai / đệ trình multisig.
* **Ví nóng cho bot**: số dư nhỏ, quyền hạn hẹp.

Khóa không bao giờ nên được mã hóa cứng. Sử dụng các biến môi trường hoặc trình quản lý bí mật.

### Mẫu `.env`

```
# .env (không được commit)
SOLANA_RPC_URL=https://mainnet.helius-rpc.com/?api-key=...
WALLET_PATH=/Users/you/.config/solana/id.json
```

```ts theme={null}
import { config } from "dotenv";
config();

const connection = new Connection(process.env.SOLANA_RPC_URL!);
```

### Ghim phiên bản

Khóa tất cả các phụ thuộc của hệ sinh thái Solana. Hệ sinh thái di chuyển nhanh; một bản phát hành phụ của `@solana/web3.js` trước đây đã giới thiệu các thay đổi đột phá. Sử dụng `package-lock.json` / `Cargo.lock` một cách tôn giáo.

## Con trỏ

* [`sdk-api/typescript-sdk`](/vi/sdk-api/typescript-sdk) — Tham chiếu TypeScript SDK.
* [`sdk-api/rust-cpi`](/vi/sdk-api/rust-cpi) — Sử dụng Rust CPI.
* [`sdk-api/python-integration`](/vi/sdk-api/python-integration) — Cấu hình Python.
* [`solana-fundamentals/programs-and-anchor`](/vi/solana-fundamentals/programs-and-anchor) — Nền tảng Anchor.

Nguồn:

* [Tài liệu cài đặt Solana](https://docs.solana.com/cli/install-solana-cli-tools).
* [Anchor book: bắt đầu](https://book.anchor-lang.com/getting_started/installation.html).
* [Raydium SDK v2 repo](https://github.com/raydium-io/raydium-sdk-V2).
