solana コマンドラインインターフェースでは、クラスターへの接続設定、ネットワーク状態の読み取り、SOLの送信、durable nonceの管理、プログラムのデプロイ、ステークアカウントおよびvoteアカウントの操作を行えます。
このリファレンスは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> | RPC URL、または mainnet-beta、testnet、devnet、localhost を選択します。 |
--ws <URL> | WebSocketエンドポイントを上書きします。 |
-k, --keypair <KEYPAIR> | keypairファイル、ASK、標準入力(-)、またはサポートされている署名者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
設定には、RPC URL、WebSocket URL、デフォルトの署名者、コミットメントが含まれます。コマンドラインオプションを指定すると、その呼び出しに限り保存済みの値が上書きされます。
一般的なアカウントとトランザクションのワークフロー
# 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>
デプロイで既知のプログラムIDを使用する必要がある場合は、--program-id <KEYPAIR_OR_ADDRESS> を指定します。--final を指定すると、新しいデプロイは変更不可になります。アップグレード権限は復元できないため、使用前にヘルプをよくお読みください。
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
nonce権限を変更するには authorize-nonce-account を、アカウントの完全な状態を確認するには 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 の境界で完了し、1 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>
PDAの seed は 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 | アカウントの lamport、所有者、データ、実行可能状態を表示します。 |
address | 選択した署名者の公開鍵を表示します。 |
address-lookup-table | アドレスルックアップテーブルを作成、拡張、凍結、非アクティブ化、クローズ、確認します。 |
airdrop | クラスターのfaucetからSOLをリクエストします。 |
alpenglow-genesis-info | Alpenglow genesis証明書に関する情報を読み取ります。 |
authorize-nonce-account | durable nonceアカウントの権限を割り当てます。 |
balance | アカウントのSOL残高を表示します。 |
block | slotを指定して確認済みブロックを取得します。 |
block-height | 現在のブロック高を表示します。 |
block-production | slot範囲におけるリーダーのブロック生成状況を表示します。 |
block-time | ブロックの生成時刻を推定します。 |
catchup | validatorがクラスターに追いつくまで待機します。 |
close-vote-account | voteアカウントをクローズし、残りの資金を引き出します。 |
cluster-date | genesis時刻とネットワーク時刻からクラスターの日付を推定します。 |
cluster-version | クラスターのエントリポイントのソフトウェアバージョンを表示します。 |
completion | シェル補完スクリプトを生成します。 |
config | CLIのデフォルト設定を取得または設定します。 |
confirm | トランザクション署名の承認ステータスを確認します。 |
create-address-with-seed | base、seed、プログラムIDからシステムアドレスを導出します。 |
create-nonce-account | durable nonceアカウントを作成して初期化します。 |
create-stake-account | ステークアカウントを作成します。 |
create-stake-account-checked | 引き出し権限を署名者として確認しながら、ステークアカウントを作成します。 |
create-vote-account | validatorのvoteアカウントを作成します。 |
deactivate-stake | 委任されたステークの非アクティブ化を開始します。 |
decode-transaction | シリアライズされたトランザクションをデコードします。 |
delegate-stake | ステークアカウントをvoteアカウントに委任します。 |
epoch | 現在の epoch 番号を表示します。 |
epoch-info | epoch、slot、ブロック高、トランザクション数の情報を表示します。 |
feature | ランタイムのfeatureアカウントを確認・管理します。 |
find-program-derived-address | 型指定された seed からPDAと正規のbumpを導出します。 |
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 | プログラムとバッファのデプロイ、アップグレード、確認、ダンプ、権限設定、クローズを行います。 |
recent-prioritization-fees | 書き込み可能なアカウントに対する最近の優先手数料を表示します。 |
rent | アカウントのデータサイズに対する賃料免除の最小額を計算します。 |
resolve-signer | Ledger URLなどの汎用的な署名者参照を、特定のパスに解決します。 |
sign-offchain-message | UTF-8のオフチェーンメッセージに署名します。 |
slot | 現在の slot を表示します。 |
split-stake | あるステークアカウントから別のステークアカウントへ lamport を分割します。 |
stake-account | ステークアカウントの権限、残高、委任状態を表示します。 |
stake-authorize | ステーク権限または引き出し権限を変更します。 |
stake-authorize-checked | 新しい権限を署名者として確認しながら、ステーク権限を変更します。 |
stake-history | クラスターのステークのアクティブ化・非アクティブ化の履歴を表示します。 |
stake-minimum-delegation | クラスターの最小ステーク委任額を表示します。 |
stake-set-lockup | ステークアカウントのロックアップを設定します。 |
stake-set-lockup-checked | 新しいカストディアンを署名者として確認しながら、ロックアップを設定します。 |
stakes | ステークアカウントを一覧表示します。validatorや権限で絞り込むこともできます。 |
supply | SOLの流通供給量、非流通供給量、総供給量を表示します。 |
transaction-count | クラスターのトランザクション数を表示します。 |
transaction-history | アドレスに関連するトランザクションを新しい順に一覧表示します。 |
transfer | システムアカウント間でSOLを転送します。 |
upgrade-nonce-account | レガシーnonceアカウントを冪等にアップグレードします。 |
validator-info | validator情報を公開または読み取ります。 |
validators | validatorのステーク、コミッション、スキップ率、バージョンの概要を表示します。 |
verify-offchain-signature | 署名済みのオフチェーンメッセージを検証します。 |
vote-account | voteアカウントの権限、コミッション、クレジット、投票を表示します。 |
vote-authorize-voter | voteアカウントのvoter権限を変更します。 |
vote-authorize-voter-checked | 新しい権限を署名者として確認しながら、voter権限を変更します。 |
vote-authorize-withdrawer | voteアカウントの引き出し権限を変更します。 |
vote-authorize-withdrawer-checked | 新しい権限を署名者として確認しながら、引き出し権限を変更します。 |
vote-update-commission | voteアカウントのコミッションを変更します。 |
vote-update-validator | voteアカウントに割り当てられたvalidator IDを変更します。 |
withdraw-from-nonce-account | durable nonceアカウントからSOLの一部または全額を引き出します。 |
withdraw-from-vote-account | voteアカウントから lamport を引き出します。 |
withdraw-stake | ステークアカウントから非アクティブなSOLを引き出します。 |
スクリプトの出力
人が読むための出力を解析する代わりに、対応しているコマンドでは --output json または --output json-compact を使用してください:
solana epoch-info --output jsonsolana account <ACCOUNT_ADDRESS> --output json-compactsolana validators --output json > validators.json
すべてのコマンドが構造化出力に対応しているわけではありません。自動化で利用する前にコマンドのヘルプを確認し、終了ステータスが0以外の場合は失敗として扱ってください。
Is this page helpful?