mcpField
N
near-cli-rs

near-cli-rs

github.com/nearその他1650 回インストール4 週間前に更新
リポジトリ

near-cli-rs について

非対話型の `near` CLI コマンドを生成する AI エージェント向けのリファレンスです。構文とバージョンごとの動作を示し、実行前に完全なコマンドを承認用に提示する手順を定めています。

主な機能

  1. 01アカウントとトークンのコマンド解説
  2. 02ステーキングとコントラクト操作
  3. 03トランザクション署名方式の一覧
  4. 04ネットワークと参照指定の解説
  5. 05CLI バージョン変更点の記録

活用シーン

  1. 01NEAR アカウントコマンドの生成
  2. 02承認用トークン送金の準備
  3. 03コントラクトの確認やデプロイ
  4. 04トランザクションとステーキング構文の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/near/agent-skills --skill near-cli-rs

インストール後、Claude Code で/near-cli-rsを入力して読み込まれたか確認します。

詳細

スキル:near-cli-rs — AI エージェント向け NEAR Protocol CLI リファレンス

目的: このファイルは、非対話型の near コマンドを生成する LLM 向けです。ユーザーのリクエストが CLI 操作に該当する場合は、ここで正しい構文を確認し、完全なワンライナーを作成して、実行前にユーザーの承認を得てください。

ルール: near から最後のアクショントークン(send、display、now、create など)まで、常に完全なコマンドを作成してください。network-config <NETWORK> は省略しないでください。

バージョン: near-cli-rs v0.14+(v0.30.x、2026-09 までテスト済み)

ソース: near/near-cli-rs · リリース · docs.near.org/tools/cli

v0.24 以降の変更点(v0.25–v0.30.x)

新しい CLI バージョンでは、コマンドを生成する際に把握しておくべき動作の変更があります。

  • Gas キー(nearcore 2.13+):トランザクションに Gas キーで署名できます。署名時に nonce_index の選択を求められます。near transaction sign-message も Gas キーによる署名をサポートしています。
  • 耐量子鍵(ドラフト):v0.28+ では ML-DSA-65 鍵を生成できます(ml-dsa-65: 鍵形式)。公開鍵の表示には ml-dsa-65-hash が含まれます。実験的な機能のため、通常は ed25519 を使用してください。
  • 削除済み: 単独の generate-keypair コマンド(代わりに、ローカルで生成した鍵を使って account import-account を使用してください)。
  • 新しいコマンド: tokens send-ft-call(tokens サブコマンドの ft_transfer_call);account import-account は既存のアカウントに対して非対話型で実行できます;contract state-init はデプロイ時に新しいコントラクトの状態を初期化します。
  • デフォルトの変更: 関数呼び出しの Gas 上限が 1000 TGas に更新されました;コントラクト単位の FT 一覧表示が改善されました(ハードコードされた一覧だけでなく、アカウント内のすべてのコントラクトの FT を表示します)。
  • グローバルハッシュによるデプロイは再試行に安全です;account delete-account の前に受益者アカウントが検証されます。

お使いの CLI バージョンとここで生成したコマンドの構文が異なる場合は、near --help または near <group> <subcommand> --help で正確な構文を確認してください。


コマンド文法

near [GLOBAL_FLAGS] <COMMAND_GROUP> [ENTITY_ARGS] <SUBCOMMAND> [SUB_ARGS] network-config <NETWORK> [SIGNING_OPTION] [FINAL_ACTION]
  • ビューコマンドの末尾:now | at-block-height <N> | at-block-hash <HASH>
  • トランザクションコマンドの末尾:署名オプションの後に send または display
  • フォーセット経由のアカウント作成の末尾:create
  • network-config キーワードは(ビューコマンドでも)常に必須です

グローバルフラグ

フラグ効果
--offlineネットワークにアクセスせずにトランザクションを作成/署名します
--quiet進行状況の出力を抑制します(スクリプトでの使用を推奨)
--teach-meすべての RPC 呼び出しとそのパラメーターを表示します

ネットワークとビュー修飾子

