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

# 開發工具鏈

> 用於讀取 Raydium 鏈上狀態、構建交易和開發程式的最小工作環境。包括 Solana CLI、Anchor、TypeScript 與 Python SDK，以及開發網/本地網提示。

<Info>
  **本頁內容由 AI 自動翻譯，所有內容以英文版本為準。**

  [查看英文版 →](/solana-fundamentals/toolchain)
</Info>

本文件中的所有內容都假設你已經安裝好 Solana 開發工具鏈。本頁列出了必需工具、截至 2026 年 4 月已知可與 Raydium 正常配合工作的最低版本，以及設定過程中的常見問題。在執行後續章節的程式碼範例前，請先閱讀此頁。

## 核心工具

### Solana CLI

用於與 Solana 區塊鏈互動的標準命令列介面，支援錢包管理、RPC 呼叫和程式部署。

安裝：

```bash theme={null}
sh -c "$(curl -sSfL https://release.solana.com/v1.18.22/install)"
# 或安裝最新穩定版：
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
```

驗證：

```bash theme={null}
solana --version   # → solana-cli 1.18.22 (或更新版本)
```

設定主網：

```bash theme={null}
solana config set --url https://api.mainnet-beta.solana.com
solana config set --keypair ~/.config/solana/id.json
solana-keygen new                           # 若你還沒有錢包，請建立一個
solana address                              # 顯示你的公鑰
```

測試 Raydium 時，你幾乎總是需要一個有資金的開發網錢包：

```bash theme={null}
solana config set --url https://api.devnet.solana.com
solana airdrop 2                            # 用於測試的 2 SOL
```

### SPL Token CLI

用於 SPL Token / Token-2022 操作的官方命令列工具，包括建立鑄幣、鑄造代幣和轉帳。

安裝（已包含在 Solana CLI 中）：

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

常見操作：

```bash theme={null}
spl-token create-token                                  # 建立 SPL Token 鑄幣
spl-token create-token --program-id TOKEN_2022 ...      # 建立 Token-2022 鑄幣
spl-token create-account <MINT>                         # 建立 ATA
spl-token mint <MINT> 1000                              # 將 1000 代幣鑄造至你的 ATA
spl-token transfer <MINT> 100 <RECIPIENT>               # 轉帳 100 個代幣
spl-token display <ACCOUNT_OR_MINT>                     # 檢視詳情
```

### Anchor CLI

用於獲取 Raydium IDL、構建用戶端和驗證程式。

安裝：

```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
```

常見操作：

```bash theme={null}
anchor idl fetch <PROGRAM_ID> -o program.idl.json       # 獲取鏈上 IDL
anchor idl init -f idl.json <PROGRAM_ID>                # 上傳 IDL
anchor build                                             # 從源程式碼構建程式
```

## TypeScript 設定

Raydium 的主要整合方式。

### 套件

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

截至 2026 年 4 月已知能夠相互配合的版本：

| 套件                           | 版本            |
| ---------------------------- | ------------- |
| `@solana/web3.js`            | ≥1.95         |
| `@solana/spl-token`          | ≥0.4          |
| `@coral-xyz/anchor`          | ≥0.30         |
| `@raydium-io/raydium-sdk-v2` | ≥0.2.42-alpha |

### 最小指令碼

```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);
```

完整的 SDK 參考請見 [`sdk-api/typescript-sdk`](/zh-Hant/sdk-api/typescript-sdk)。

## Rust 設定

用於 CPI 整合和鏈上程式開發。

### 工具鏈

```bash theme={null}
rustup install 1.76.0           # 或 Anchor 當前要求的版本
rustup component add rustfmt clippy
solana-install init 1.18.22     # 包含 BPF 工具鏈
```

### Raydium CPI 整合的程式 Cargo.toml

```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"] }
```

`"cpi"` 功能會匯入帶有 CPI 幫助函數的 `cpi` 模組（這樣你可以使用 `raydium_cp_swap::cpi::swap_base_input(...)`）。詳見 [`sdk-api/rust-cpi`](/zh-Hant/sdk-api/rust-cpi)。

## Python 設定

次要整合方式，常用於機器人開發者。

### 套件

```bash theme={null}
pip install solders solana-py anchorpy
pip install raydium-py    # 社群 Raydium SDK (非官方)
```

版本：

| 套件           | 版本     |
| ------------ | ------ |
| `solders`    | ≥0.21  |
| `solana-py`  | ≥0.34  |
| `anchorpy`   | ≥0.21  |
| `raydium-py` | ≥0.2.1 |

### 最小指令碼

```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)

    # 載入 IDL 和程式
    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)
```

詳見 [`sdk-api/python-integration`](/zh-Hant/sdk-api/python-integration)。

## RPC 端點

公開的主網 RPC (`api.mainnet-beta.solana.com`) 受到嚴格的速率限制，在較重的負載下會被節流。若要正式使用，請獲取私有端點：

| 供應商       | 說明                  |
| --------- | ------------------- |
| Helius    | 最受歡迎；免費額度慷慨。        |
| Triton    | 企業級；高級定價，穩定可靠。      |
| QuickNode | 穩定可靠；亞秒級延遲。         |
| 自有 RPC 節點 | 硬體成本約 \$500/月；完全可控。 |

設定：

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

某些 RPC 操作需要特殊功能：

* `getProgramAccounts` — 無限制的掃描成本較高；某些提供商會限制或按掃描次數收費。
* `getPriorityFeeEstimate` — Helius 特定端點；其他提供商有等效功能。
* `geyser` / WebSocket 串流 — 低延遲機器人需要；並非所有提供商都支援。

## 開發網和本地網

### 開發網

Solana 的公開測試區塊鏈。Raydium 在開發網上有部分部署：

* 存在一些 CPMM 池用於測試。
* AMM v4 有歷史開發網池。
* CLMM 有幾個演示池。
* Farm v6 已部署。

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

SDK 透過 `cluster: "devnet"` 支援開發網：

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

**注意**：開發網池的流動性較低，可能存在過時的狀態。不要依賴開發網進行價格發現；僅將其用於構建和測試指令流。

### 帶有分叉主網狀態的本地網

為了進行更逼真的測試，可以將主網狀態分叉到本地驗證器：

```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>
```

這樣會將特定程式/帳戶狀態複製到本地主機，你可以在那裡自由交易。適用於：

* 針對真實的 Raydium 程式測試你的 CPI 整合。
* 使用修改後的參數重放交易以進行除錯。
* 使用大量合成交易量進行壓力測試。

Raydium 團隊在主網部署前廣泛使用分叉本地網進行迴歸測試。

## 專案範本

### TypeScript 整合入門

```
my-raydium-app/
├── package.json
├── tsconfig.json
├── src/
│   ├── swap.ts           # 交換範例
│   ├── add-liquidity.ts
│   └── read-pool.ts
└── .env                  # RPC URL、錢包路徑
```

最小的 `package.json`：

```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"
  }
}
```

### Anchor CPI 程式入門

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

使用 Anchor 0.30：

```bash theme={null}
anchor init my-raydium-cpi
cd my-raydium-cpi
# 在 Cargo.toml 中新增 raydium-cp-swap，並設定 features = ["cpi"]
anchor build
anchor test
```

## 實用的命令列工具

### `solana-keygen`

```bash theme={null}
solana-keygen new --outfile ./wallet.json          # 產生密鑰
solana-keygen pubkey ./wallet.json                 # 顯示公鑰
```

### 讀取任何帳戶

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

用於快速查看池狀態，無需解碼器。

### 程式日誌

```bash theme={null}
solana logs | grep CPMMoo8                         # 跟蹤 CPMM 相關交易日誌
```

### 交易檢查

```bash theme={null}
solana confirm <TX_SIGNATURE> -v                   # 格式化輸出日誌
```

或透過 [explorer](https://explorer.solana.com) — 貼上簽名並查看「Program Logs」標籤。

## 環境衛生

### 為不同用途分開錢包

* **開發錢包**：持有測試網 SOL，用於構建。
* **生產錢包**：持有真實 SOL，僅用於部署/多簽提交。
* **機器人熱錢包**：餘額小，權限受限。

密鑰不應該硬編碼。使用環境變數或密鑰管理器。

### `.env` 模式

```
# .env (不提交)
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!);
```

### 版本釘選

鎖定所有 Solana 生態系統依賴項。生態系統發展迅速；`@solana/web3.js` 的次要版本更新曾引入破壞性變化。應認真使用 `package-lock.json` / `Cargo.lock`。

## 相關連結

* [`sdk-api/typescript-sdk`](/zh-Hant/sdk-api/typescript-sdk) — TypeScript SDK 參考。
* [`sdk-api/rust-cpi`](/zh-Hant/sdk-api/rust-cpi) — Rust CPI 用法。
* [`sdk-api/python-integration`](/zh-Hant/sdk-api/python-integration) — Python 設定。
* [`solana-fundamentals/programs-and-anchor`](/zh-Hant/solana-fundamentals/programs-and-anchor) — Anchor 背景知識。

來源：

* [Solana 安裝文件](https://docs.solana.com/cli/install-solana-cli-tools)。
* [Anchor 書籍：入門](https://book.anchor-lang.com/getting_started/installation.html)。
* [Raydium SDK v2 儲存庫](https://github.com/raydium-io/raydium-sdk-V2)。
