Proton CLI
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
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. After installation, open a new PowerShell window as administrator.
2. Install NodeJS
nvm install 16
nvm use 16
$ npm install -g @proton/cli
$ proton COMMAND
running command...
$ proton (--version)
@proton/cli/0.1.89 darwin-arm64 node-v16.18.0
$ proton --help [COMMAND]
USAGE
$ proton COMMAND
...
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
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
Create New Account
USAGE
$ proton account:create [ACCOUNT]
DESCRIPTION
Create New Account
See code: lib/commands/account/create.js
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
Get Block
USAGE
$ proton block:get [BLOCKNUMBER]
DESCRIPTION
Get Block
See code: lib/commands/block/get.js
Boilerplate a new Proton Project with contract, frontend and tests
USAGE
$ proton boilerplate [FOLDER] [-h]
FLAGS
-h, --help show CLI help
DESCRIPTION
Boilerplate a new Proton Project with contract, frontend and tests
See code: lib/commands/boilerplate.js
Get Current Chain
USAGE
$ proton chain:get
DESCRIPTION
Get Current Chain
ALIASES
$ proton network
See code: lib/commands/chain/get.js
Get Chain Info
USAGE
$ proton chain:info
DESCRIPTION
Get Chain Info
See code: lib/commands/chain/info.js
All Networks
USAGE
$ proton chain:list
DESCRIPTION
All Networks
See code: lib/commands/chain/list.js
Set Chain
USAGE
$ proton chain:set [CHAIN]
ARGUMENTS
CHAIN Specific chain
DESCRIPTION
Set Chain
See code: lib/commands/chain/set.js
Get Contract ABI
USAGE
$ proton contract:abi [ACCOUNT]
DESCRIPTION
Get Contract ABI
See code: lib/commands/contract/abi.js
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
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
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
Encode Name
USAGE
$ proton encode:name [ACCOUNT]
DESCRIPTION
Encode Name
See code: lib/commands/encode/name.js
Encode Symbol
USAGE
$ proton encode:symbol [SYMBOL] [PRECISION]
DESCRIPTION
Encode Symbol
See code: lib/commands/encode/symbol.js
List all faucets
USAGE
$ proton faucet
DESCRIPTION
List all faucets
See code: lib/commands/faucet/index.js
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
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
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
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
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
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
Manage Keys
USAGE
$ proton key:add [PRIVATEKEY]
DESCRIPTION
Manage Keys
See code: lib/commands/key/add.js
Generate Key
USAGE
$ proton key:generate
DESCRIPTION
Generate Key
See code: lib/commands/key/generate.js
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
List All Key
USAGE
$ proton key:list
DESCRIPTION
List All Key
See code: lib/commands/key/list.js
Lock Keys with password
USAGE
$ proton key:lock
DESCRIPTION
Lock Keys with password
See code: lib/commands/key/lock.js
Remove Key
USAGE
$ proton key:remove [PRIVATEKEY]
DESCRIPTION
Remove Key
See code: lib/commands/key/remove.js
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
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
Multisig Approve
USAGE
$ proton msig:approve [PROPOSER] [PROPOSAL] [AUTH]
DESCRIPTION
Multisig Approve
See code: lib/commands/msig/approve.js
Multisig Cancel
USAGE
$ proton msig:cancel [PROPOSALNAME] [AUTH]
DESCRIPTION
Multisig Cancel
See code: lib/commands/msig/cancel.js
Multisig Execute
USAGE
$ proton msig:exec [PROPOSER] [PROPOSAL] [AUTH]
DESCRIPTION
Multisig Execute
See code: lib/commands/msig/exec.js
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
Get Current Chain
USAGE
$ proton network
DESCRIPTION
Get Current Chain
ALIASES
$ proton network
Update Permission
USAGE
$ proton permission [ACCOUNT]
ARGUMENTS
ACCOUNT Account to modify
DESCRIPTION
Update Permission
See code: lib/commands/permission/index.js
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
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
Create Session
USAGE
$ proton psr [URI]
DESCRIPTION
Create Session
See code: lib/commands/psr/index.js
List Ram price
USAGE
$ proton ram
DESCRIPTION
List Ram price
See code: lib/commands/ram/index.js
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
Get Accounts by Authorization
USAGE
$ proton rpc:accountsbyauthorizers [AUTHORIZATIONS] [KEYS]
DESCRIPTION
Get Accounts by Authorization
See code: lib/commands/rpc/accountsbyauthorizers.js
Open Account in Proton Scan
USAGE
$ proton scan [ACCOUNT]
DESCRIPTION
Open Account in Proton Scan
See code: lib/commands/scan/index.js
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
Execute Transaction
USAGE
$ proton transaction [JSON]
DESCRIPTION
Execute Transaction
See code: lib/commands/transaction/index.js
Get Transaction by Transaction ID
USAGE
$ proton transaction:get [ID]
DESCRIPTION
Get Transaction by Transaction ID
See code: lib/commands/transaction/get.js
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
Version of CLI
USAGE
$ proton version
DESCRIPTION
Version of CLI
See code: lib/commands/version.js