項目値
組み込みネットワークmainnet、testnet
カスタムネットワークnear config show-connections に表示される任意の <connection-name>
ビュー:最新ブロックnow
ビュー:指定した高さat-block-height <BLOCK_HEIGHT>
ビュー:指定したハッシュat-block-hash <BLOCK_HASH>

金額とガスの形式

資産形式備考
NEAR'1 NEAR' または '0.5 NEAR'引用符で囲み、単位の前にスペースを入れます
yoctoNEAR'1 yoctoNEAR'多くのコントラクト呼び出しで必要なデポジット
Gas'30 Tgas' から '300 Tgas'デフォルトは '100 Tgas'、最大は '300 Tgas'
FT amount'10 usn'数値 + FT シンボルを引用符で囲みます
FT allall残高全額を送金します

署名オプションのリファレンス

任意のトランザクションコマンドで <SIGNING_OPTION> を以下のいずれかに置き換えます。

オプション完全な構文
OS キーチェーン(推奨)sign-with-keychain send
レガシーキーチェーン(~/.near-credentials/)sign-with-legacy-keychain send
Ledger ハードウェアウォレットsign-with-ledger send
プレーンテキストの秘密鍵sign-with-plaintext-private-key --signer-public-key ed25519:<PUBKEY> --signer-private-key ed25519:<PRIVKEY> send
アクセスキーファイルsign-with-access-key-file /path/to/key.json send
シードフレーズsign-with-seed-phrase 'word1 ... word12' --seed-phrase-hd-path 'm/44'"'"'/397'"'"'/0'"'"'' send
MPCsign-with-mpc send
署名なしのトランザクションを生成(後で署名)sign-later

署名済みトランザクションをブロードキャストせずに Base64 で出力するには、send を display に置き換えます。


account コマンド

view-account-summary
# Current block
near account view-account-summary <ACCOUNT_ID> network-config <NETWORK> now

# Specific block height
near account view-account-summary <ACCOUNT_ID> network-config <NETWORK> at-block-height <BLOCK_HEIGHT>

# Specific block hash
near account view-account-summary <ACCOUNT_ID> network-config <NETWORK> at-block-hash <BLOCK_HASH>
import-account
# Using seed phrase (non-interactive)
near account import-account using-seed-phrase '<SEED_PHRASE>' --seed-phrase-hd-path 'm/44'"'"'/397'"'"'/0'"'"'' network-config <NETWORK>

# Using private key
near account import-account using-private-key ed25519:<PRIVATE_KEY> network-config <NETWORK>

# NOTE: using-web-wallet requires a browser redirect — not suitable for non-interactive use
export-account
# Export as seed phrase
near account export-account <ACCOUNT_ID> using-seed-phrase network-config <NETWORK>

# Export as private key
near account export-account <ACCOUNT_ID> using-private-key network-config <NETWORK>
create-account
# Testnet faucet (testnet only) — autogenerate keypair
near account create-account sponsor-by-faucet-service <NEW_ACCOUNT_ID> autogenerate-new-keypair save-to-keychain network-config testnet create

# Testnet faucet — use known seed phrase
near account create-account sponsor-by-faucet-service <NEW_ACCOUNT_ID> use-manually-provided-seed-phrase '<SEED_PHRASE>' network-config testnet create

# Testnet faucet — use known public key
near account create-account sponsor-by-faucet-service <NEW_ACCOUNT_ID> use-manually-provided-public-key ed25519:<PUBKEY> network-config testnet create

# Fund-myself: create sub-account (signer is implicit from keychain)
near account create-account fund-myself <NEW_ACCOUNT_ID> '<INITIAL_BALANCE>' autogenerate-new-keypair save-to-keychain sign-as network-config <NETWORK> sign-with-keychain send

# Fund-myself: create account specifying explicit signer
near account create-account fund-myself <NEW_ACCOUNT_ID> '<INITIAL_BALANCE>' autogenerate-new-keypair save-to-keychain sign-as <SIGNER_ACCOUNT_ID> network-config <NETWORK> sign-with-keychain send

# Fund-myself: use known seed phrase for new account
near account create-account fund-myself <NEW_ACCOUNT_ID> '<INITIAL_BALANCE>' use-manually-provided-seed-phrase '<SEED_PHRASE>' sign-as <SIGNER_ACCOUNT_ID> network-config <NETWORK> sign-with-keychain send

