
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
NEAR CLI is a Node.js application that relies on near-api-js to connect to and interact with the NEAR blockchain. Create accounts, access keys, sign & send transactions with this versatile command line interface tool.
Note: Node.js version 16+ is required to run NEAR CLI.
This release is a major reorganization of the codebase to simplify its maintenance. It also includes a few new features and a multitude of small fixes.
The most notable changes are:
--useLedger does not set the path anymore, use --ledgerPath for this
add-credentials commandgenerate-key command now has a --saveImplicit option to save the key as an implicit accounttestnet pre-funded accounts using the --useFaucet optionTLA with less than 32 characters anymore (this is a NEAR protocol change)view now does not take an --accountId or --masterAccountnear create-account to see how options might have changedRelease notes and unreleased changes can be found in the CHANGELOG
Click on a command for more information and examples.
| Command | Description |
|---|---|
| ACCESS KEYS | |
near add-credentials | Stores credentials for an account locally |
near add-key | adds a new access key to an account |
near delete-key | deletes an access key from an account |
near generate-key | generates a key pair and optionally stores it locally as credentials for an accountId |
near list-keys | displays all access keys and their details for a given account |
near login | stores a full access key locally using NEAR Wallet |
| ACCOUNTS | |
near create-account | creates a new account, either using a faucet to fund it, or an account saved locally |
near delete-account | deletes an account and transfers remaining balance to a beneficiary account |
near list-keys | displays all access keys for a given account |
near send-near | sends tokens from one account to another |
near state | shows general details of an account |
| CONTRACTS | |
near call | makes a contract call which can invoke change or view methods |
near deploy | deploys a smart contract to the NEAR blockchain |
near storage | Shows the storage state of a given contract, i.e. the data stored in a contract |
near view | makes a contract call which can only invoke a view method |
| TRANSACTIONS | |
near tx-status | queries a transaction's status by txHash |
Make sure you have a current version of
npmandNodeJSinstalled.
npm and node using a package manager like nvm as sometimes there are issues using Ledger due to how OS X handles node packages related to USB devices. [click here]near-cli globally by running:npm install -g near-cli
For example, on Ubuntu 20.04 near-cli can be installed by running:
# Install nvm (https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
# Install node
nvm install node
# Install near-cli
npm install -g near-cli
# near-cli works!
near --help
For Windows users, we recommend using Windows Subsystem for Linux (
WSL).
WSL [click here]npm [click here] Node.js [ click here ]npm default directory [ click here ]
WSLWSL and install near-cli globally by running:npm install -g near-cli
The default network for
near-cliistestnet.
NEAR_NETWORK=testnet near send ...
export NEAR_NETWORK=mainnet
--networkId option.near send-near ... --networkId mainnet
[!WARNING] In previous versions,
near-cliusedNEAR_ENVto set the network. This can still be used, butNEAR_NETWORKhas priority overNEAR_ENVif both are set.
You can set custom RPC server URL by setting this env variables:
NEAR_MAINNET_RPC
NEAR_TESTNET_RPC
Clear them in case you want to get back to the default RPC server.
Example:
export NEAR_TESTNET_RPC=https://rpc.testnet.near.org
All keys are stored locally at the root of your HOME directory:
~/.near-credentials (MAC / Linux)C:\Users\YOUR_ACCOUNT\.near-credentials (Windows)Inside .near-credentials, access keys are organized in network subdirectories: testnet, and mainnet.
These network subdirectories contain .JSON objects with an:
account_idprivate_keypublic_keynear add-credentials <accountId>Stores credentials (full-access-key) locally for an already existing account.
accountId--seedPhrase or --secretKeyExamples:
near add-credentials example-acct.testnet --seedPhrase "antique attitude say evolve ring arrive hollow auto wide bronze usual unfold"
near add-keyAdds either a full access or function access key to a given account.
Optionally allows to sign with a Ledger:
--signWithLedger--ledgerPath
Note: You will use an existing full access key for the account you would like to add a new key to. (near login)
full access keyaccountId publicKeyExample:
near add-key example-acct.testnet Cxg2wgFYrdLTEkMu6j5D6aEZqTb3kXbmJygS48ZKbo1S
Adding full access key = Cxg2wgFYrdLTEkMu6j5D6aEZqTb3kXbmJygS48ZKbo1S to example-acct.testnet.
Transaction Id EwU1ooEvkR42HvGoJHu5ou3xLYT3JcgQwFV3fAwevGJg
To see the transaction in the transaction explorer, please open this url in your browser
https://testnet.nearblocks.io/txns/EwU1ooEvkR42HvGoJHu5ou3xLYT3JcgQwFV3fAwevGJg
function call keyaccountId publicKey --contract-id--method-names --allowance
accountIdis the account you are adding the key to
--contract-idis the contract you are allowing methods to be called on
--method-namesare optional and if omitted, all methods of the--contract-idcan be called.
--allowanceis the amount of Ⓝ the key is allowed to spend on gas fees only (default: 0).
Note: Each transaction made with this key will have gas fees deducted from the initial allowance and once it runs out a new key must be issued.
Example:
near add-key example-acct.testnet GkMNfc92fwM1AmwH1MTjF4b7UZuceamsq96XPkHsQ9vi --contract-id example-contract.testnet --method-names example_method --allowance 30000000000
Adding function call access key = GkMNfc92fwM1AmwH1MTjF4b7UZuceamsq96XPkHsQ9vi to example-acct.testnet.
Transaction Id H2BQL9fXVmdTbwkXcMFfZ7qhZqC8fFhsA8KDHFdT9q2r
To see the transaction in the transaction explorer, please open this url in your browser
https://testnet.nearblocks.io/txns/H2BQL9fXVmdTbwkXcMFfZ7qhZqC8fFhsA8KDHFdT9q2r
near delete-keyDeletes an existing key for a given account. Optionally allows to sign with a Ledger:
--signWithLedger--ledgerPath
accountId publicKey--networkId, forceNote: You will need separate full access key for the account you would like to delete a key from. (near login)
Example:
near delete-key example-acct.testnet Cxg2wgFYrdLTEkMu6j5D6aEZqTb3kXbmJygS48ZKbo1S
Transaction Id 4PwW7vjzTCno7W433nu4ieA6FvsAjp7zNFwicNLKjQFT
To see the transaction in the transaction explorer, please open this url in your browser
https://testnet.nearblocks.io/txns/4PwW7vjzTCno7W433nu4ieA6FvsAjp7zNFwicNLKjQFT
near generate-keyDisplays a key-pair and seed-phrase and optionally stores it locally in
.near-credentials.
accountId or none--fromSeedPhrase, --saveImplicit, --queryLedgerPKNote: There are several ways to use generate-key that return very different results. Please reference the examples below for further details.
near generate-keyCreates and displays a key pair
near generate-key
Seed phrase: antique attitude say evolve ring arrive hollow auto wide bronze usual unfold
Key pair: {"publicKey":"ed25519:BW5Q957u1rTATGpanKUktjVmixEmT56Df4Dt9hoGWEXz","secretKey":"ed25519:5StmPDg9xVNzpyudwxT8Y72iyRq7Fa86hcpsRk6Cq5eWGWqwsPbPT9woXbJs9Qe69crZJHh4DMkrGEPGDDfmXmy2"}
Implicit account: 9c07afc7673ea0f9a20c8a279e8bbe1dd1e283254263bb3b07403e4b6fd7a411
near generate-key --saveImplicitCreates and displays a key pair, saving it locally in
.near-credentialsas an implicit account.
near generate-key --saveImplicit
Seed phrase: antique attitude say evolve ring arrive hollow auto wide bronze usual unfold
Key pair: {"publicKey":"ed25519:BW5Q957u1rTATGpanKUktjVmixEmT56Df4Dt9hoGWEXz","secretKey":"ed25519:5StmPDg9xVNzpyudwxT8Y72iyRq7Fa86hcpsRk6Cq5eWGWqwsPbPT9woXbJs9Qe69crZJHh4DMkrGEPGDDfmXmy2"}
Implicit account: 9c07afc7673ea0f9a20c8a279e8bbe1dd1e283254263bb3b07403e4b6fd7a411
Storing credentials for account: 9d6e4506ac06ab66a25f6720e400ae26bad40ecbe07d49935e83c7bdba5034fa (network: testnet)
Saving key to '~/.near-credentials/testnet/9d6e4506ac06ab66a25f6720e400ae26bad40ecbe07d49935e83c7bdba5034fa.json'
near generate-key accountIdCreates a key pair locally in
.near-credentialswith anaccountIdthat you specify.
Note: This does NOT create an account with this name.
near generate-key example.testnet
Seed phrase: antique attitude say evolve ring arrive hollow auto wide bronze usual unfold
Key pair: {"publicKey":"ed25519:BW5Q957u1rTATGpanKUktjVmixEmT56Df4Dt9hoGWEXz","secretKey":"ed25519:5StmPDg9xVNzpyudwxT8Y72iyRq7Fa86hcpsRk6Cq5eWGWqwsPbPT9woXbJs9Qe69crZJHh4DMkrGEPGDDfmXmy2"}
Implicit account: 9c07afc7673ea0f9a20c8a279e8bbe1dd1e283254263bb3b07403e4b6fd7a411
Storing credentials for account: example.testnet (network: testnet)
Saving key to '~/.near-credentials/testnet/example.testnet.json'
near generate-key --fromSeedPhrase="your seed phrase"Uses a seed phrase to display a public key and implicit account
near generate-key --seedPhrase="antique attitude say evolve ring arrive hollow auto wide bronze usual unfold"
Seed phrase: antique attitude say evolve ring arrive hollow auto wide bronze usual unfold
Key pair: {"publicKey":"ed25519:BW5Q957u1rTATGpanKUktjVmixEmT56Df4Dt9hoGWEXz","secretKey":"ed25519:5StmPDg9xVNzpyudwxT8Y72iyRq7Fa86hcpsRk6Cq5eWGWqwsPbPT9woXbJs9Qe69crZJHh4DMkrGEPGDDfmXmy2"}
Implicit account: 9c07afc7673ea0f9a20c8a279e8bbe1dd1e283254263bb3b07403e4b6fd7a411
near generate-key accountId --seedPhrase="your seed phrase"Will store the key pair corresponding to the seedPhrase in .near-credentials with an accountId that you specify.
Seed phrase: antique attitude say evolve ring arrive hollow auto wide bronze usual unfold
Key pair: {"publicKey":"ed25519:BW5Q957u1rTATGpanKUktjVmixEmT56Df4Dt9hoGWEXz","secretKey":"ed25519:5StmPDg9xVNzpyudwxT8Y72iyRq7Fa86hcpsRk6Cq5eWGWqwsPbPT9woXbJs9Qe69crZJHh4DMkrGEPGDDfmXmy2"}
Implicit account: 9c07afc7673ea0f9a20c8a279e8bbe1dd1e283254263bb3b07403e4b6fd7a411
near generate-key --queryLedgerPKUses a connected Ledger device to display a public key and implicit account using the default HD path (
"44'/397'/0'/0'/1'")
near generate-key --queryLedgerPK
You should then see the following prompt to confirm this request on your Ledger device:
Make sure to connect your Ledger and open NEAR app Getting Public Key from Ledger...
After confirming the request on your Ledger device, a public key and implicit accountId will be displayed.
Using public key: ed25519:B22RP10g695wyeRvKIWv61NjmQZEkWTMzAYgdfx6oSeB2
Implicit account: 42c320xc20739fd9a6bqf2f89z61rd14efe5d3de234199bc771235a4bb8b0e1
near generate-key --queryLedgerPK --ledgerPath="HD path you specify"Uses a connected Ledger device to display a public key and implicit account using a custom HD path.
near generate-key --queryLedgerPK --ledgerPath="44'/397'/0'/0'/2'"
You should then see the following prompt to confirm this request on your Ledger device:
Make sure to connect your Ledger and open NEAR app
Waiting for confirmation on Ledger...
After confirming the request on your Ledger device, a public key and implicit accountId will be displayed.
Using public key: ed25519:B22RP10g695wye3dfa32rDjmQZEkWTMzAYgCX6oSeB2
Implicit account: 42c320xc20739ASD9a6bqf2Dsaf289z61rd14efe5d3de23213789009afDsd5bb8b0e1
near list-keysDisplays all access keys for a given account.
accountIdExample:
near list-keys client.chainlink.testnet
Keys for account client.chainlink.testnet
[
{
public_key: 'ed25519:4wrVrZbHrurMYgkcyusfvSJGLburmaw7m3gmCApxgvY4',
access_key: { nonce: 97, permission: 'FullAccess' }
},
{
public_key: 'ed25519:H9k5eiU4xXS3M4z8HzKJSLaZdqGdGwBG49o7orNC4eZW',
access_key: {
nonce: 88,
permission: {
FunctionCall: {
allowance: '18483247987345065500000000',
receiver_id: 'client.chainlink.testnet',
method_names: [ 'get_token_price', [length]: 1 ]
}
}
}
},
[length]: 2
]
near loginlocally stores a full access key of an account you created with MyNEARWallet.
none--networkIdExample:
near login
Custom wallet url:
Default wallet url is https://testnet.mynearwallet.com/. But if you want to change to a different wallet url, you can setup the environmental variable NEAR_MAINNET_WALLET or NEAR_TESTNET_WALLET.
export NEAR_TESTNET_WALLET=https://wallet.testnet.near.org/
near login
near create-accountCreates an account using an existing account or a faucet service to pay for the account's creation and initial balance.
accountId--initialBalance, --useFaucet, --useAccount, --seedPhrase, --publicKey, --signWithLedger, --ledgerPath, --useLedgerPK, --PkLedgerPathExamples::
# Creating account using `example-acct.testnet` to fund it
near create-account new-acc.testnet --useAccount example-acct.testnet
# Creating account using the faucet to fund it
near create-account new-acc.testnet --useFaucet
# Creating a pre-funded account that can be controlled by the Ledger's public key
near create-account new-acc.testnet --useFaucet --useLedgerPK
# Creating an account using a Ledger account
near create-account new-acc.testnet --useAccount ledger-acct.testnet --signWithLedger
Subaccount example:
# Using an account to create a sub-account
near create-account sub-acct.example-acct.testnet --useAccount example-acct.testnet
# Creating a sub-account using the Ledger that can also be controlled by the ledger
near create-account sub.acc.testnet --useAccount sub.acc.testnet --signWithLedger --useLedgerPK
Example using --initialBalance:
near create-account sub-acct2.example-acct.testnet --useAccount example-acct.testnet --initialBalance 10
Saving key to '/HOME_DIR/.near-credentials/default/sub-acct2.example-acct.testnet.json'
Account sub-acct2.example-acct.testnet for network "default" was created.
near delete-accountDeletes an account and transfers remaining balance to a beneficiary account.
accountId beneficiaryIdforce, --signWithLedger, --ledgerPathExample:
near delete-account sub-acct2.example-acct.testnet example-acct.testnet
Deleting account. Account id: sub-acct2.example-acct.testnet, node: https://rpc.testnet.near.org, helper: https://helper.testnet.near.org, beneficiary: example-acct.testnet
Transaction Id 4x8xohER1E3yxeYdXPfG8GvXin1ShiaroqE5GdCd5YxX
To see the transaction in the transaction explorer, please open this url in your browser
https://testnet.nearblocks.io/txns/4x8xohER1E3yxeYdXPfG8GvXin1ShiaroqE5GdCd5YxX
Account sub-acct2.example-acct.testnet for network "default" was deleted.
near send-nearSends NEAR tokens (Ⓝ) from one account to another.
senderId receiverId amount--signWithLedger, --ledgerPathNote: You will need a full access key for the sending account. (near login)
Example:
near send-near sender.testnet receiver.testnet 10
Sending 10 NEAR to receiver.testnet from sender.testnet
Transaction Id BYTr6WNyaEy2ykAiQB9P5VvTyrJcFk6Yw95HPhXC6KfN
To see the transaction in the transaction explorer, please open this url in your browser
https://testnet.nearblocks.io/txns/BYTr6WNyaEy2ykAiQB9P5VvTyrJcFk6Yw95HPhXC6KfN
near stateShows details of an account's state.
accountIdExample:
near state example.testnet
{
"amount": "99999999303364037168535000",
"locked": "0",
"code_hash": "G1PCjeQbvbUsJ8piXNb7Yg6dn3mfivDQN7QkvsVuMt4e",
"storage_usage": 53528,
"storage_paid_at": 0,
"block_height": 21577354,
"block_hash": "AWu1mrT3eMJLjqyhNHvMKrrbahN6DqcNxXanB5UH1RjB",
"formattedAmount": "99.999999303364037168535"
}
near callmakes a contract call which can modify or view state.
Note: Contract calls require a transaction fee (gas) so you will need an access key for the --accountId that will be charged. (near login)
contractName method_name { args } --accountId--gas --deposit --signWithLedger --ledgerPathExample:
near call guest-book.testnet addMessage '{"text": "Aloha"}' --account-id example-acct.testnet
Scheduling a call: guest-book.testnet.addMessage({"text": "Aloha"})
Transaction Id FY8hBam2iyQfdHkdR1dp6w5XEPJzJSosX1wUeVPyUvVK
To see the transaction in the transaction explorer, please open this url in your browser
https://testnet.nearblocks.io/txns/FY8hBam2iyQfdHkdR1dp6w5XEPJzJSosX1wUeVPyUvVK
''
near deployDeploys a smart contract to a given accountId.
accountId .wasmFileinitFunction initArgs initGas initDepositNote: You will need a full access key for the account you are deploying the contract to. (near login)
Example:
near deploy example-contract.testnet out/example.wasm
Initialize Example:
near deploy example-contract.testnet out/example.wasm --initFunction new --initArgs '{"owner_id": "example-contract.testnet", "total_supply": "10000000"}'
Starting deployment. Account id: example-contract.testnet, node: https://rpc.testnet.near.org, helper: https://helper.testnet.near.org, file: main.wasm
Transaction Id G8GhhPuujMHTRnwursPXE1Lv5iUZ8WUecwiST1PcKWMt
To see the transaction in the transaction explorer, please open this url in your browser
https://testnet.nearblocks.io/txns/G8GhhPuujMHTRnwursPXE1Lv5iUZ8WUecwiST1PcKWMt
Done deploying to example-contract.testnet
near storageShows the storage state of a given contract, i.e. the data stored in a contract.
contractName--finality, --utf8, --blockId, --prefixExample:
near storage hello.near-examples.testnet --finality optimistic --utf8
[ { key: 'STATE', value: '\x10\x00\x00\x00Passei por aqui!' } ]
near viewMakes a contract call which can only view state. (Call is free of charge)
contractName method_name { args }defaultExample:
near view guest-book.testnet getMessages '{}'
View call: guest-book.testnet.getMessages({})
[
{ premium: false, sender: 'waverlymaven.testnet', text: 'TGIF' },
{
premium: true,
sender: 'waverlymaven.testnet',
text: 'Hello from New York 🌈'
},
{ premium: false, sender: 'fhr.testnet', text: 'Hi' },
{ premium: true, sender: 'eugenethedream', text: 'test' },
{ premium: false, sender: 'dongri.testnet', text: 'test' },
{ premium: false, sender: 'dongri.testnet', text: 'hello' },
{ premium: true, sender: 'dongri.testnet', text: 'hey' },
{ premium: false, sender: 'hirokihori.testnet', text: 'hello' },
{ premium: true, sender: 'eugenethedream', text: 'hello' },
{ premium: false, sender: 'example-acct.testnet', text: 'Aloha' },
[length]: 10
]
near tx-statusQueries transaction status by hash and accountId.
txHash --accountIddefaultExample:
near tx-status FY8hBam2iyQfdHkdR1dp6w5XEPJzJSosX1wUeVPyUvVK --accountId guest-book.testnet
Transaction guest-book.testnet:FY8hBam2iyQfdHkdR1dp6w5XEPJzJSosX1wUeVPyUvVK
{
status: { SuccessValue: '' },
transaction: {
signer_id: 'example-acct.testnet',
public_key: 'ed25519:AXZZKnp6ZcWXyRNdy8FztYrniKf1qt6YZw6mCCReXrDB',
nonce: 20,
receiver_id: 'guest-book.testnet',
actions: [
{
FunctionCall: {
method_name: 'addMessage',
args: 'eyJ0ZXh0IjoiQWxvaGEifQ==',
gas: 300000000000000,
deposit: '0'
}
},
[length]: 1
],
signature: 'ed25519:5S6nZXPU72nzgAsTQLmAFfdVSykdKHWhtPMb5U7duacfPdUjrj8ipJxuRiWkZ4yDodvDNt92wcHLJxGLsyNEsZNB',
hash: 'FY8hBam2iyQfdHkdR1dp6w5XEPJzJSosX1wUeVPyUvVK'
},
transaction_outcome: {
proof: [ [length]: 0 ],
block_hash: '6nsjvzt6C52SSuJ8UvfaXTsdrUwcx8JtHfnUj8XjdKy1',
id: 'FY8hBam2iyQfdHkdR1dp6w5XEPJzJSosX1wUeVPyUvVK',
outcome: {
logs: [ [length]: 0 ],
receipt_ids: [ '7n6wjMgpoBTp22ScLHxeMLzcCvN8Vf5FUuC9PMmCX6yU', [length]: 1 ],
gas_burnt: 2427979134284,
tokens_burnt: '242797913428400000000',
executor_id: 'example-acct.testnet',
status: {
SuccessReceiptId: '7n6wjMgpoBTp22ScLHxeMLzcCvN8Vf5FUuC9PMmCX6yU'
}
}
},
receipts_outcome: [
{
proof: [ [length]: 0 ],
block_hash: 'At6QMrBuFQYgEPAh6fuRBmrTAe9hXTY1NzAB5VxTH1J2',
id: '7n6wjMgpoBTp22ScLHxeMLzcCvN8Vf5FUuC9PMmCX6yU',
outcome: {
logs: [ [length]: 0 ],
receipt_ids: [ 'FUttfoM2odAhKNQrJ8F4tiBpQJPYu66NzFbxRKii294e', [length]: 1 ],
gas_burnt: 3559403233496,
tokens_burnt: '355940323349600000000',
executor_id: 'guest-book.testnet',
status: { SuccessValue: '' }
}
},
{
proof: [ [length]: 0 ],
block_hash: 'J7KjpMPzAqE7iX82FAQT3qERDs6UR1EAqBLPJXBzoLCk',
id: 'FUttfoM2odAhKNQrJ8F4tiBpQJPYu66NzFbxRKii294e',
outcome: {
logs: [ [length]: 0 ],
receipt_ids: [ [length]: 0 ],
gas_burnt: 0,
tokens_burnt: '0',
executor_id: 'example-acct.testnet',
status: { SuccessValue: '' }
}
},
[length]: 2
]
}
| Option | Description |
|---|---|
--help | Show help [boolean] |
--version | Show version number [boolean] |
-v, --verbose | Prints out verbose output [boolean] [default: false] |
Got a question? Ask it on StackOverflow!
This repository is distributed under the terms of both the MIT license and the Apache License (Version 2.0). See LICENSE and LICENSE-APACHE for details.
FAQs
Simple CLI for interacting with NEAR Protocol
The npm package near-cli receives a total of 142 weekly downloads. As such, near-cli popularity was classified as not popular.
We found that near-cli demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.