Довідник Solana CLI

Інтерфейс командного рядка solana налаштовує підключення до кластера, зчитує стан мережі, надсилає SOL, керує довговічними nonce, розгортає програми та працює з акаунтами стейкінгу й голосування.

Цей довідник відповідає Agave v4.2.1. Виконайте solana --version, щоб перевірити встановлений реліз, і скористайтеся --help, щоб побачити точні опції, доступні в цій версії.

Команди, які створюють, переказують, авторизують, виводять кошти або розгортають, надсилають транзакції. Перш ніж запускати їх, перевірте налаштований кластер і підписанта. Токени Devnet і Testnet не мають вартості; команди Mainnet використовують справжні SOL.

Структура команд

solana [GLOBAL_OPTIONS] <COMMAND> [COMMAND_OPTIONS]

Отримайте довідку на будь-якому рівні:

solana --help
solana transfer --help
solana address-lookup-table extend --help

Глобальні опції

Глобальні опції можна розміщувати перед командою. Довідка конкретної команди повторює опції, які до неї застосовуються.

ОпціяПризначення
-u, --url <URL_OR_MONIKER>Вибрати RPC URL або mainnet-beta, testnet, devnet чи localhost.
--ws <URL>Перевизначити кінцеву точку WebSocket.
-k, --keypair <KEYPAIR>Вибрати файл keypair, ASK, stdin (-) або підтримуваний URL підписанта.
-C, --config <FILEPATH>Використати інший файл конфігурації CLI.
--commitment <LEVEL>Читати з рівнем підтвердження processed, confirmed або finalized.
--output <FORMAT>Повернути json або json-compact, де це підтримується.
--skip-preflightНадіслати без симуляції на RPC. Використовуйте лише тоді, коли ви розумієте компроміс щодо можливих збоїв.
--use-tpu-clientНадсилати транзакції через клієнт TPU.
--no-address-labelsВиводити адреси без локальних міток.
--skip-seed-phrase-validationДозволити фразу відновлення, якої немає в англійському списку BIP39.
-v, --verboseПоказувати додаткові дані команди.
-V, --versionВивести встановлену версію CLI.

Налаштування CLI

# Inspect the effective configuration.
solana config get
# Use Devnet and a specific signer by default.
solana config set --url devnet
solana config set --keypair ./devnet-keypair.json
# Override defaults for one command.
solana --url mainnet-beta --keypair usb://ledger address

Конфігурація містить RPC URL, URL WebSocket, підписанта за замовчуванням і рівень підтвердження. Опція командного рядка перевизначає збережене значення для цього виклику.

Типові робочі процеси з акаунтами й транзакціями

# Print the default signer's address and balance.
solana address
solana balance
# Read an account as JSON.
solana account <ACCOUNT_ADDRESS> --output json
# Request Devnet SOL.
solana airdrop 1 --url devnet
# Send SOL and then confirm the returned signature.
solana transfer <RECIPIENT_ADDRESS> 0.1 --allow-unfunded-recipient
solana confirm <TRANSACTION_SIGNATURE>
# Inspect recent activity and stream logs mentioning an address.
solana transaction-history <ADDRESS> --limit 20
solana logs <ADDRESS>

transfer за замовчуванням працює з SOL. Вкажіть ALL як суму, щоб перемістити доступний баланс після сплати комісій. Приклади з токенами дивіться в короткому посібнику з токенів.

Робочі процеси з програмами

# Deploy or upgrade an SBF program.
solana program deploy ./target/deploy/my_program.so
# Inspect the deployed program and list programs controlled by the signer.
solana program show <PROGRAM_ID>
solana program show --programs
# Close a program buffer and recover its lamports.
solana program close <BUFFER_ADDRESS>

Передайте --program-id <KEYPAIR_OR_ADDRESS>, коли розгортання має використовувати відомий ідентифікатор програми. --final робить нове розгортання незмінним; уважно прочитайте його довідку перед використанням, оскільки повноваження на оновлення відновити неможливо.

Робочі процеси з довговічними nonce