# Fund-myself: use known public key for new account
near account create-account fund-myself <NEW_ACCOUNT_ID> '<INITIAL_BALANCE>' use-manually-provided-public-key ed25519:<PUBKEY> sign-as <SIGNER_ACCOUNT_ID> network-config <NETWORK> sign-with-keychain send
delete-account
near account delete-account <ACCOUNT_ID> beneficiary <BENEFICIARY_ACCOUNT_ID> network-config <NETWORK> sign-with-keychain send
list-keys
near account list-keys <ACCOUNT_ID> network-config <NETWORK> now
get-public-key
# From seed phrase
near account get-public-key from-seed-phrase '<SEED_PHRASE>' --seed-phrase-hd-path "m/44'/397'/0'"

# From plaintext private key
near account get-public-key from-plaintext-private-key ed25519:<PRIVATE_KEY>

# From OS keychain
near account get-public-key from-keychain <ACCOUNT_ID> network-config <NETWORK>

# From legacy keychain
near account get-public-key from-legacy-keychain <ACCOUNT_ID> network-config <NETWORK>

# From Ledger (requires 5-component path)
near account get-public-key from-ledger --seed-phrase-hd-path "m/44'/397'/0'/0'/1'"
add-key
# Add full-access key (provide existing public key)
near account add-key <ACCOUNT_ID> grant-full-access use-manually-provided-public-key ed25519:<PUBKEY> network-config <NETWORK> sign-with-keychain send

# Add function-call-only key (autogenerate keypair)
near account add-key <ACCOUNT_ID> grant-function-call-access --allowance '<ALLOWANCE>' --contract-account-id <CONTRACT_ID> --function-names '<METHOD1>, <METHOD2>' autogenerate-new-keypair save-to-keychain network-config <NETWORK> sign-with-keychain send

# Add function-call-only key (allow all methods on contract)
near account add-key <ACCOUNT_ID> grant-function-call-access --allowance '<ALLOWANCE>' --contract-account-id <CONTRACT_ID> --function-names '' use-manually-provided-public-key ed25519:<PUBKEY> network-config <NETWORK> sign-with-keychain send
delete-keys
near account delete-keys <ACCOUNT_ID> public-keys ed25519:<PUBKEY> network-config <NETWORK> sign-with-keychain send
manage-storage-deposit
# View storage balance
near account manage-storage-deposit <CONTRACT_ID> view-balance <ACCOUNT_ID> network-config <NETWORK> now

# Deposit storage
near account manage-storage-deposit <CONTRACT_ID> deposit <ACCOUNT_ID> '<AMOUNT>' sign-as <SIGNER_ACCOUNT_ID> network-config <NETWORK> sign-with-keychain send

# Withdraw from storage
near account manage-storage-deposit <CONTRACT_ID> withdraw '<AMOUNT>' sign-as <ACCOUNT_ID> network-config <NETWORK> sign-with-keychain send
update-social-profile
# Update profile with JSON args
near account update-social-profile <ACCOUNT_ID> json-args '{"name":"<NAME>","image":{"ipfs_cid":"<CID>"}}' sign-as <ACCOUNT_ID> network-config <NETWORK> sign-with-keychain send

# Update profile from file
near account update-social-profile <ACCOUNT_ID> file-args /path/to/profile.json sign-as <ACCOUNT_ID> network-config <NETWORK> sign-with-keychain send

tokens コマンド

view-near-balance
near tokens <ACCOUNT_ID> view-near-balance network-config <NETWORK> now
view-ft-balance
near tokens <ACCOUNT_ID> view-ft-balance <FT_CONTRACT_ID> network-config <NETWORK> now
view-nft-assets
near tokens <ACCOUNT_ID> view-nft-assets <NFT_CONTRACT_ID> network-config <NETWORK> now
send-near
near tokens <SENDER_ACCOUNT_ID> send-near <RECEIVER_ACCOUNT_ID> '<AMOUNT>' network-config <NETWORK> sign-with-keychain send
send-ft
# Send specific amount
near tokens <SENDER_ACCOUNT_ID> send-ft <FT_CONTRACT_ID> <RECEIVER_ACCOUNT_ID> '<AMOUNT>' memo '<MEMO>' network-config <NETWORK> sign-with-keychain send

