솔라나 문서참고 자료

Solana CLI 레퍼런스

solana 명령줄 인터페이스는 클러스터 연결을 구성하고, 네트워크 상태를 조회하며, SOL을 전송하고, durable 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-preflightRPC 시뮬레이션 없이 전송합니다. 실패 시의 트레이드오프를 이해한 경우에만 사용하세요.
--use-tpu-clientTPU 클라이언트를 통해 트랜잭션을 전송합니다.
--no-address-labels로컬 레이블 없이 주소를 출력합니다.
--skip-seed-phrase-validationBIP39 영어 단어 목록에 없는 복구 문구를 허용합니다.
-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, WebSocket URL, 기본 서명자, 커밋먼트가 포함됩니다. 명령줄 옵션은 해당 호출에 한해 저장된 값을 재정의합니다.

일반적인 계정 및 트랜잭션 워크플로

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

배포 시 특정 프로그램 ID를 사용해야 한다면 --program-id <KEYPAIR_OR_ADDRESS>를 전달하세요. --final은 새 배포를 불변 상태로 만듭니다. 업그레이드 권한은 복구할 수 없으므로 사용하기 전에 도움말을 주의 깊게 읽으세요.

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

nonce 권한을 변경하려면 authorize-nonce-account를, 전체 계정 상태를 확인하려면 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 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-infoAlpenglow 제네시스 인증서에 대한 정보를 읽습니다.
authorize-nonce-accountdurable nonce 계정 권한을 지정합니다.
balance계정의 SOL 잔액을 표시합니다.
blockslot으로 확정된 블록을 가져옵니다.
block-height현재 블록 높이를 표시합니다.
block-productionslot 범위에 대한 리더의 블록 생성 현황을 표시합니다.
block-time블록의 생성 시간을 추정합니다.
catchupvalidator가 클러스터를 따라잡을 때까지 대기합니다.
close-vote-account투표 계정을 닫고 남은 자금을 인출합니다.
cluster-date제네시스 시간과 네트워크 시간으로 클러스터 날짜를 추정합니다.
cluster-version클러스터 엔트리포인트의 소프트웨어 버전을 표시합니다.
completion셸 자동 완성 스크립트를 생성합니다.
configCLI 기본값을 조회하거나 설정합니다.
confirm트랜잭션 서명의 확인 상태를 점검합니다.
create-address-with-seedbase, seed, 프로그램 ID로 시스템 주소를 파생합니다.
create-nonce-accountdurable nonce 계정을 생성하고 초기화합니다.
create-stake-account스테이크 계정을 생성합니다.
create-stake-account-checked인출 권한을 서명자로 확인하면서 스테이크 계정을 생성합니다.
create-vote-accountvalidator 투표 계정을 생성합니다.
deactivate-stake위임된 스테이크의 비활성화를 시작합니다.
decode-transaction직렬화된 트랜잭션을 디코딩합니다.
delegate-stake스테이크 계정을 투표 계정에 위임합니다.
epoch현재 epoch 번호를 표시합니다.
epoch-infoepoch, slot, 블록 높이, 트랜잭션 수 정보를 표시합니다.
feature런타임 기능 계정을 조회하고 관리합니다.
find-program-derived-address타입이 지정된 seed에서 PDA와 표준 bump를 파생합니다.
first-available-blockRPC 노드가 보존하고 있는 첫 번째 완전한 블록을 표시합니다.
genesis-hash클러스터 제네시스 해시를 표시합니다.
gossipgossip을 통해 확인되는 노드를 나열합니다.
help루트 또는 명령어 도움말을 출력합니다.
inflation인플레이션 거버너, 비율 또는 보상 정보를 표시합니다.
largest-accounts클러스터에서 가장 큰 계정을 나열합니다.
leader-schedule리더 스케줄을 표시합니다.
live-slots현재 slot 진행 상황을 스트리밍합니다.
logs트랜잭션 로그를 스트리밍하며, 주소로 필터링할 수 있습니다.
merge-stake호환되는 스테이크 계정을 병합합니다.
new-noncedurable nonce를 갱신합니다.
noncedurable nonce 값을 출력합니다.
nonce-accountdurable nonce 계정의 전체 상태를 표시합니다.
program프로그램과 버퍼를 배포, 업그레이드, 조회, 덤프하거나 권한을 설정하고 닫습니다.
recent-prioritization-fees쓰기 가능한 계정에 대한 최근 우선순위 수수료를 표시합니다.
rent계정 데이터 크기에 대한 렌트 면제 최소 금액을 계산합니다.
resolve-signerLedger URL과 같은 일반 서명자 참조를 구체적인 경로로 확인합니다.
sign-offchain-messageUTF-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새 custodian을 서명자로 확인하면서 락업을 설정합니다.
stakes스테이크 계정을 나열하며, validator 또는 권한으로 필터링할 수 있습니다.
supply유통, 비유통 및 전체 SOL 공급량을 표시합니다.
transaction-count클러스터 트랜잭션 수를 표시합니다.
transaction-history주소와 관련된 트랜잭션을 최신순으로 나열합니다.
transfer시스템 계정 간에 SOL을 전송합니다.
upgrade-nonce-account레거시 nonce 계정을 멱등적으로 업그레이드합니다.
validator-infovalidator 정보를 게시하거나 조회합니다.
validatorsvalidator의 스테이크, 수수료, 스킵 비율, 버전 요약을 표시합니다.
verify-offchain-signature서명된 오프체인 메시지를 검증합니다.
vote-account투표 계정의 권한, 수수료, 크레딧, 투표를 표시합니다.
vote-authorize-voter투표 계정의 voter 권한을 변경합니다.
vote-authorize-voter-checked새 권한을 서명자로 확인하면서 voter 권한을 변경합니다.
vote-authorize-withdrawer투표 계정의 인출 권한을 변경합니다.
vote-authorize-withdrawer-checked새 권한을 서명자로 확인하면서 인출 권한을 변경합니다.
vote-update-commission투표 계정의 수수료를 변경합니다.
vote-update-validator투표 계정에 할당된 validator ID를 변경합니다.
withdraw-from-nonce-accountdurable nonce 계정에서 SOL의 일부 또는 전부를 인출합니다.
withdraw-from-vote-account투표 계정에서 lamport를 인출합니다.
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

모든 명령어가 구조화된 출력을 지원하는 것은 아닙니다. 자동화에 의존하기 전에 명령어의 도움말을 확인하고, 0이 아닌 종료 상태는 실패로 처리하세요.

Is this page helpful?