solana-keygen new --outfile nonce-account.json
solana create-nonce-account nonce-account.json 0.1
solana nonce nonce-account.json
solana new-nonce nonce-account.json
solana withdraw-from-nonce-account nonce-account.json <RECIPIENT_ADDRESS> ALL

Використовуйте authorize-nonce-account, щоб змінити authority для nonce, і nonce-account, щоб переглянути повний стан акаунта. Транзакції з nonce також приймають --nonce і --nonce-authority у підтримуваних командах.

Робочі процеси зі стейкінгом

solana-keygen new --outfile stake-account.json
solana create-stake-account stake-account.json 1
solana delegate-stake stake-account.json <VOTE_ACCOUNT_ADDRESS>
solana stake-account stake-account.json
solana deactivate-stake stake-account.json
solana withdraw-stake stake-account.json <RECIPIENT_ADDRESS> ALL

Деактивація завершується на межі epoch і може тривати понад один epoch. Використовуйте stakes, validators, stake-history і stake-minimum-delegation, щоб перевірити стан кластера та делегування перед надсиланням змін.

Утиліти для адрес

# Derive a PDA from typed seeds.
solana find-program-derived-address \
<PROGRAM_ID> \
string:profile \
pubkey:<OWNER_ADDRESS>
# Create and extend an address lookup table.
solana address-lookup-table create
solana address-lookup-table extend \
<LOOKUP_TABLE_ADDRESS> \
--addresses <ADDRESS_1>,<ADDRESS_2>

PDA seeds використовують формат PREFIX:VALUE. Підтримувані префікси: string, pubkey, hex, u8 та кодування цілих чисел фіксованої ширини зі знаком або без знака, як-от u64le.

Off-chain повідомлення та автодоповнення в оболонці

solana sign-offchain-message "terms accepted"
solana verify-offchain-signature \
"terms accepted" \
<SIGNATURE> \
--signer <SIGNER_ADDRESS>
# Print a completion script for the current shell.
solana completion --shell zsh

Повний індекс команд

Наведений індекс охоплює кожну команду верхнього рівня в Agave v4.2.1. Команди на кшталт program, config, feature і address-lookup-table містять вкладені команди; виконайте <command> --help, щоб побачити їх список.