# Send all tokens (with optional custom gas/deposit)
near tokens <SENDER_ACCOUNT_ID> send-ft <FT_CONTRACT_ID> <RECEIVER_ACCOUNT_ID> all memo '' --prepaid-gas '300.0 Tgas' --attached-deposit '1 yoctoNEAR' network-config <NETWORK> sign-with-keychain send

注:デフォルトの prepaid-gas は '100.0 Tgas'、attached-deposit は '1 yoctoNEAR' です。

send-nft
near tokens <SENDER_ACCOUNT_ID> send-nft <NFT_CONTRACT_ID> <RECEIVER_ACCOUNT_ID> <TOKEN_ID> --prepaid-gas '300.0 Tgas' --attached-deposit '1 yoctoNEAR' network-config <NETWORK> sign-with-keychain send

staking コマンド

validator-list
near staking validator-list network-config <NETWORK>
delegation
# View delegated stake balance
near staking delegation <ACCOUNT_ID> view-balance <POOL_ID> network-config <NETWORK> now

# Deposit and stake (send NEAR to pool and immediately stake)
near staking delegation <ACCOUNT_ID> deposit-and-stake '<AMOUNT>' <POOL_ID> network-config <NETWORK> sign-with-keychain send

# Stake previously deposited tokens
near staking delegation <ACCOUNT_ID> stake '<AMOUNT>' <POOL_ID> network-config <NETWORK> sign-with-keychain send

# Stake all previously deposited or unstaked tokens
near staking delegation <ACCOUNT_ID> stake-all <POOL_ID> network-config <NETWORK> sign-with-keychain send

# Unstake a specific amount
near staking delegation <ACCOUNT_ID> unstake '<AMOUNT>' <POOL_ID> network-config <NETWORK> sign-with-keychain send

# Unstake everything
near staking delegation <ACCOUNT_ID> unstake-all <POOL_ID> network-config <NETWORK> sign-with-keychain send

# Withdraw a specific amount (after unstaking + ~2 epoch wait)
near staking delegation <ACCOUNT_ID> withdraw '<AMOUNT>' <POOL_ID> network-config <NETWORK> sign-with-keychain send

# Withdraw all available unstaked tokens
near staking delegation <ACCOUNT_ID> withdraw-all <POOL_ID> network-config <NETWORK> sign-with-keychain send

注: ステーキング解除した資金を引き出せるようになるまで、約 2 エポック(約 48 時間)かかります。


contract コマンド

call-function(参照/読み取り専用)
# With JSON args
near contract call-function as-read-only <CONTRACT_ID> <METHOD_NAME> json-args '{"key":"value"}' network-config <NETWORK> now

# With empty args
near contract call-function as-read-only <CONTRACT_ID> <METHOD_NAME> empty-args network-config <NETWORK> now

# With text args
near contract call-function as-read-only <CONTRACT_ID> <METHOD_NAME> text-args '<STRING>' network-config <NETWORK> now

# With base64 args
near contract call-function as-read-only <CONTRACT_ID> <METHOD_NAME> base64-args '<BASE64>' network-config <NETWORK> now
call-function(トランザクション/状態変更)
# With JSON args
near contract call-function as-transaction <CONTRACT_ID> <METHOD_NAME> json-args '{"key":"value"}' prepaid-gas '<GAS>' attached-deposit '<DEPOSIT>' sign-as <SIGNER_ACCOUNT_ID> network-config <NETWORK> sign-with-keychain send

# With empty args
near contract call-function as-transaction <CONTRACT_ID> <METHOD_NAME> empty-args prepaid-gas '<GAS>' attached-deposit '<DEPOSIT>' sign-as <SIGNER_ACCOUNT_ID> network-config <NETWORK> sign-with-keychain send
deploy
# Deploy without init call
near contract deploy <ACCOUNT_ID> use-file /path/to/contract.wasm without-init-call network-config <NETWORK> sign-with-keychain send

