Die Befehlszeilenschnittstelle solana konfiguriert eine Cluster-Verbindung, liest
den Netzwerkstatus, sendet SOL, verwaltet Durable Nonces, deployt Programme und verwaltet
Stake- und Vote-Konten.
Diese Referenz folgt
Agave v4.2.1. Mit
solana --version lässt sich die installierte Version prüfen; --help zeigt die genauen
Optionen, die in dieser Version verfügbar sind.
Befehle, mit denen etwas erstellt, übertragen, autorisiert, abgehoben oder deployt wird, senden Transaktionen. Vor der Ausführung sollten der konfigurierte Cluster und der Signer geprüft werden. Devnet- und Testnet-Token haben keinen Wert; Mainnet-Befehle verwenden echtes SOL.
Befehlsstruktur
solana [GLOBAL_OPTIONS] <COMMAND> [COMMAND_OPTIONS]
Hilfe auf jeder Ebene abrufen:
solana --helpsolana transfer --helpsolana address-lookup-table extend --help
Globale Optionen
Globale Optionen können vor dem Befehl stehen. Die befehlsspezifische Hilfe wiederholt die Optionen, die für den jeweiligen Befehl gelten.
| Option | Zweck |
|---|---|
-u, --url <URL_OR_MONIKER> | Wählt eine RPC-URL oder mainnet-beta, testnet, devnet oder localhost aus. |
--ws <URL> | Überschreibt den WebSocket-Endpunkt. |
-k, --keypair <KEYPAIR> | Wählt eine Keypair-Datei, ASK, stdin (-) oder eine unterstützte Signer-URL aus. |
-C, --config <FILEPATH> | Verwendet eine andere CLI-Konfigurationsdatei. |
--commitment <LEVEL> | Liest mit dem Commitment-Level processed, confirmed oder finalized. |
--output <FORMAT> | Gibt json oder json-compact zurück, sofern unterstützt. |
--skip-preflight | Sendet ohne RPC-Simulation. Nur verwenden, wenn die Risiken eines möglichen Fehlschlags bekannt sind. |
--use-tpu-client | Sendet Transaktionen über den TPU-Client. |
--no-address-labels | Gibt Adressen ohne lokale Labels aus. |
--skip-seed-phrase-validation | Erlaubt eine Recovery-Phrase außerhalb der englischen BIP39-Liste. |
-v, --verbose | Zeigt zusätzliche Befehlsausgaben an. |
-V, --version | Gibt die installierte CLI-Version aus. |
Die CLI konfigurieren
# 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
Die Konfiguration enthält eine RPC-URL, eine WebSocket-URL, den Standard-Signer und das Commitment. Eine Befehlszeilenoption überschreibt den gespeicherten Wert für den jeweiligen Aufruf.
Gängige Workflows für Konten und Transaktionen
# 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 akzeptiert standardmäßig SOL. Mit ALL als Betrag wird das verfügbare
Guthaben nach Abzug der Fee übertragen. Beispiele für Token siehe
Token-Quickstart.
Programm-Workflows
# 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> angeben, wenn ein Deployment eine bekannte
Programm-ID verwenden muss. --final macht ein neues Deployment unveränderlich; vor der
Verwendung die Hilfe sorgfältig lesen, da die Upgrade-Authority nicht wiederhergestellt werden kann.
Durable-Nonce-Workflows
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
Mit authorize-nonce-account wird die Nonce-Authority geändert, mit nonce-account
der vollständige Kontostatus abgerufen. Transaktionen mit einer Nonce akzeptieren bei
unterstützten Befehlen außerdem --nonce und --nonce-authority.
Stake-Workflows
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
Die Deaktivierung wird an einer Epoch-Grenze abgeschlossen und kann mehr als eine Epoch dauern.
Mit stakes, validators, stake-history und stake-minimum-delegation lassen sich der
Cluster- und Delegierungsstatus prüfen, bevor Änderungen gesendet werden.
Adress-Hilfsprogramme
# 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-Seeds verwenden das Format PREFIX:VALUE. Unterstützte Präfixe sind unter anderem string, pubkey,
hex, u8 sowie vorzeichenbehaftete oder vorzeichenlose Integer-Kodierungen mit fester Breite, wie
u64le.
Off-Chain-Nachrichten und Shell-Vervollständigung
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
Vollständiger Befehlsindex
Der folgende Index enthält jeden Top-Level-Befehl in Agave v4.2.1. Befehle
wie program, config, feature und address-lookup-table enthalten
verschachtelte Befehle; mit <command> --help lassen sie sich auflisten.
| Befehl | Beschreibung |
|---|---|
account | Zeigt Lamports, Owner, Daten und ausführbaren Status eines Kontos an. |
address | Gibt den öffentlichen Schlüssel des ausgewählten Signers aus. |
address-lookup-table | Erstellt, erweitert, friert ein, deaktiviert, schließt und prüft Address Lookup Tables. |
airdrop | Fordert SOL von einem Cluster-Faucet an. |
alpenglow-genesis-info | Liest Informationen zum Alpenglow-Genesis-Zertifikat. |
authorize-nonce-account | Weist einem Durable-Nonce-Konto eine Authority zu. |
balance | Zeigt das SOL-Guthaben eines Kontos an. |
block | Ruft einen bestätigten Block anhand des Slots ab. |
block-height | Zeigt die aktuelle Blockhöhe an. |
block-production | Zeigt die Block-Produktion der Leader für einen Slot-Bereich an. |
block-time | Schätzt den Produktionszeitpunkt eines Blocks. |
catchup | Wartet, bis ein Validator zum Cluster aufgeschlossen hat. |
close-vote-account | Schließt ein Vote-Konto und hebt das verbleibende Guthaben ab. |
cluster-date | Schätzt das Cluster-Datum anhand von Genesis-Zeit und Netzwerkzeit. |
cluster-version | Zeigt die Softwareversion des Cluster-Entrypoints an. |
completion | Erzeugt ein Shell-Vervollständigungsskript. |
config | Liest oder setzt CLI-Standardwerte. |
confirm | Prüft den Bestätigungsstatus einer Transaktionssignatur. |
create-address-with-seed | Leitet eine System-Adresse aus Base, Seed und Programm-ID ab. |
create-nonce-account | Erstellt und initialisiert ein Durable-Nonce-Konto. |
create-stake-account | Erstellt ein Stake-Konto. |
create-stake-account-checked | Erstellt ein Stake-Konto und prüft dabei die Withdraw-Authority als Signer. |
create-vote-account | Erstellt ein Validator-Vote-Konto. |
deactivate-stake | Beginnt mit der Deaktivierung delegierter Stakes. |
decode-transaction | Dekodiert eine serialisierte Transaktion. |
delegate-stake | Delegiert ein Stake-Konto an ein Vote-Konto. |
epoch | Zeigt die aktuelle Epoch-Nummer an. |
epoch-info | Zeigt Informationen zu Epoch, Slot, Blockhöhe und Transaktionsanzahl an. |
feature | Prüft und verwaltet Runtime-Feature-Konten. |
find-program-derived-address | Leitet eine PDA und den kanonischen Bump aus typisierten Seeds ab. |
first-available-block | Zeigt den ersten vollständigen Block an, den der RPC-Node vorhält. |
genesis-hash | Zeigt den Genesis-Hash des Clusters an. |
gossip | Listet über Gossip sichtbare Nodes auf. |
help | Gibt die Hilfe für die Root-Ebene oder einen Befehl aus. |
inflation | Zeigt Inflation-Governor-, Raten- oder Reward-Informationen an. |
largest-accounts | Listet die größten Konten des Clusters auf. |
leader-schedule | Zeigt den Leader-Schedule an. |
live-slots | Streamt den aktuellen Slot-Fortschritt. |
logs | Streamt Transaktionslogs, optional nach Adresse gefiltert. |
merge-stake | Führt kompatible Stake-Konten zusammen. |
new-nonce | Setzt eine Durable Nonce weiter. |
nonce | Gibt den Wert einer Durable Nonce aus. |
nonce-account | Zeigt den vollständigen Status eines Durable-Nonce-Kontos an. |
program | Deployt, aktualisiert, prüft und dumpt Programme und Buffer, legt deren Authority fest oder schließt sie. |
recent-prioritization-fees | Zeigt die aktuelle Priorisierungs-Fee für beschreibbare Konten an. |
rent | Berechnet das Rent-Exempt-Minimum für eine bestimmte Kontodatengröße. |
resolve-signer | Löst eine allgemeine Signer-Referenz wie eine Ledger-URL in ihren spezifischen Pfad auf. |
sign-offchain-message | Signiert eine UTF-8-Off-Chain-Nachricht. |
slot | Zeigt den aktuellen Slot an. |
split-stake | Teilt Lamports von einem Stake-Konto auf ein anderes auf. |
stake-account | Zeigt Authorities, Guthaben und Delegierungsstatus eines Stake-Kontos an. |
stake-authorize | Ändert eine Stake- oder Withdraw-Authority. |
stake-authorize-checked | Ändert eine Stake-Authority und prüft dabei die neue Authority als Signer. |
stake-history | Zeigt den Verlauf der Stake-Aktivierung und -Deaktivierung im Cluster an. |
stake-minimum-delegation | Zeigt die minimale Stake-Delegierung des Clusters an. |
stake-set-lockup | Legt einen Lockup für ein Stake-Konto fest. |
stake-set-lockup-checked | Legt einen Lockup fest und prüft dabei den neuen Custodian als Signer. |
stakes | Listet Stake-Konten auf, optional nach Validator oder Authority gefiltert. |
supply | Zeigt das zirkulierende, das nicht zirkulierende und das gesamte SOL-Angebot an. |
transaction-count | Zeigt die Transaktionsanzahl des Clusters an. |
transaction-history | Listet Transaktionen einer Adresse von der neuesten zur ältesten auf. |
transfer | Überträgt SOL zwischen System-Konten. |
upgrade-nonce-account | Aktualisiert idempotent ein veraltetes Nonce-Konto. |
validator-info | Veröffentlicht oder liest Validator-Informationen. |
validators | Zeigt eine Übersicht der Validatoren mit Stake, Commission, Skip-Rate und Version an. |
verify-offchain-signature | Verifiziert eine signierte Off-Chain-Nachricht. |
vote-account | Zeigt Authorities, Commission, Credits und Votes eines Vote-Kontos an. |
vote-authorize-voter | Ändert die Voter-Authority eines Vote-Kontos. |
vote-authorize-voter-checked | Ändert die Voter-Authority und prüft dabei die neue Authority als Signer. |
vote-authorize-withdrawer | Ändert die Withdraw-Authority eines Vote-Kontos. |
vote-authorize-withdrawer-checked | Ändert die Withdraw-Authority und prüft dabei die neue Authority als Signer. |
vote-update-commission | Ändert die Commission eines Vote-Kontos. |
vote-update-validator | Ändert die einem Vote-Konto zugewiesene Validator-Identität. |
withdraw-from-nonce-account | Hebt einen Teil oder das gesamte SOL von einem Durable-Nonce-Konto ab. |
withdraw-from-vote-account | Hebt Lamports von einem Vote-Konto ab. |
withdraw-stake | Hebt inaktives SOL von einem Stake-Konto ab. |
Skriptausgabe
Anstatt die für Menschen lesbare Ausgabe zu parsen, sollte --output json oder
--output json-compact verwendet werden, sofern unterstützt:
solana epoch-info --output jsonsolana account <ACCOUNT_ADDRESS> --output json-compactsolana validators --output json > validators.json
Nicht jeder Befehl unterstützt strukturierte Ausgabe. Vor dem Einsatz in der Automatisierung die Hilfe des Befehls prüfen und einen Exit-Status ungleich null als Fehler behandeln.
Is this page helpful?