Интерфейс командной строки solana настраивает подключение к кластеру, считывает
состояние сети, отправляет SOL, управляет durable nonce, развертывает программы и работает
с аккаунтами стейкинга и голосования.
Этот справочник соответствует
Agave v4.2.1. Выполните
solana --version, чтобы проверить установленную версию, и используйте --help, чтобы увидеть точный
набор опций, доступных в этой версии.
Команды, которые создают, переводят, авторизуют, выводят средства или развертывают, отправляют транзакции. Перед их запуском убедитесь, что выбраны нужный кластер и подписант. Токены Devnet и Testnet не имеют ценности; команды в Mainnet используют настоящие SOL.
Структура команд
solana [GLOBAL_OPTIONS] <COMMAND> [COMMAND_OPTIONS]
Получить справку на любом уровне:
solana --helpsolana transfer --helpsolana address-lookup-table extend --help
Глобальные опции
Глобальные опции можно указывать перед командой. Справка по конкретной команде повторяет опции, применимые к этой команде.
| Опция | Назначение |
|---|---|
-u, --url <URL_OR_MONIKER> | Выбрать URL RPC или 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 devnetsolana config set --keypair ./devnet-keypair.json# Override defaults for one command.solana --url mainnet-beta --keypair usb://ledger address
Конфигурация содержит URL RPC, URL WebSocket, подписанта по умолчанию и уровень подтверждения. Опция командной строки переопределяет сохраненное значение для данного вызова.
Типовые сценарии работы с аккаунтами и транзакциями
# Print the default signer's address and balance.solana addresssolana 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-recipientsolana confirm <TRANSACTION_SIGNATURE># Inspect recent activity and stream logs mentioning an address.solana transaction-history <ADDRESS> --limit 20solana 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 делает новое развертывание неизменяемым; внимательно прочитайте справку
по этой опции, прежде чем ее использовать, так как полномочия на обновление (upgrade authority) восстановить нельзя.
Сценарии работы с durable nonce
solana-keygen new --outfile nonce-account.jsonsolana create-nonce-account nonce-account.json 0.1solana nonce nonce-account.jsonsolana new-nonce nonce-account.jsonsolana 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.jsonsolana create-stake-account stake-account.json 1solana delegate-stake stake-account.json <VOTE_ACCOUNT_ADDRESS>solana stake-account stake-account.jsonsolana deactivate-stake stake-account.jsonsolana 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 createsolana address-lookup-table extend \<LOOKUP_TABLE_ADDRESS> \--addresses <ADDRESS_1>,<ADDRESS_2>
Значения seed для PDA задаются в формате PREFIX:VALUE. Поддерживаемые префиксы: string, pubkey,
hex, u8, а также кодировки знаковых или беззнаковых целых чисел фиксированной ширины, например
u64le.
Офчейн-сообщения и автодополнение в оболочке
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 из faucet кластера. |
alpenglow-genesis-info | Получить информацию о genesis-сертификате Alpenglow. |
authorize-nonce-account | Назначить authority для аккаунта durable 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 | Создать и инициализировать аккаунт durable 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 | Показать информацию об управляющем инфляцией, ставке инфляции или вознаграждениях. |
largest-accounts | Вывести список крупнейших аккаунтов кластера. |
leader-schedule | Показать расписание лидеров. |
live-slots | Транслировать ход текущих slot. |
logs | Транслировать логи транзакций с возможной фильтрацией по адресу. |
merge-stake | Объединить совместимые аккаунты стейкинга. |
new-nonce | Обновить durable nonce. |
nonce | Вывести значение durable nonce. |
nonce-account | Показать полное состояние аккаунта durable nonce. |
program | Развертывать, обновлять, просматривать и выгружать программы и буферы, задавать для них authority или закрывать их. |
recent-prioritization-fees | Показать недавние приоритетные комиссии для аккаунтов, доступных для записи. |
rent | Рассчитать минимальный баланс для освобождения от rent при заданном размере данных аккаунта. |
resolve-signer | Преобразовать общую ссылку на подписанта, например URL Ledger, в конкретный путь. |
sign-offchain-message | Подписать офчейн-сообщение в кодировке 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 | Проверить подписанное офчейн-сообщение. |
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 | Изменить идентификатор validator, привязанный к аккаунту голосования. |
withdraw-from-nonce-account | Вывести часть или все SOL из аккаунта durable nonce. |
withdraw-from-vote-account | Вывести lamports из аккаунта голосования. |
withdraw-stake | Вывести неактивные SOL из аккаунта стейкинга. |
Вывод для скриптов
Используйте --output json или --output json-compact, где это поддерживается, вместо
разбора вывода, рассчитанного на человека:
solana epoch-info --output jsonsolana account <ACCOUNT_ADDRESS> --output json-compactsolana validators --output json > validators.json
Не каждая команда поддерживает структурированный вывод. Проверьте справку по команде, прежде чем полагаться на него в автоматизации, и считайте ненулевой код завершения признаком сбоя.
Is this page helpful?