--- id: near-cli title: NEAR CLI --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; The NEAR [Command Line Interface](https://github.com/near/near-cli-rs) (CLI) is a tool that enables to interact with the NEAR network directly from the shell. Among other things, the NEAR CLI enables you to: - Login with a NEAR account - Deploy a contract - Interact and query information from a deployed contract --- ## Installation ```bash npm install -g near-cli-rs@latest ``` ``` $ cargo install near-cli-rs ``` ```bash curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/near-cli-rs/releases/latest/download/near-cli-rs-installer.sh | sh ``` ```bash irm https://github.com/near/near-cli-rs/releases/latest/download/near-cli-rs-installer.ps1 | iex ``` --- ## Configuration file The directory with access keys and available connection networks are defined in the configuration file (`near-cli/config.toml`), which is located depending on the operating system in the following places: - macOS: `$HOME/Library/Application Support` (e.g. `/Users/Alice/Library/Application Support`) - Linux: `$XDG_CONFIG_HOME` or `$HOME/.config` (e.g. `/home/alice/.config`) - Windows: `{FOLDERID*RoamingAppData}` (e.g. `C:\Users\Alice\AppData\Roaming`) You can learn more about working with the configuration file [here](https://github.com/near/near-cli-rs/blob/main/docs/GUIDE.en.md#config---manage-connections-in-a-configuration-file). :::tip Custom RPC You can setup a custom [RPC server](../api/rpc/providers) by changing the `rpc_url` parameter in `near-cli` settings: ```bash near config edit-connection testnet --key rpc_url --value https://archival-rpc.testnet.near.org/ ``` ::: --- ## Interactive mode To use the `near-cli` simply run the following in your terminal. ```bash $ near ``` You should then see the following. Use the arrow keys and hit `enter` or simply type out one of the available options to select an option ![](/docs/assets/near-cli-rs.png) :::important We provide examples only of the most used commands. Such commands may have two versions - a **full** one and a **short** one. If you want to explore all options provided by `near-cli` use the interactive mode described above. ::: --- ## Account This option will allow you to manage, control, and retrieve information on your accounts. ### Summary `view-account-summary` - view properties for an account. ```bash export ACCOUNT_ID=bob.testnet near account view-account-summary $ACCOUNT_ID network-config testnet now ``` ```bash export ACCOUNT_ID=bob.testnet near state $ACCOUNT_ID --networkId testnet ```
### Import `import-account` - import existing account (a.k.a. "sign in"). ```bash near account import-account using-web-wallet network-config testnet ``` ```bash near login --networkId testnet ```
### Export `export-account` - export existing account. ```bash export ACCOUNT_ID=bob.testnet near account export-account $ACCOUNT_ID using-web-wallet network-config testnet ```
### Create `create-account` - create a new account. ```bash export ACCOUNT_ID=bob.testnet near account create-account sponsor-by-faucet-service $ACCOUNT_ID autogenerate-new-keypair save-to-keychain network-config testnet create ``` ```bash export ACCOUNT_ID=bob.testnet near create-account $ACCOUNT_ID --useFaucet --networkId testnet ```
### Delete `delete-account` - delete an account. ```bash export ACCOUNT_ID=bob.testnet export BENEFICIARY_ID=alice.testnet near account delete-account $ACCOUNT_ID beneficiary $BENEFICIARY_ID network-config testnet sign-with-keychain send ``` ```bash export ACCOUNT_ID=bob.testnet export BENEFICIARY_ID=alice.testnet near delete-account $ACCOUNT_ID $BENEFICIARY_ID --networkId testnet ``` --- ## Keys Showing, adding and removing account keys. ### List keys `list-keys` - view a list of keys for an account. ```bash export ACCOUNT_ID=bob.testnet near account list-keys $ACCOUNT_ID network-config testnet now ``` ```bash export ACCOUNT_ID=bob.testnet near list-keys $ACCOUNT_ID --networkId testnet ```
### Add key `add-key` - add an access key to an account. ```bash export ACCOUNT_ID=bob.testnet near account add-key $ACCOUNT_ID grant-full-access use-manually-provided-public-key ed25519:CXqAs8c8kZz81josLw82RQsnZXk8CAdUo7jAuN7uSht2 network-config testnet sign-with-keychain send ``` ```bash export ACCOUNT_ID=bob.testnet near add-key $ACCOUNT_ID ed25519:CXqAs8c8kZz81josLw82RQsnZXk8CAdUo7jAuN7uSht2 --networkId testnet ```
### Delete key `delete-keys` - delete an access key from an account. ```bash export ACCOUNT_ID=bob.testnet near account delete-keys $ACCOUNT_ID public-keys ed25519:HdkFZFEPoWfgrrLK3R4t5dWtNoLC8WymBzhCXoP3zrjh network-config testnet sign-with-keychain send ``` ```bash export ACCOUNT_ID=bob.testnet near delete-key $ACCOUNT_ID ed25519:HdkFZFEPoWfgrrLK3R4t5dWtNoLC8WymBzhCXoP3zrjh --networkId testnet ``` --- ## Tokens This will allow you to manage your token assets such as NEAR, FTs and NFTs. ### Send NEAR `send-near` - transfers NEAR to a specified recipient in units of NEAR or yoctoNEAR. ```bash export ACCOUNT_ID=bob.testnet export RECEIVER_ID=alice.testnet near tokens $ACCOUNT_ID send-near $RECEIVER_ID '0.5 NEAR' network-config testnet sign-with-keychain send ``` ```bash export ACCOUNT_ID=bob.testnet export RECEIVER_ID=alice.testnet near send-near $ACCOUNT_ID $RECEIVER_ID 0.5 --networkId testnet ```
### Send FT `send-ft` - transfer Fungible Tokens to a specified user. ```bash export ACCOUNT_ID=bob.testnet export RECEIVER_ID=alice.testnet export FT_CONTRACT_ID=0c97251cd1f630c444dbusdt.testnet near tokens $ACCOUNT_ID send-ft $FT_CONTRACT_ID $RECEIVER_ID amount-ft '1 USDT' prepaid-gas '100.0 Tgas' attached-deposit '1 yoctoNEAR' network-config testnet sign-with-keychain send ```
### Send NFT `send-nft` - transfers NFTs between accounts. ```bash export ACCOUNT_ID=bob.testnet export RECEIVER_ID=alice.testnet export NFT_CONTRACT_ID=nft.examples.testnet near tokens $ACCOUNT_ID send-nft $NFT_CONTRACT_ID $RECEIVER_ID 1 --prepaid-gas '100.0 Tgas' --attached-deposit '1 yoctoNEAR' network-config testnet sign-with-keychain send ```
### View NEAR balance `view-near-balance` - view the balance of NEAR tokens. ```bash export ACCOUNT_ID=bob.testnet near tokens $ACCOUNT_ID view-near-balance network-config testnet now ```
### View FT balance `view-ft-balance` - view the balance of Fungible Tokens. ```bash export ACCOUNT_ID=bob.testnet export FT_CONTRACT_ID=0c97251cd1f630c444dbusdt.testnet near tokens $ACCOUNT_ID view-ft-balance $FT_CONTRACT_ID network-config testnet now ```
### View NFT balance `view-nft-assets` - view the balance of NFT tokens. ```bash export ACCOUNT_ID=bob.testnet export NFT_CONTRACT_ID=nft.examples.testnet near tokens $ACCOUNT_ID view-nft-assets $NFT_CONTRACT_ID network-config testnet now ``` --- ## Contract This option allows you to manage and interact with your smart contracts. ### Call `call-function` - execute function (contract method). ```bash # View method export CONTRACT_ID=nft.examples.testnet near contract call-function as-read-only $CONTRACT_ID nft_tokens json-args '{"from_index": "0", "limit": 2}' network-config testnet now # Call method export ACCOUNT_ID=bob.testnet near contract call-function as-transaction $CONTRACT_ID nft_mint json-args '{"metadata": {"copies": 1, "description": "The Team Goes", "media": "https://bafybeidl4hjbpdr6u6xvlrizwxbrfcyqurzvcnn5xoilmcqbxfbdwrmp5m.ipfs.dweb.link/", "title": "GO TEAM"}, "receiver_id": "bob.testnet", "token_id": "5895"}' prepaid-gas '100.0 Tgas' attached-deposit '0.1 NEAR' sign-as $ACCOUNT_ID network-config testnet sign-with-keychain send ``` ```bash # View method export CONTRACT_ID=nft.examples.testnet near view $CONTRACT_ID nft_tokens '{"from_index": "0", "limit": 2}' --networkId testnet # Call method export ACCOUNT_ID=bob.testnet near call $CONTRACT_ID nft_mint '{"metadata": {"copies": 1, "description": "The Team Goes", "media": "https://bafybeidl4hjbpdr6u6xvlrizwxbrfcyqurzvcnn5xoilmcqbxfbdwrmp5m.ipfs.dweb.link/", "title": "GO TEAM"}, "receiver_id": "bob.testnet", "token_id": "5896"}' --deposit 0.1 --useAccount $ACCOUNT_ID --networkId testnet ```
### Deploy `deploy` - add a new contract code. ```bash export CONTRACT_ID=contract.testnet near contract deploy $CONTRACT_ID use-file ../target/near/contract.wasm without-init-call network-config testnet sign-with-keychain send ``` ```bash export CONTRACT_ID=contract.testnet near deploy $CONTRACT_ID ../target/near/contract.wasm --networkId testnet ```
### Inspect `inspect` - get a list of available function names. ```bash export CONTRACT_ID=nft.examples.testnet near contract view-storage $CONTRACT_ID all as-text network-config testnet now ``` ```bash export CONTRACT_ID=nft.examples.testnet near storage $CONTRACT_ID --finality final --utf8 --networkId testnet ``` --- ## Transaction Operate transactions. ### View status `view-status` - view a transaction status. ```bash near transaction view-status BFrVVtjqD2p1zYX1UCvn4nJpy7zPHpY5cTgQaKCZjBvw network-config testnet ``` ```bash near tx-status BFrVVtjqD2p1zYX1UCvn4nJpy7zPHpY5cTgQaKCZjBvw --networkId testnet ``` --- ## Config Manage the connection parameters inside the `config.toml` file for `near-cli`. This will allow you to change or modify the network connections for your CLI. ### Show connections `show-connections` - show a list of network connections. ```bash near config show-connections ```
### Edit connection `edit-connection` - edit a network connection. ```bash near config edit-connection testnet --key rpc_url --value https://test.rpc.fastnear.com ``` --- :::important We provide examples only of the most used commands. If you want to explore all options provided by `near-cli` use [the interactive mode](#interactive-mode). :::