# Deploy with init call
near contract deploy <ACCOUNT_ID> use-file /path/to/contract.wasm with-init-call <INIT_METHOD> json-args '{}' prepaid-gas '100 Tgas' attached-deposit '0 NEAR' network-config <NETWORK> sign-with-keychain send
inspect
near contract inspect <CONTRACT_ID> network-config <NETWORK> now
verify
near contract verify deployed-at <CONTRACT_ID> network-config <NETWORK> now
download-abi
near contract download-abi <CONTRACT_ID> save-to-file <OUTPUT_FILE_PATH> network-config <NETWORK> now
download-wasm
near contract download-wasm <CONTRACT_ID> save-to-file <OUTPUT_FILE_PATH> network-config <NETWORK> now
view-storage
# View all storage as JSON
near contract view-storage <CONTRACT_ID> all as-json network-config <NETWORK> now

# View storage filtered by key prefix (string)
near contract view-storage <CONTRACT_ID> keys-start-with-string '<PREFIX>' as-json network-config <NETWORK> now

# View storage filtered by key prefix (base64)
near contract view-storage <CONTRACT_ID> keys-start-with-bytes-as-base64 '<BASE64_PREFIX>' as-json network-config <NETWORK> now

transaction コマンド

view-status
near transaction view-status <TX_HASH> network-config <NETWORK>
reconstruct-transaction
near transaction reconstruct-transaction <TX_HASH> network-config <NETWORK>
sign-transaction
near transaction sign-transaction '<UNSIGNED_TX_BASE64>' network-config <NETWORK> sign-with-keychain send
send-signed-transaction
near transaction send-signed-transaction '<SIGNED_TX_BASE64>' network-config <NETWORK>
print-transaction
# Print signed transaction fields
near transaction print-transaction signed '<SIGNED_TX_BASE64>'

# Print unsigned transaction fields
near transaction print-transaction unsigned '<UNSIGNED_TX_BASE64>'
send-meta-transaction
near transaction send-meta-transaction '<SIGNED_DELEGATE_BASE64>' network-config <NETWORK>

config コマンド

show-connections
near config show-connections
add-connection
near config add-connection --network-name <NETWORK_NAME> --connection-name <CONNECTION_NAME> --rpc-url <RPC_URL> --wallet-url <WALLET_URL> --explorer-transaction-url <EXPLORER_TX_URL> [--rpc-api-key '<API_KEY>'] [--linkdrop-account-id <LINKDROP_ID>] [--faucet-url <FAUCET_URL>] [--meta-transaction-relayer-url <RELAYER_URL>]
delete-connection
near config delete-connection <CONNECTION_NAME>

よくあるパターン(クックブック)

最もよく使うタスクのクイックリファレンスです。プレースホルダーを実際の値に置き換えてください。

