Вся документация предполагает наличие рабочего набора инструментов для разработки на Solana. На этой странице перечислены инструменты, минимальные версии, совместимые с Raydium по состоянию на апрель 2026 года, а также описаны особенности настройки. Начните отсюда перед запуском примеров кода из последующих глав.
Основные инструменты
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 (или новее)
Конфигурация для mainnet:
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
Официальный CLI для операций SPL Token / Token-2022 — создание минтов, эмиссия токенов, переводы.
Установка (включён в Solana CLI):
Основные операции:
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
Требуется для получения IDL Raydium, создания клиентов и проверки программ.
Установка:
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:
| Пакет | Версия |
|---|
@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 набор инструментов включён
Cargo.toml программы для интеграции Raydium CPI
[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 # SDK Raydium сообщества (не официальный)
Версии:
| Пакет | Версия |
|---|
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 эндпоинты
Публичный mainnet RPC (api.mainnet-beta.solana.com) имеет жёсткие ограничения по частоте запросов и выдаёт throttle под нагрузкой. Для серьёзного использования получите приватный эндпоинт:
| Поставщик | Примечания |
|---|
| 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 поддерживает devnet через cluster: "devnet":
const raydium = await Raydium.load({ connection, owner, cluster: "devnet" });
Важно: пулы на devnet имеют тонкую ликвидность и могут иметь устаревшее состояние. Не полагайтесь на devnet для определения цен; используйте его только для построения и тестирования потоков инструкций.
Localnet с состоянием форка mainnet
Для реалистичного тестирования форкируйте состояние mainnet в локальный валидатор:
solana-test-validator \
--url https://api.mainnet-beta.solana.com \
--clone CPMMoo8L3F4NbTegBCKVNunggL7H1Zpdmwpwh8KMoZ0F \
--clone CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK \
--clone <SOME_POOL_ID> \
--clone <SOME_MINT_ID>
Это клонирует определённое состояние программы/аккаунта на localhost, где вы можете свободно проводить транзакции. Идеально для:
- Юнит-тестирования интеграции CPI с реальной программой Raydium.
- Воспроизведения транзакции с изменённым параметром для отладки.
- Стресс-тестирования с большими синтетическими объёмами.
Команда Raydium активно использует форкированный localnet для регрессионного тестирования перед развёртыванием на mainnet.
Шаблоны проектов
Стартовый шаблон интеграции TypeScript
my-raydium-app/
├── package.json
├── tsconfig.json
├── src/
│ ├── swap.ts # пример swap
│ ├── 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
# добавить raydium-cp-swap в Cargo.toml с 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 testnet, используется для построения.
- Production кошелёк: содержит реальные 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 ранее приводило к breaking changes. Используйте package-lock.json / Cargo.lock религиозно.
Ссылки
Источники: