Dokumentacja Solana CLI

Interfejs wiersza poleceń solana konfiguruje połączenie z klastrem, odczytuje stan sieci, wysyła SOL, zarządza durable nonce, wdraża programy oraz obsługuje konta stake i konta głosowania.

Ta dokumentacja odpowiada wersji Agave v4.2.1. Uruchom solana --version, aby sprawdzić zainstalowaną wersję, i użyj --help, aby zobaczyć dokładne opcje dostępne w tej wersji.

Polecenia, które tworzą, przesyłają, autoryzują, wypłacają lub wdrażają, wysyłają transakcje. Przed ich uruchomieniem sprawdź skonfigurowany klaster i podpisującego. Tokeny Devnet i Testnet nie mają wartości; polecenia w Mainnet używają prawdziwych SOL.

Struktura poleceń

solana [GLOBAL_OPTIONS] <COMMAND> [COMMAND_OPTIONS]

Uzyskaj pomoc na dowolnym poziomie:

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

Opcje globalne

Opcje globalne można umieścić przed poleceniem. Pomoc dla konkretnego polecenia powtarza opcje, które go dotyczą.

OpcjaPrzeznaczenie
-u, --url <URL_OR_MONIKER>Wybierz adres URL RPC lub mainnet-beta, testnet, devnet albo localhost.
--ws <URL>Zastąp punkt końcowy WebSocket.
-k, --keypair <KEYPAIR>Wybierz plik keypair, ASK, stdin (-) lub obsługiwany adres URL podpisującego.
-C, --config <FILEPATH>Użyj innego pliku konfiguracyjnego CLI.
--commitment <LEVEL>Odczytuj na poziomie zatwierdzenia processed, confirmed lub finalized.
--output <FORMAT>Zwróć json lub json-compact tam, gdzie jest to obsługiwane.
--skip-preflightWyślij bez symulacji RPC. Używaj tylko wtedy, gdy rozumiesz kompromis związany z możliwymi błędami.
--use-tpu-clientWysyłaj transakcje przez klienta TPU.
--no-address-labelsWyświetlaj adresy bez lokalnych etykiet.
--skip-seed-phrase-validationZezwól na frazę odzyskiwania spoza angielskiej listy BIP39.
-v, --verbosePokaż dodatkowe dane wyjściowe polecenia.
-V, --versionWyświetl zainstalowaną wersję CLI.

Konfiguracja 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

Konfiguracja zawiera adres URL RPC, adres URL WebSocket, domyślnego podpisującego oraz poziom zatwierdzenia. Opcja wiersza poleceń zastępuje zapisaną wartość na czas danego wywołania.

Typowe przepływy pracy z kontami i transakcjami

# 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 domyślnie przyjmuje SOL. Użyj ALL jako kwoty, aby przenieść dostępne saldo po odliczeniu opłat. Przykłady z tokenami znajdziesz w krótkim przewodniku po tokenach.

Przepływy pracy z programami

# 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>

Przekaż --program-id <KEYPAIR_OR_ADDRESS>, gdy wdrożenie musi używać znanego identyfikatora programu. --final czyni nowe wdrożenie niezmiennym; przeczytaj jego pomoc uważnie przed użyciem, ponieważ uprawnień do aktualizacji (upgrade authority) nie można przywrócić.

Przepływy pracy z durable 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

Użyj authorize-nonce-account, aby zmienić nonce authority, oraz nonce-account, aby sprawdzić pełny stan konta. Transakcje korzystające z nonce akceptują też --nonce i --nonce-authority w obsługiwanych poleceniach.

Przepływy pracy ze stake

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

Dezaktywacja kończy się na granicy epoch i może potrwać dłużej niż jeden epoch. Użyj stakes, validators, stake-history i stake-minimum-delegation, aby sprawdzić stan klastra i delegacji przed wysłaniem zmian.

Narzędzia adresowe

# 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>

Wartości seed dla PDA używają formatu PREFIX:VALUE. Obsługiwane prefiksy to m.in. string, pubkey, hex, u8 oraz kodowania liczb całkowitych ze znakiem lub bez znaku o stałej szerokości, takie jak u64le.

Wiadomości off-chain i uzupełnianie poleceń w powłoce

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

Pełny indeks poleceń

Poniższy indeks zawiera wszystkie polecenia najwyższego poziomu w Agave v4.2.1. Polecenia takie jak program, config, feature i address-lookup-table zawierają polecenia zagnieżdżone; uruchom <command> --help, aby je wyświetlić.

PolecenieOpis
accountPokazuje lamport konta, właściciela, dane i stan wykonywalności.
addressWyświetla klucz publiczny wybranego podpisującego.
address-lookup-tableTworzy, rozszerza, zamraża, dezaktywuje, zamyka i sprawdza tabele wyszukiwania adresów.
airdropŻąda SOL z faucetu klastra.
alpenglow-genesis-infoOdczytuje informacje o certyfikacie genesis Alpenglow.
authorize-nonce-accountPrzypisuje uprawnienia do konta durable nonce.
balancePokazuje saldo SOL konta.
blockPobiera potwierdzony blok na podstawie slot.
block-heightPokazuje bieżącą wysokość bloku.
block-productionPokazuje produkcję bloków przez lidera dla zakresu slot.
block-timeSzacuje czas utworzenia bloku.
catchupCzeka, aż validator nadrobi zaległości względem klastra.
close-vote-accountZamyka konto głosowania i wypłaca pozostałe środki.
cluster-dateSzacuje datę klastra na podstawie czasu genesis i czasu sieci.
cluster-versionPokazuje wersję oprogramowania punktu wejścia klastra.
completionGeneruje skrypt uzupełniania poleceń w powłoce.
configPobiera lub ustawia domyślne wartości CLI.
confirmSprawdza status potwierdzenia sygnatury transakcji.
create-address-with-seedWyprowadza adres systemowy na podstawie bazy, seed i identyfikatora programu.
create-nonce-accountTworzy i inicjalizuje konto durable nonce.
create-stake-accountTworzy konto stake.
create-stake-account-checkedTworzy konto stake, sprawdzając withdraw authority jako podpisującego.
create-vote-accountTworzy konto głosowania validator.
deactivate-stakeRozpoczyna dezaktywację zdelegowanego stake.
decode-transactionDekoduje zserializowaną transakcję.
delegate-stakeDeleguje konto stake do konta głosowania.
epochPokazuje numer bieżącego epoch.
epoch-infoPokazuje informacje o epoch, slot, wysokości bloku i liczbie transakcji.
featureSprawdza i zarządza kontami funkcji środowiska uruchomieniowego.
find-program-derived-addressWyprowadza PDA i kanoniczny bump z typowanych wartości seed.
first-available-blockPokazuje pierwszy kompletny blok przechowywany przez węzeł RPC.
genesis-hashPokazuje hash genesis klastra.
gossipWyświetla listę węzłów widocznych przez gossip.
helpWyświetla pomoc główną lub dla polecenia.
inflationPokazuje informacje o governor inflacji, jej stopie lub nagrodach.
largest-accountsWyświetla listę największych kont klastra.
leader-scheduleWyświetla harmonogram liderów.
live-slotsStrumieniuje postęp bieżącego slot.
logsStrumieniuje logi transakcji, opcjonalnie filtrowane według adresu.
merge-stakeScala zgodne konta stake.
new-noncePrzesuwa durable nonce do kolejnej wartości.
nonceWyświetla wartość durable nonce.
nonce-accountPokazuje pełny stan konta durable nonce.
programWdraża, aktualizuje, sprawdza, zrzuca, ustawia authority dla lub zamyka programy i bufory.
recent-prioritization-feesPokazuje ostatnie opłaty priorytetowe dla kont z możliwością zapisu.
rentOblicza minimalne saldo zwalniające z rent dla danego rozmiaru danych konta.
resolve-signerZamienia ogólne odwołanie do podpisującego, np. adres URL Ledger, na konkretną ścieżkę.
sign-offchain-messagePodpisuje wiadomość off-chain w UTF-8.
slotPokazuje bieżący slot.
split-stakePrzenosi lamport z jednego konta stake na drugie.
stake-accountPokazuje uprawnienia, saldo i stan delegacji konta stake.
stake-authorizeZmienia stake authority lub withdraw authority.
stake-authorize-checkedZmienia stake authority, sprawdzając nowe authority jako podpisującego.
stake-historyPokazuje historię aktywacji i dezaktywacji stake w klastrze.
stake-minimum-delegationPokazuje minimalną delegację stake w klastrze.
stake-set-lockupUstawia blokadę (lockup) konta stake.
stake-set-lockup-checkedUstawia blokadę, sprawdzając nowego custodiana jako podpisującego.
stakesWyświetla listę kont stake, opcjonalnie filtrowaną według validator lub authority.
supplyPokazuje podaż SOL: w obiegu, poza obiegiem i całkowitą.
transaction-countPokazuje liczbę transakcji w klastrze.
transaction-historyWyświetla transakcje z udziałem adresu, od najnowszych do najstarszych.
transferPrzesyła SOL między kontami systemowymi.
upgrade-nonce-accountIdempotentnie aktualizuje starsze konto nonce.
validator-infoPublikuje lub odczytuje informacje o validator.
validatorsPokazuje podsumowanie stake, prowizji, wskaźnika pominięć i wersji validator.
verify-offchain-signatureWeryfikuje podpisaną wiadomość off-chain.
vote-accountPokazuje uprawnienia, prowizję, kredyty i głosy konta głosowania.
vote-authorize-voterZmienia voter authority konta głosowania.
vote-authorize-voter-checkedZmienia voter authority, sprawdzając nowe authority jako podpisującego.
vote-authorize-withdrawerZmienia withdraw authority konta głosowania.
vote-authorize-withdrawer-checkedZmienia withdraw authority, sprawdzając nowe authority jako podpisującego.
vote-update-commissionZmienia prowizję konta głosowania.
vote-update-validatorZmienia tożsamość validator przypisaną do konta głosowania.
withdraw-from-nonce-accountWypłaca część lub całość SOL z konta durable nonce.
withdraw-from-vote-accountWypłaca lamport z konta głosowania.
withdraw-stakeWypłaca nieaktywne SOL z konta stake.

Dane wyjściowe skryptów

Zamiast analizować dane wyjściowe przeznaczone dla człowieka, użyj --output json lub --output json-compact tam, gdzie jest to obsługiwane:

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

Nie każde polecenie obsługuje ustrukturyzowane dane wyjściowe. Sprawdź pomoc polecenia, zanim zaczniesz na nich polegać w automatyzacji, i traktuj niezerowy kod wyjścia jako błąd.

Is this page helpful?