Proton CLI
npm install @proton/cliProton CLI




* @proton/cli
* Installation
* Install NodeJS
* Usage
* Commands
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
`sh-session`
$ npm install -g @proton/cli
$ proton COMMAND
running command...
$ proton (--version)
@proton/cli/0.1.96 darwin-arm64 node-v23.11.0
$ proton --help [COMMAND]
USAGE
$ proton COMMAND
...
* proton account ACCOUNT
* proton account:create ACCOUNT
* [proton action CONTRACT [ACTION] [DATA] [AUTHORIZATION]](#proton-action-contract-action-data-authorization)proton block:get BLOCKNUMBER
* proton boilerplate [FOLDER]
* [](#proton-boilerplate-folder)proton chain:get
* proton chain:info
* proton chain:list
* proton chain:set [CHAIN]
* [](#proton-chainset-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 endpoint
* proton endpoint:default [ENDPOINT]
* [](#proton-endpointdefault-endpoint)proton endpoint:get
* proton endpoint:set [ENDPOINT]
* [](#proton-endpointset-endpoint)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-help-command)proton key:add [PRIVATEKEY]
* [](#proton-keyadd-privatekey)proton key:generate
* proton key:get PUBLICKEY
* proton key:list
* proton key:lock
* proton key:remove [PRIVATEKEY]
* [](#proton-keyremove-privatekey)proton key:reset
* proton key:unlock [PASSWORD]
* [](#proton-keyunlock-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-permissionlink-account-permission-contract-action)proton permission:unlink ACCOUNT CONTRACT [ACTION]
* [](#proton-permissionunlink-account-contract-action)proton psr URI
* proton ram
* proton ram:buy BUYER RECEIVER BYTES
* proton rpc:accountsbyauthorizers AUTHORIZATIONS [KEYS]
* [](#proton-rpcaccountsbyauthorizers-authorizations-keys)proton scan ACCOUNT
* proton table CONTRACT [TABLE] [SCOPE]
* [](#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
ARGUMENTS
ACCOUNT Contract account to enable
FLAGS
-p, --authorization=
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_
Get Current enpoint
`
USAGE
$ proton endpoint
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint
`
Restore default enpoint
`
USAGE
$ proton endpoint:default [ENDPOINT]
ARGUMENTS
ENDPOINT Restore default endpoints
DESCRIPTION
Restore default enpoint
`
_See code: lib/commands/endpoint/default.js_
Get Current enpoint
`
USAGE
$ proton endpoint:get
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint
`
_See code: lib/commands/endpoint/get.js_
Set current enpoint
`
USAGE
$ proton endpoint:set [ENDPOINT]
ARGUMENTS
ENDPOINT Specific endpoint
DESCRIPTION
Set current enpoint
`
_See code: lib/commands/endpoint/set.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
FLAGS
-c, --contract=
possible
-o, --output=
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
ARGUMENTS
CONTRACTNAME The name of the contract. 1-12 chars, only lowercase a-z and numbers 1-5 are possible
FLAGS
-o, --output=
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
ARGUMENTS
ACTIONNAME The name of the inline action's class.
FLAGS
-c, --contract=
possible
-o, --output=
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
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=
possible
-o, --output=
-s, --singleton Create a singleton table?
-t, --class=
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
FLAGS
-b, --blocksBehind=
-x, --expireSeconds=
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
FLAGS
-p, --permission=
DESCRIPTION
Link Auth
`
_See code: lib/commands/permission/link.js_
Unlink Auth
`
USAGE
$ proton permission:unlink [ACCOUNT] [CONTRACT] [ACTION] [-p
FLAGS
-p, --permission=
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_
Buy RAM for an account
`
USAGE
$ proton ram:buy [BUYER] [RECEIVER] [BYTES] [-p
ARGUMENTS
BUYER Account paying for RAM
RECEIVER Account receiving RAM
BYTES Number of bytes of RAM to purchase
FLAGS
-p, --authorization=
DESCRIPTION
Buy RAM for an account
EXAMPLES
$ proton ram:buy myaccount myaccount 10000
$ proton ram:buy payer receiver 50000 -p payer@active
`
_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
[-i
FLAGS
-c, --limit=
-i, --indexPosition=
-k, --keyType=
-l, --lowerBound=
-p, --showPayer
-r, --reverse
-u, --upperBound=
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
FLAGS
-u, --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_