КомандаОпис
accountПоказати lamports, власника, дані та стан виконуваності акаунта.
addressВивести публічний ключ вибраного підписанта.
address-lookup-tableСтворення, розширення, заморожування, деактивація, закриття та перегляд таблиць пошуку адрес.
airdropЗапросити SOL із фаусета кластера.
alpenglow-genesis-infoПрочитати інформацію про genesis-сертифікат Alpenglow.
authorize-nonce-accountПризначити authority для довговічного nonce-акаунта.
balanceПоказати баланс SOL акаунта.
blockОтримати підтверджений блок за slot.
block-heightПоказати поточну висоту блоку.
block-productionПоказати вироблення блоків лідером для діапазону slot.
block-timeОцінити час створення блоку.
catchupДочекатися, поки validator наздожене кластер.
close-vote-accountЗакрити акаунт голосування й вивести його залишкові кошти.
cluster-dateОцінити дату кластера за часом genesis і мережевим часом.
cluster-versionПоказати версію програмного забезпечення точки входу кластера.
completionЗгенерувати скрипт автодоповнення для оболонки.
configОтримати або встановити значення CLI за замовчуванням.
confirmПеревірити статус підтвердження підпису транзакції.
create-address-with-seedВивести системну адресу з base, seed та ідентифікатора програми.
create-nonce-accountСтворити й ініціалізувати довговічний nonce-акаунт.
create-stake-accountСтворити акаунт стейкінгу.
create-stake-account-checkedСтворити акаунт стейкінгу з перевіркою withdraw authority як підписанта.
create-vote-accountСтворити акаунт голосування для validator.
deactivate-stakeРозпочати деактивацію делегованого стейку.
decode-transactionДекодувати серіалізовану транзакцію.
delegate-stakeДелегувати акаунт стейкінгу акаунту голосування.
epochПоказати номер поточного epoch.
epoch-infoПоказати інформацію про epoch, slot, висоту блоку та кількість транзакцій.
featureПереглядати й керувати акаунтами функцій середовища виконання.
find-program-derived-addressВивести PDA та канонічний bump із типізованих seed.
first-available-blockПоказати перший повний блок, збережений вузлом RPC.
genesis-hashПоказати genesis-хеш кластера.
gossipПоказати список вузлів, видимих через gossip.
helpВивести довідку кореневого рівня або команди.
inflationПоказати інформацію про inflation governor, ставку або винагороди.
largest-accountsПоказати найбільші акаунти кластера.
leader-scheduleПоказати розклад лідерів.
live-slotsТранслювати перебіг поточних slot.
logsТранслювати журнали транзакцій, за потреби з фільтром за адресою.
merge-stakeОб’єднати сумісні акаунти стейкінгу.
new-nonceПросунути довговічний nonce.
nonceВивести значення довговічного nonce.
nonce-accountПоказати повний стан довговічного nonce-акаунта.
programРозгортати, оновлювати, переглядати, вивантажувати, встановлювати authority для програм і буферів або закривати їх.
recent-prioritization-feesПоказати нещодавні комісії за пріоритизацію для акаунтів із правом запису.
rentОбчислити мінімум для звільнення від оренди (rent-exempt) для заданого розміру даних акаунта.
resolve-signerПеретворити загальне посилання на підписанта, наприклад URL Ledger, на його конкретний шлях.
sign-offchain-messageПідписати off-chain повідомлення в UTF-8.
slotПоказати поточний slot.
split-stakeПеренести lamports з одного акаунта стейкінгу в інший.
stake-accountПоказати authority, баланс і стан делегування акаунта стейкінгу.
stake-authorizeЗмінити stake authority або withdraw authority.
stake-authorize-checkedЗмінити stake authority з перевіркою нового authority як підписанта.
stake-historyПоказати історію активації та деактивації стейку в кластері.
stake-minimum-delegationПоказати мінімальне делегування стейку в кластері.
stake-set-lockupВстановити lockup для акаунта стейкінгу.
stake-set-lockup-checkedВстановити lockup з перевіркою нового custodian як підписанта.
stakesПоказати акаунти стейкінгу, за потреби з фільтром за validator або authority.
supplyПоказати циркулюючу, нециркулюючу та загальну пропозицію SOL.
transaction-countПоказати кількість транзакцій у кластері.
transaction-historyПоказати транзакції, пов’язані з адресою, від найновіших до найстаріших.
transferПереказати SOL між системними акаунтами.
upgrade-nonce-accountІдемпотентно оновити застарілий nonce-акаунт.
validator-infoОпублікувати або прочитати інформацію про validator.
validatorsПоказати зведення про стейк validator, комісію, частку пропусків і версію.
verify-offchain-signatureПеревірити підписане off-chain повідомлення.
vote-accountПоказати authority, комісію, кредити та голоси акаунта голосування.
vote-authorize-voterЗмінити voter authority акаунта голосування.
vote-authorize-voter-checkedЗмінити voter authority з перевіркою нового authority як підписанта.
vote-authorize-withdrawerЗмінити withdraw authority акаунта голосування.
vote-authorize-withdrawer-checkedЗмінити withdraw authority з перевіркою нового authority як підписанта.
vote-update-commissionЗмінити комісію акаунта голосування.
vote-update-validatorЗмінити identity validator, призначену акаунту голосування.
withdraw-from-nonce-accountВивести частину або всі SOL із довговічного nonce-акаунта.
withdraw-from-vote-accountВивести lamports з акаунта голосування.
withdraw-stakeВивести неактивні SOL з акаунта стейкінгу.

Вивід для скриптів

Використовуйте --output json або --output json-compact, де це підтримується, замість розбору виводу, призначеного для людини:

solana epoch-info --output json
solana account <ACCOUNT_ADDRESS> --output json-compact
solana validators --output json > validators.json

Не кожна команда підтримує структурований вивід. Перевіряйте довідку команди, перш ніж покладатися на нього в автоматизації, і вважайте ненульовий код завершення помилкою.

Is this page helpful?