> ## 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，以及 devnet/localnet 使用提示。

<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 测试，通常需要一个充足余额的 devnet 钱包：

```bash theme={null}
solana config set --url https://api.devnet.solana.com
solana airdrop 2                            # 空投 2 SOL 用于测试
```

### SPL Token CLI

用于 SPL Token 和 Token-2022 操作的官方 CLI——创建 mint、铸造代币、转账。

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

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

常见操作：

```bash theme={null}
spl-token create-token                                  # 创建 SPL Token mint
spl-token create-token --program-id TOKEN_2022 ...      # 创建 Token-2022 mint
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/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/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/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 流 — 低延迟机器人所需；并非所有提供商都支持。

## Devnet 和 localnet

### Devnet

Solana 的公共测试集群。Raydium 在 devnet 有部分部署：

* 存在一些用于测试的 CPMM 流动性池。
* AMM v4 有历史 devnet 池。
* CLMM 有几个演示池。
* Farm v6 已部署。

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

SDK 通过 `cluster: "devnet"` 支持 devnet：

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

**注意**：devnet 池流动性稀薄，可能状态陈旧。不要依赖 devnet 进行价格发现；仅用于构建和测试指令流程。

### 使用 Forked 主网状态的 Localnet

为了更真实地测试，可以将主网状态 fork 到本地验证器：

```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 团队在主网部署前广泛使用 forked localnet 进行回归测试。

## 项目模板

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

## 有用的 CLI 工具

### `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/sdk-api/typescript-sdk) — TypeScript SDK 参考。
* [`sdk-api/rust-cpi`](/zh/sdk-api/rust-cpi) — Rust CPI 使用。
* [`sdk-api/python-integration`](/zh/sdk-api/python-integration) — Python 配置。
* [`solana-fundamentals/programs-and-anchor`](/zh/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)。
