# @proton/cli
XPR Network CLI
(opens new window) (opens new window) (opens new window) (opens new window)
# Installation
Install CLI (NPM)
npm i -g @proton/cli
Install CLI (Yarn)
yarn global add @proton/cli
If you get a missing write access error on Mac/Linux, first run:
sudo chown -R $USER /usr/local/lib/node_modules
sudo chown -R $USER /usr/local/bin
# Install NodeJS
You can skip this step if you already have NodeJS installed
1. Install NVM
MacOS/Linux/WSL:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
Windows 7/10/11:
Download nvm-setup.zip and run it here (opens new window). After installation, open a new PowerShell window as administrator.
2. Install NodeJS
nvm install 16
nvm use 16
# Usage
$ npm install -g @proton/cli
$ proton COMMAND
running command...
$ proton (--version)
@proton/cli/0.1.88 darwin-arm64 node-v16.18.0
$ proton --help [COMMAND]
USAGE
$ proton COMMAND
...
# Commands
- @proton/cli
- Installation
- Install NodeJS
- Usage
- Commands
proton account ACCOUNT
proton account:create ACCOUNT
proton action CONTRACT [ACTION] [DATA] [AUTHORIZATION]
proton block:get BLOCKNUMBER
proton boilerplate [FOLDER]
proton chain:get
proton chain:info
proton chain:list
proton chain:set [CHAIN]
proton contract:abi ACCOUNT
proton contract:clear ACCOUNT
proton contract:enableinline ACCOUNT
proton contract:set ACCOUNT SOURCE
proton encode:name ACCOUNT
proton encode:symbol SYMBOL PRECISION
proton faucet
proton faucet:claim SYMBOL AUTHORIZATION
proton generate:action
proton generate:contract CONTRACTNAME
proton generate:inlineaction ACTIONNAME
proton generate:table TABLENAME
proton help [COMMAND]
proton key:add [PRIVATEKEY]
proton key:generate
proton key:get PUBLICKEY
proton key:list
proton key:lock
proton key:remove [PRIVATEKEY]
proton key:reset
proton key:unlock [PASSWORD]
proton msig:approve PROPOSER PROPOSAL AUTH
proton msig:cancel PROPOSALNAME AUTH
proton msig:exec PROPOSER PROPOSAL AUTH
proton msig:propose PROPOSALNAME ACTIONS AUTH
proton network
proton permission ACCOUNT
proton permission:link ACCOUNT PERMISSION CONTRACT [ACTION]
proton permission:unlink ACCOUNT CONTRACT [ACTION]
proton psr URI
proton ram
proton ram:buy BUYER RECEIVER BYTES
proton rpc:accountsbyauthorizers AUTHORIZATIONS [KEYS]
proton scan ACCOUNT
proton table CONTRACT [TABLE] [SCOPE]
proton transaction JSON
proton transaction:get ID
proton transaction:push TRANSACTION
proton version
# proton account ACCOUNT
Get Account Information
USAGE
$ proton account [ACCOUNT] [-r] [-t]
FLAGS
-r, --raw
-t, --tokens Show token balances
DESCRIPTION
Get Account Information
See code: lib/commands/account/index.js (opens new window)
# proton account:create ACCOUNT
Create New Account
USAGE
$ proton account:create [ACCOUNT]
DESCRIPTION
Create New Account
See code: lib/commands/account/create.js (opens new window)
# proton action CONTRACT [ACTION] [DATA] [AUTHORIZATION]
Execute Action
USAGE
$ proton action [CONTRACT] [ACTION] [DATA] [AUTHORIZATION]
ARGUMENTS
CONTRACT
ACTION
DATA
AUTHORIZATION Account to authorize with
DESCRIPTION
Execute Action
See code: lib/commands/action/index.js (opens new window)
# proton block:get BLOCKNUMBER
Get Block
USAGE
$ proton block:get [BLOCKNUMBER]
DESCRIPTION
Get Block
See code: lib/commands/block/get.js (opens new window)
# proton boilerplate [FOLDER]
Boilerplate a new XPR Network Project with contract, frontend and tests
USAGE
$ proton boilerplate [FOLDER] [-h]
FLAGS
-h, --help show CLI help
DESCRIPTION
Boilerplate a new XPR Network Project with contract, frontend and tests
See code: lib/commands/boilerplate.js (opens new window)
# proton chain:get
Get Current Chain
USAGE
$ proton chain:get
DESCRIPTION
Get Current Chain
ALIASES
$ proton network
See code: lib/commands/chain/get.js (opens new window)
# proton chain:info
Get Chain Info
USAGE
$ proton chain:info
DESCRIPTION
Get Chain Info
See code: lib/commands/chain/info.js (opens new window)
# proton chain:list
All Networks
USAGE
$ proton chain:list
DESCRIPTION
All Networks
See code: lib/commands/chain/list.js (opens new window)
# proton chain:set [CHAIN]
Set Chain
USAGE
$ proton chain:set [CHAIN]
ARGUMENTS
CHAIN Specific chain
DESCRIPTION
Set Chain
See code: lib/commands/chain/set.js (opens new window)
# proton contract:abi ACCOUNT
Get Contract ABI
USAGE
$ proton contract:abi [ACCOUNT]
DESCRIPTION
Get Contract ABI
See code: lib/commands/contract/abi.js (opens new window)
# proton contract:clear ACCOUNT
Clean Contract
USAGE
$ proton contract:clear [ACCOUNT] [-a] [-w]
FLAGS
-a, --abiOnly Only remove ABI
-w, --wasmOnly Only remove WASM
DESCRIPTION
Clean Contract
See code: lib/commands/contract/clear.js (opens new window)
# proton contract:enableinline ACCOUNT
Enable Inline Actions on a Contract
USAGE
$ proton contract:enableinline [ACCOUNT] [-p <value>]
ARGUMENTS
ACCOUNT Contract account to enable
FLAGS
-p, --authorization=<value> Use a specific authorization other than contract@active
DESCRIPTION
Enable Inline Actions on a Contract
See code: lib/commands/contract/enableinline.js (opens new window)
# proton contract:set ACCOUNT SOURCE
Deploy Contract (WASM + ABI)
USAGE
$ proton contract:set [ACCOUNT] [SOURCE] [-c] [-a] [-w] [-s]
FLAGS
-a, --abiOnly Only deploy ABI
-c, --clear Removes WASM + ABI from contract
-s, --disableInline Disable inline actions on contract
-w, --wasmOnly Only deploy WASM
DESCRIPTION
Deploy Contract (WASM + ABI)
See code: lib/commands/contract/set.js (opens new window)
# proton encode:name ACCOUNT
Encode Name
USAGE
$ proton encode:name [ACCOUNT]
DESCRIPTION
Encode Name
See code: lib/commands/encode/name.js (opens new window)
# proton encode:symbol SYMBOL PRECISION
Encode Symbol
USAGE
$ proton encode:symbol [SYMBOL] [PRECISION]
DESCRIPTION
Encode Symbol
See code: lib/commands/encode/symbol.js (opens new window)
# proton faucet
List all faucets
USAGE
$ proton faucet
DESCRIPTION
List all faucets
See code: lib/commands/faucet/index.js (opens new window)
# proton faucet:claim SYMBOL AUTHORIZATION
Claim faucet
USAGE
$ proton faucet:claim [SYMBOL] [AUTHORIZATION]
ARGUMENTS
SYMBOL
AUTHORIZATION Authorization like account1@active
DESCRIPTION
Claim faucet
See code: lib/commands/faucet/claim.js (opens new window)
# proton generate:action
Add extra actions to the smart contract
USAGE
$ proton generate:action [-o <value>] [-c <value>]
FLAGS
-c, --contract=<value> The name of the contract for table. 1-12 chars, only lowercase a-z and numbers 1-5 are
possible
-o, --output=<value> The relative path to folder the the contract should be located. Current folder by default.
DESCRIPTION
Add extra actions to the smart contract
See code: lib/commands/generate/action.js (opens new window)
# proton generate:contract CONTRACTNAME
Create new smart contract
USAGE
$ proton generate:contract [CONTRACTNAME] [-o <value>]
ARGUMENTS
CONTRACTNAME The name of the contract. 1-12 chars, only lowercase a-z and numbers 1-5 are possible
FLAGS
-o, --output=<value> The relative path to folder the the contract should be located. Current folder by default.
DESCRIPTION
Create new smart contract
See code: lib/commands/generate/contract.js (opens new window)
# proton generate:inlineaction ACTIONNAME
Add inline action for the smart contract
USAGE
$ proton generate:inlineaction [ACTIONNAME] [-o <value>] [-c <value>]
ARGUMENTS
ACTIONNAME The name of the inline action's class.
FLAGS
-c, --contract=<value> The name of the contract for table. 1-12 chars, only lowercase a-z and numbers 1-5 are
possible
-o, --output=<value> The relative path to folder the the contract should be located. Current folder by default.
DESCRIPTION
Add inline action for the smart contract
See code: lib/commands/generate/inlineaction.js (opens new window)
# proton generate:table TABLENAME
Add table for the smart contract
USAGE
$ proton generate:table [TABLENAME] [-t <value>] [-s] [-o <value>] [-c <value>]
ARGUMENTS
TABLENAME The name of the contract's table. 1-12 chars, only lowercase a-z and numbers 1-5 are possible
FLAGS
-c, --contract=<value> The name of the contract for table. 1-12 chars, only lowercase a-z and numbers 1-5 are
possible
-o, --output=<value> The relative path to folder the the contract should be located. Current folder by default.
-s, --singleton Create a singleton table?
-t, --class=<value> The name of Typescript class for the table
DESCRIPTION
Add table for the smart contract
See code: lib/commands/generate/table.js (opens new window)
# proton help [COMMAND]
display help for proton
USAGE
$ proton help [COMMAND] [--all]
ARGUMENTS
COMMAND command to show help for
FLAGS
--all see all commands in CLI
DESCRIPTION
display help for proton
See code: @oclif/plugin-help (opens new window)
# proton key:add [PRIVATEKEY]
Manage Keys
USAGE
$ proton key:add [PRIVATEKEY]
DESCRIPTION
Manage Keys
See code: lib/commands/key/add.js (opens new window)
# proton key:generate
Generate Key
USAGE
$ proton key:generate
DESCRIPTION
Generate Key
See code: lib/commands/key/generate.js (opens new window)
# proton key:get PUBLICKEY
Find private key for public key
USAGE
$ proton key:get [PUBLICKEY]
DESCRIPTION
Find private key for public key
See code: lib/commands/key/get.js (opens new window)
# proton key:list
List All Key
USAGE
$ proton key:list
DESCRIPTION
List All Key
See code: lib/commands/key/list.js (opens new window)
# proton key:lock
Lock Keys with password
USAGE
$ proton key:lock
DESCRIPTION
Lock Keys with password
See code: lib/commands/key/lock.js (opens new window)
# proton key:remove [PRIVATEKEY]
Remove Key
USAGE
$ proton key:remove [PRIVATEKEY]
DESCRIPTION
Remove Key
See code: lib/commands/key/remove.js (opens new window)
# proton key:reset
Reset password (Caution: deletes all private keys stored)
USAGE
$ proton key:reset
DESCRIPTION
Reset password (Caution: deletes all private keys stored)
See code: lib/commands/key/reset.js (opens new window)
# proton key:unlock [PASSWORD]
Unlock all keys (Caution: Your keys will be stored in plaintext on disk)
USAGE
$ proton key:unlock [PASSWORD]
DESCRIPTION
Unlock all keys (Caution: Your keys will be stored in plaintext on disk)
See code: lib/commands/key/unlock.js (opens new window)
# proton msig:approve PROPOSER PROPOSAL AUTH
Multisig Approve
USAGE
$ proton msig:approve [PROPOSER] [PROPOSAL] [AUTH]
DESCRIPTION
Multisig Approve
See code: lib/commands/msig/approve.js (opens new window)
# proton msig:cancel PROPOSALNAME AUTH
Multisig Cancel
USAGE
$ proton msig:cancel [PROPOSALNAME] [AUTH]
DESCRIPTION
Multisig Cancel
See code: lib/commands/msig/cancel.js (opens new window)
# proton msig:exec PROPOSER PROPOSAL AUTH
Multisig Execute
USAGE
$ proton msig:exec [PROPOSER] [PROPOSAL] [AUTH]
DESCRIPTION
Multisig Execute
See code: lib/commands/msig/exec.js (opens new window)
# proton msig:propose PROPOSALNAME ACTIONS AUTH
Multisig Propose
USAGE
$ proton msig:propose [PROPOSALNAME] [ACTIONS] [AUTH] [-b <value>] [-x <value>]
FLAGS
-b, --blocksBehind=<value> [default: 30]
-x, --expireSeconds=<value> [default: 604800]
DESCRIPTION
Multisig Propose
See code: lib/commands/msig/propose.js (opens new window)
# proton network
Get Current Chain
USAGE
$ proton network
DESCRIPTION
Get Current Chain
ALIASES
$ proton network
# proton permission ACCOUNT
Update Permission
USAGE
$ proton permission [ACCOUNT]
ARGUMENTS
ACCOUNT Account to modify
DESCRIPTION
Update Permission
See code: lib/commands/permission/index.js (opens new window)
# proton permission:link ACCOUNT PERMISSION CONTRACT [ACTION]
Link Auth
USAGE
$ proton permission:link [ACCOUNT] [PERMISSION] [CONTRACT] [ACTION] [-p <value>]
FLAGS
-p, --permission=<value> Permission to sign with (e.g. account@active)
DESCRIPTION
Link Auth
See code: lib/commands/permission/link.js (opens new window)
# proton permission:unlink ACCOUNT CONTRACT [ACTION]
Unlink Auth
USAGE
$ proton permission:unlink [ACCOUNT] [CONTRACT] [ACTION] [-p <value>]
FLAGS
-p, --permission=<value>
DESCRIPTION
Unlink Auth
See code: lib/commands/permission/unlink.js (opens new window)
# proton psr URI
Create Session
USAGE
$ proton psr [URI]
DESCRIPTION
Create Session
See code: lib/commands/psr/index.js (opens new window)
# proton ram
List Ram price
USAGE
$ proton ram
DESCRIPTION
List Ram price
See code: lib/commands/ram/index.js (opens new window)
# proton ram:buy BUYER RECEIVER BYTES
Claim faucet
USAGE
$ proton ram:buy [BUYER] [RECEIVER] [BYTES] [-p <value>]
ARGUMENTS
BUYER Account paying for RAM
RECEIVER Account receiving RAM
BYTES Bytes of RAM to purchase
FLAGS
-p, --authorization=<value> Use a specific authorization other than buyer@active
DESCRIPTION
Claim faucet
See code: lib/commands/ram/buy.js (opens new window)
# proton rpc:accountsbyauthorizers AUTHORIZATIONS [KEYS]
Get Accounts by Authorization
USAGE
$ proton rpc:accountsbyauthorizers [AUTHORIZATIONS] [KEYS]
DESCRIPTION
Get Accounts by Authorization
See code: lib/commands/rpc/accountsbyauthorizers.js (opens new window)
# proton scan ACCOUNT
Open Account in Proton Scan
USAGE
$ proton scan [ACCOUNT]
DESCRIPTION
Open Account in Proton Scan
See code: lib/commands/scan/index.js (opens new window)
# proton table CONTRACT [TABLE] [SCOPE]
Get Table Storage Rows
USAGE
$ proton table [CONTRACT] [TABLE] [SCOPE] [-l <value>] [-u <value>] [-k <value>] [-r] [-p] [-c <value>]
[-i <value>]
FLAGS
-c, --limit=<value> [default: 100]
-i, --indexPosition=<value> [default: 1]
-k, --keyType=<value>
-l, --lowerBound=<value>
-p, --showPayer
-r, --reverse
-u, --upperBound=<value>
DESCRIPTION
Get Table Storage Rows
See code: lib/commands/table/index.js (opens new window)
# proton transaction JSON
Execute Transaction
USAGE
$ proton transaction [JSON]
DESCRIPTION
Execute Transaction
See code: lib/commands/transaction/index.js (opens new window)
# proton transaction:get ID
Get Transaction by Transaction ID
USAGE
$ proton transaction:get [ID]
DESCRIPTION
Get Transaction by Transaction ID
See code: lib/commands/transaction/get.js (opens new window)
# proton transaction:push TRANSACTION
Push Transaction
USAGE
$ proton transaction:push [TRANSACTION] [-u <value>]
FLAGS
-u, --endpoint=<value> Your RPC endpoint
DESCRIPTION
Push Transaction
See code: lib/commands/transaction/push.js (opens new window)
# proton version
Version of CLI
USAGE
$ proton version
DESCRIPTION
Version of CLI
← Escrow Deploy Token →