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 开发工具链。本页列出了各种工具、截至 2026 年 4 月经验证可与 Raydium 协作的最低版本,以及具体的配置注意事项。在阅读后续章节的代码示例之前,请先从这里开始。
核心工具
Solana CLI
Solana 集群交互的标准命令行界面——钱包管理、RPC 调用、程序部署。
安装:
sh -c "$(curl -sSfL https://release.solana.com/v1.18.22/install)"
# 或最新稳定版本:
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
验证:
solana --version # → solana-cli 1.18.22 (或更新版本)
配置主网:
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 钱包:
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 中):
常见操作:
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、构建客户端和验证程序。
安装:
cargo install --git https://github.com/coral-xyz/anchor avm --locked
avm install 0.30.1
avm use 0.30.1
anchor --version
常见操作:
anchor idl fetch <PROGRAM_ID> -o program.idl.json # 获取链上 IDL
anchor idl init -f idl.json <PROGRAM_ID> # 上传 IDL
anchor build # 从源代码构建程序
TypeScript 配置
Raydium 的主要集成路径。
依赖包
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 |
最小化脚本
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。
Rust 配置
用于 CPI 集成和链上程序。
工具链
rustup install 1.76.0 # 或 Anchor 当前要求的任何版本
rustup component add rustfmt clippy
solana-install init 1.18.22 # 包含 BPF 工具链
Raydium CPI 集成的 Cargo.toml
[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。
Python 配置
次要集成路径——常用于机器人开发。
依赖包
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 |
最小化脚本
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。
RPC 端点
公共主网 RPC(api.mainnet-beta.solana.com)有严格的速率限制,在有负载时会被节流。如果需要非平凡的使用,获取私有端点:
| 提供商 | 说明 |
|---|
| Helius | 最流行的选择;免费层配额慷慨。 |
| Triton | 企业级;高端定价,稳定性好。 |
| QuickNode | 可靠;子秒级延迟。 |
| 自建 RPC 节点 | 成本约 ~$500/月 硬件费用;完全控制。 |
配置:
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 已部署。
solana config set --url https://api.devnet.solana.com
solana airdrop 2
SDK 通过 cluster: "devnet" 支持 devnet:
const raydium = await Raydium.load({ connection, owner, cluster: "devnet" });
注意:devnet 池流动性稀薄,可能状态陈旧。不要依赖 devnet 进行价格发现;仅用于构建和测试指令流程。
使用 Forked 主网状态的 Localnet
为了更真实地测试,可以将主网状态 fork 到本地验证器:
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:
{
"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:
anchor init my-raydium-cpi
cd my-raydium-cpi
# 在 Cargo.toml 中添加 raydium-cp-swap,并设置 features = ["cpi"]
anchor build
anchor test
有用的 CLI 工具
solana-keygen
solana-keygen new --outfile ./wallet.json # 生成密钥
solana-keygen pubkey ./wallet.json # 显示公钥
读取任何账户
solana account <ADDRESS> --output json-compact
适合快速查看池状态而无需解码器。
程序日志
solana logs | grep CPMMoo8 # 监听 CPMM 相关交易日志
交易检查
solana confirm <TX_SIGNATURE> -v # 格式化打印日志
或通过 explorer — 粘贴签名并查看”Program Logs”选项卡。
环境卫生
为不同目的分离钱包
- 开发钱包:持有测试网 SOL,用于构建。
- 生产钱包:持有真实 SOL,仅用于部署/多签提交。
- 机器人热钱包:小额余额,权限受限。
密钥不应硬编码。使用环境变量或密钥管理器。
.env 模式
# .env (不提交)
SOLANA_RPC_URL=https://mainnet.helius-rpc.com/?api-key=...
WALLET_PATH=/Users/you/.config/solana/id.json
import { config } from "dotenv";
config();
const connection = new Connection(process.env.SOLANA_RPC_URL!);
版本固定
锁定所有 Solana 生态系统依赖。生态系统发展迅速;@solana/web3.js 的次要版本更新曾导致破坏性变化。必须认真使用 package-lock.json / Cargo.lock。
相关链接
资源: