# @proton/cli

Proton CLI

oclif (opens new window) Version (opens new window) Downloads/week (opens new window) License (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.68 darwin-arm64 node-v16.14.0
$ proton --help [COMMAND]
USAGE
  $ proton COMMAND
...

# Commands

# 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 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 (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: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 DIRECTORY

Deploy Contract (WASM + ABI)

USAGE
  $ proton contract:set [ACCOUNT] [DIRECTORY] [-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 multisig:contract DIRECTORY

Multisig Contract

USAGE
  $ proton multisig:contract [DIRECTORY]

DESCRIPTION
  Multisig Contract

See code: lib/commands/multisig/contract.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)

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)

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]

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

See code: lib/commands/version.js (opens new window)