1. NEAR の残高を確認する
near tokens alice.near view-near-balance network-config mainnet now
2. NEAR トークンを送金する
near tokens alice.near send-near bob.near '5 NEAR' network-config mainnet sign-with-keychain send
3. アカウントの詳細を表示する
near account view-account-summary alice.near network-config mainnet now
4. アクセスキーを一覧表示する
near account list-keys alice.near network-config mainnet now
5. 代替可能トークンを送信する
near tokens alice.near send-ft usdt.tether-token.near bob.near '10 USDT' memo '' network-config mainnet sign-with-keychain send
6. FT の残高を表示する
near tokens alice.near view-ft-balance usdt.tether-token.near network-config mainnet now
7. 読み取り専用のコントラクトメソッドを呼び出す
near contract call-function as-read-only wrap.near ft_balance_of json-args '{"account_id":"alice.near"}' network-config mainnet now
8. 状態を変更するコントラクトメソッドを呼び出す
near contract call-function as-transaction wrap.near ft_transfer json-args '{"receiver_id":"bob.near","amount":"1000000000000000000000000"}' prepaid-gas '100 Tgas' attached-deposit '1 yoctoNEAR' sign-as alice.near network-config mainnet sign-with-keychain send
9. バリデーターに NEAR をステーキングする
near staking delegation alice.near deposit-and-stake '10 NEAR' aurora.pool.near network-config mainnet sign-with-keychain send
10. バリデーターからステーキングを解除する
near staking delegation alice.near unstake-all aurora.pool.near network-config mainnet sign-with-keychain send
11. ステーキング解除済みの NEAR を引き出す(約2エポック待機後)
near staking delegation alice.near withdraw-all aurora.pool.near network-config mainnet sign-with-keychain send
12. テストネットアカウントを作成する(フォーセットから資金を受け取る)
near account create-account sponsor-by-faucet-service myaccount.testnet autogenerate-new-keypair save-to-keychain network-config testnet create
13. サブアカウントを作成する(自己資金を使用)
near account create-account fund-myself sub.alice.testnet '1 NEAR' autogenerate-new-keypair save-to-keychain sign-as alice.testnet network-config testnet sign-with-keychain send
14. コントラクトをデプロイする
near contract deploy mycontract.testnet use-file ./contract.wasm without-init-call network-config testnet sign-with-keychain send
15. アクセスキーを削除する
near account delete-keys alice.testnet public-keys ed25519:<PUBKEY_TO_REMOVE> network-config testnet sign-with-keychain send
16. フルアクセスキーを追加する
near account add-key alice.testnet grant-full-access use-manually-provided-public-key ed25519:<NEW_PUBKEY> network-config testnet sign-with-keychain send

オフラインモードとスクリプトのヒント

オフライン署名のワークフロー(エアギャップ環境/2台のマシン)
# Machine A (offline): produce signed tx in base64 without broadcasting
near --offline tokens alice.near send-near bob.near '1 NEAR' network-config mainnet sign-with-seed-phrase '<SEED_PHRASE>' --seed-phrase-hd-path 'm/44'"'"'/397'"'"'/0'"'"'' display

# Machine B (online): broadcast the base64 tx
near transaction send-signed-transaction '<SIGNED_TX_BASE64>' network-config mainnet
後で署名するワークフロー
# Step 1: produce unsigned base64 tx
near tokens alice.near send-near bob.near '1 NEAR' network-config mainnet sign-later

# Step 2: sign it (outputs signed base64)
near transaction sign-transaction '<UNSIGNED_TX_BASE64>' network-config mainnet sign-with-keychain display

# Step 3: broadcast
near transaction send-signed-transaction '<SIGNED_TX_BASE64>' network-config mainnet
スクリプトのヒント
  • スクリプトで進行状況の出力を抑制するには、常に --quiet を追加してください
  • 金額は常に引用符で囲んでください:'1 NEAR'、'0.5 NEAR'、'1 yoctoNEAR'
  • シードフレーズの HD パスをシェルでエスケープする場合:'m/44'"'"'/397'"'"'/0'"'"''
  • ブロードキャスト前に署名済みトランザクションを確認するには、send ではなく display を使用してください

キー形式リファレンス

項目形式例
公開鍵ed25519:<BASE58>ed25519:8h7kFK4...
秘密鍵ed25519:<BASE58>ed25519:2qM8v3N...
トランザクションハッシュ44文字の base58F3eZmht...
名前付きアカウントname.near / name.testnetalice.near
暗黙的アカウント64文字の小文字の16進数a4b05ef3...
標準 HD パスm/44'/397'/0'NEAR BIP44
Ledger HD パスm/44'/397'/0'/0'/N'Ledger では5要素が必須
PQ 公開鍵(v0.28+、ドラフト)ml-dsa-65:<BASE58>耐量子鍵。実験的機能

よくあるエラー

エラー考えられる原因/対処法
"Account does not exist"ネットワークが間違っているか、アカウントにまだ資金がありません
"Access key not found"sign-with-legacy-keychain または sign-with-seed-phrase を使用してください
"Exceeded prepaid gas"ガスを増やしてください:'300 Tgas'
FT transfer fails silentlyFT の ft_transfer には attached-deposit '1 yoctoNEAR' が必要です
"Method not found"near contract inspect でメソッド名を確認してください
Seed phrase HD path errorシングルクォートをエスケープしてください:'m/44'"'"'/397'"'"'/0'"'"''

コメント