Repository files navigation

@proton/cli

Proton CLI

oclifVersionDownloads/weekLicense

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. 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 COMMANDrunning command...
$ proton (--version)@proton/cli/0.1.98 darwin-arm64 node-v23.11.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

proton account:create ACCOUNT

Create New Account

USAGE
$ proton account:create [ACCOUNT]
DESCRIPTION
Create New Account

See code: lib/commands/account/create.js

proton account:create-funded ACCOUNT

Create a new account funded by an existing account (no email verification).

USAGE
$ proton account:create-funded [ACCOUNT] -c <value> [-h] [-k <value>] [-r <value>] [-o <value>]
ARGUMENTS
ACCOUNT New account name (4-12 chars, a-z and 1-5 only)
FLAGS
-c, --creator=<value> (required) Existing account that pays for and creates the new account
-h, --help show CLI help
-k, --key=<value> Public key for new account (PUB_K1_... format). Generates new key if omitted
-o, --owner=<value> Account to add as backup owner (can recover/rotate keys if agent key is lost)
-r, --ram=<value> [default: 3000] RAM bytes to purchase for new account (minimum 3000)
DESCRIPTION
Create a new account funded by an existing account (no email verification).
The creator account pays for RAM and signs the transaction.
CPU and NET bandwidth are delegated for free by the network.
Account naming rules:
- Must be 4-12 characters long
- Only lowercase letters a-z and digits 1-5 are allowed
- Periods (.) are allowed but the suffix must be owned by the creator
- Characters 0, 6, 7, 8, 9 are NOT allowed
- Examples: myaccount, agent11111, test.paul
Security:
Use --owner to add a backup account to the owner permission.
This allows the designated owner to recover or rotate keys
on the new account if the generated key is lost or compromised.
The owner permission threshold is set to 1, so either the key
or the owner account can act independently.
Cost: ~6-7 XPR per 3000 bytes of RAM (default).
The creator account must hold enough XPR to cover RAM costs.
EXAMPLES
$ proton account:create-funded myaccount --creator fundingacct
$ proton account:create-funded myaccount -c fundingacct --ram 8192
$ proton account:create-funded myaccount -c fundingacct -k PUB_K1_...
$ proton account:create-funded agentacct -c fundingacct --owner paul123

See code: lib/commands/account/create-funded.js

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

proton block:get BLOCKNUMBER

Get Block

USAGE
$ proton block:get [BLOCKNUMBER]
DESCRIPTION
Get Block

See code: lib/commands/block/get.js

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

proton chain:get

Get Current Chain

USAGE
$ proton chain:get
DESCRIPTION
Get Current Chain
ALIASES
$ proton network

See code: lib/commands/chain/get.js

proton chain:info

Get Chain Info

USAGE
$ proton chain:info
DESCRIPTION
Get Chain Info

See code: lib/commands/chain/info.js

proton chain:list

All Networks

USAGE
$ proton chain:list
DESCRIPTION
All Networks

See code: lib/commands/chain/list.js

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

proton contract:abi ACCOUNT

Get Contract ABI

USAGE
$ proton contract:abi [ACCOUNT]
DESCRIPTION
Get Contract ABI

See code: lib/commands/contract/abi.js

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

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

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

proton encode:name ACCOUNT

Encode Name

USAGE
$ proton encode:name [ACCOUNT]
DESCRIPTION
Encode Name

See code: lib/commands/encode/name.js

proton encode:symbol SYMBOL PRECISION

Encode Symbol

USAGE
$ proton encode:symbol [SYMBOL] [PRECISION]
DESCRIPTION
Encode Symbol

See code: lib/commands/encode/symbol.js

proton endpoint

Get Current enpoint

USAGE
$ proton endpoint
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

proton endpoint:default [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

proton endpoint:get

Get Current enpoint

USAGE
$ proton endpoint:get
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

See code: lib/commands/endpoint/get.js

proton endpoint:set [ENDPOINT]

Set current enpoint

USAGE
$ proton endpoint:set [ENDPOINT]
ARGUMENTS
ENDPOINT Specific endpoint
DESCRIPTION
Set current enpoint

See code: lib/commands/endpoint/set.js

proton faucet

List all faucets

USAGE
$ proton faucet
DESCRIPTION
List all faucets

See code: lib/commands/faucet/index.js

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

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

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

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

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

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

proton key:add [PRIVATEKEY]

Manage Keys

USAGE
$ proton key:add [PRIVATEKEY]
DESCRIPTION
Manage Keys

See code: lib/commands/key/add.js

proton key:generate

Generate Key

USAGE
$ proton key:generate
DESCRIPTION
Generate Key

See code: lib/commands/key/generate.js

proton key:get PUBLICKEY

Reveal the private key for a saved public key (gated by the reveal password if one is set)

USAGE
$ proton key:get [PUBLICKEY] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check. Intended for non-interactive scripts. Does NOT skip the reveal
password if one is set.
DESCRIPTION
Reveal the private key for a saved public key (gated by the reveal password if one is set)

See code: lib/commands/key/get.js

proton key:list

List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys (gated by the reveal password if one is set).

USAGE
$ proton key:list [-r] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check when used with --reveal-private. Intended for
non-interactive scripts. Does NOT skip the reveal password if one is set.
-r, --reveal-private Include private keys in the output (requires the reveal password if set, or a typed confirmation
otherwise)
DESCRIPTION
List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys
(gated by the reveal password if one is set).

See code: lib/commands/key/list.js

proton key:lock

Lock Keys with password

USAGE
$ proton key:lock
DESCRIPTION
Lock Keys with password

See code: lib/commands/key/lock.js

proton key:remove [PRIVATEKEY]

Remove Key

USAGE
$ proton key:remove [PRIVATEKEY]
DESCRIPTION
Remove Key

See code: lib/commands/key/remove.js

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

proton key:reveal-disable

Remove the reveal password (requires entering the current one)

USAGE
$ proton key:reveal-disable
DESCRIPTION
Remove the reveal password (requires entering the current one)

See code: lib/commands/key/reveal-disable.js

proton key:reveal-setup

Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

USAGE
$ proton key:reveal-setup
DESCRIPTION
Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

See code: lib/commands/key/reveal-setup.js

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

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

proton msig:cancel PROPOSALNAME AUTH

Multisig Cancel

USAGE
$ proton msig:cancel [PROPOSALNAME] [AUTH]
DESCRIPTION
Multisig Cancel

See code: lib/commands/msig/cancel.js

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

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

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

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

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

proton psr URI

Create Session

USAGE
$ proton psr [URI]
DESCRIPTION
Create Session

See code: lib/commands/psr/index.js

proton ram

List Ram price

USAGE
$ proton ram
DESCRIPTION
List Ram price

See code: lib/commands/ram/index.js

proton ram:buy BUYER RECEIVER BYTES

Buy RAM for an account

USAGE
$ proton ram:buy [BUYER] [RECEIVER] [BYTES] [-p <value>]
ARGUMENTS
BUYER Account paying for RAM
RECEIVER Account receiving RAM
BYTES Number of bytes of RAM to purchase
FLAGS
-p, --authorization=<value> Authorization to use (e.g., account@active). Defaults to buyer@active
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

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

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

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

proton transaction JSON

Execute Transaction

USAGE
$ proton transaction [JSON]
DESCRIPTION
Execute Transaction

See code: lib/commands/transaction/index.js

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

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

proton version

Version of CLI

USAGE
$ proton version
DESCRIPTION
Version of CLI

See code: lib/commands/version.js

About

Universal Command Line Interface for Proton

Resources

Stars

21 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

@proton/cli

Proton CLI

oclifVersionDownloads/weekLicense

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. 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 COMMANDrunning command...
$ proton (--version)@proton/cli/0.1.98 darwin-arm64 node-v23.11.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

proton account:create ACCOUNT

Create New Account

USAGE
$ proton account:create [ACCOUNT]
DESCRIPTION
Create New Account

See code: lib/commands/account/create.js

proton account:create-funded ACCOUNT

Create a new account funded by an existing account (no email verification).

USAGE
$ proton account:create-funded [ACCOUNT] -c <value> [-h] [-k <value>] [-r <value>] [-o <value>]
ARGUMENTS
ACCOUNT New account name (4-12 chars, a-z and 1-5 only)
FLAGS
-c, --creator=<value> (required) Existing account that pays for and creates the new account
-h, --help show CLI help
-k, --key=<value> Public key for new account (PUB_K1_... format). Generates new key if omitted
-o, --owner=<value> Account to add as backup owner (can recover/rotate keys if agent key is lost)
-r, --ram=<value> [default: 3000] RAM bytes to purchase for new account (minimum 3000)
DESCRIPTION
Create a new account funded by an existing account (no email verification).
The creator account pays for RAM and signs the transaction.
CPU and NET bandwidth are delegated for free by the network.
Account naming rules:
- Must be 4-12 characters long
- Only lowercase letters a-z and digits 1-5 are allowed
- Periods (.) are allowed but the suffix must be owned by the creator
- Characters 0, 6, 7, 8, 9 are NOT allowed
- Examples: myaccount, agent11111, test.paul
Security:
Use --owner to add a backup account to the owner permission.
This allows the designated owner to recover or rotate keys
on the new account if the generated key is lost or compromised.
The owner permission threshold is set to 1, so either the key
or the owner account can act independently.
Cost: ~6-7 XPR per 3000 bytes of RAM (default).
The creator account must hold enough XPR to cover RAM costs.
EXAMPLES
$ proton account:create-funded myaccount --creator fundingacct
$ proton account:create-funded myaccount -c fundingacct --ram 8192
$ proton account:create-funded myaccount -c fundingacct -k PUB_K1_...
$ proton account:create-funded agentacct -c fundingacct --owner paul123

See code: lib/commands/account/create-funded.js

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

proton block:get BLOCKNUMBER

Get Block

USAGE
$ proton block:get [BLOCKNUMBER]
DESCRIPTION
Get Block

See code: lib/commands/block/get.js

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

proton chain:get

Get Current Chain

USAGE
$ proton chain:get
DESCRIPTION
Get Current Chain
ALIASES
$ proton network

See code: lib/commands/chain/get.js

proton chain:info

Get Chain Info

USAGE
$ proton chain:info
DESCRIPTION
Get Chain Info

See code: lib/commands/chain/info.js

proton chain:list

All Networks

USAGE
$ proton chain:list
DESCRIPTION
All Networks

See code: lib/commands/chain/list.js

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

proton contract:abi ACCOUNT

Get Contract ABI

USAGE
$ proton contract:abi [ACCOUNT]
DESCRIPTION
Get Contract ABI

See code: lib/commands/contract/abi.js

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

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

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

proton encode:name ACCOUNT

Encode Name

USAGE
$ proton encode:name [ACCOUNT]
DESCRIPTION
Encode Name

See code: lib/commands/encode/name.js

proton encode:symbol SYMBOL PRECISION

Encode Symbol

USAGE
$ proton encode:symbol [SYMBOL] [PRECISION]
DESCRIPTION
Encode Symbol

See code: lib/commands/encode/symbol.js

proton endpoint

Get Current enpoint

USAGE
$ proton endpoint
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

proton endpoint:default [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

proton endpoint:get

Get Current enpoint

USAGE
$ proton endpoint:get
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

See code: lib/commands/endpoint/get.js

proton endpoint:set [ENDPOINT]

Set current enpoint

USAGE
$ proton endpoint:set [ENDPOINT]
ARGUMENTS
ENDPOINT Specific endpoint
DESCRIPTION
Set current enpoint

See code: lib/commands/endpoint/set.js

proton faucet

List all faucets

USAGE
$ proton faucet
DESCRIPTION
List all faucets

See code: lib/commands/faucet/index.js

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

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

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

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

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

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

proton key:add [PRIVATEKEY]

Manage Keys

USAGE
$ proton key:add [PRIVATEKEY]
DESCRIPTION
Manage Keys

See code: lib/commands/key/add.js

proton key:generate

Generate Key

USAGE
$ proton key:generate
DESCRIPTION
Generate Key

See code: lib/commands/key/generate.js

proton key:get PUBLICKEY

Reveal the private key for a saved public key (gated by the reveal password if one is set)

USAGE
$ proton key:get [PUBLICKEY] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check. Intended for non-interactive scripts. Does NOT skip the reveal
password if one is set.
DESCRIPTION
Reveal the private key for a saved public key (gated by the reveal password if one is set)

See code: lib/commands/key/get.js

proton key:list

List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys (gated by the reveal password if one is set).

USAGE
$ proton key:list [-r] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check when used with --reveal-private. Intended for
non-interactive scripts. Does NOT skip the reveal password if one is set.
-r, --reveal-private Include private keys in the output (requires the reveal password if set, or a typed confirmation
otherwise)
DESCRIPTION
List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys
(gated by the reveal password if one is set).

See code: lib/commands/key/list.js

proton key:lock

Lock Keys with password

USAGE
$ proton key:lock
DESCRIPTION
Lock Keys with password

See code: lib/commands/key/lock.js

proton key:remove [PRIVATEKEY]

Remove Key

USAGE
$ proton key:remove [PRIVATEKEY]
DESCRIPTION
Remove Key

See code: lib/commands/key/remove.js

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

proton key:reveal-disable

Remove the reveal password (requires entering the current one)

USAGE
$ proton key:reveal-disable
DESCRIPTION
Remove the reveal password (requires entering the current one)

See code: lib/commands/key/reveal-disable.js

proton key:reveal-setup

Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

USAGE
$ proton key:reveal-setup
DESCRIPTION
Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

See code: lib/commands/key/reveal-setup.js

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

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

proton msig:cancel PROPOSALNAME AUTH

Multisig Cancel

USAGE
$ proton msig:cancel [PROPOSALNAME] [AUTH]
DESCRIPTION
Multisig Cancel

See code: lib/commands/msig/cancel.js

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

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

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

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

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

proton psr URI

Create Session

USAGE
$ proton psr [URI]
DESCRIPTION
Create Session

See code: lib/commands/psr/index.js

proton ram

List Ram price

USAGE
$ proton ram
DESCRIPTION
List Ram price

See code: lib/commands/ram/index.js

proton ram:buy BUYER RECEIVER BYTES

Buy RAM for an account

USAGE
$ proton ram:buy [BUYER] [RECEIVER] [BYTES] [-p <value>]
ARGUMENTS
BUYER Account paying for RAM
RECEIVER Account receiving RAM
BYTES Number of bytes of RAM to purchase
FLAGS
-p, --authorization=<value> Authorization to use (e.g., account@active). Defaults to buyer@active
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

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

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

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

proton transaction JSON

Execute Transaction

USAGE
$ proton transaction [JSON]
DESCRIPTION
Execute Transaction

See code: lib/commands/transaction/index.js

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

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

proton version

Version of CLI

USAGE
$ proton version
DESCRIPTION
Version of CLI

See code: lib/commands/version.js

About

Universal Command Line Interface for Proton

Resources

Stars

21 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

@proton/cli

Proton CLI

oclifVersionDownloads/weekLicense

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. 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 COMMANDrunning command...
$ proton (--version)@proton/cli/0.1.98 darwin-arm64 node-v23.11.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

proton account:create ACCOUNT

Create New Account

USAGE
$ proton account:create [ACCOUNT]
DESCRIPTION
Create New Account

See code: lib/commands/account/create.js

proton account:create-funded ACCOUNT

Create a new account funded by an existing account (no email verification).

USAGE
$ proton account:create-funded [ACCOUNT] -c <value> [-h] [-k <value>] [-r <value>] [-o <value>]
ARGUMENTS
ACCOUNT New account name (4-12 chars, a-z and 1-5 only)
FLAGS
-c, --creator=<value> (required) Existing account that pays for and creates the new account
-h, --help show CLI help
-k, --key=<value> Public key for new account (PUB_K1_... format). Generates new key if omitted
-o, --owner=<value> Account to add as backup owner (can recover/rotate keys if agent key is lost)
-r, --ram=<value> [default: 3000] RAM bytes to purchase for new account (minimum 3000)
DESCRIPTION
Create a new account funded by an existing account (no email verification).
The creator account pays for RAM and signs the transaction.
CPU and NET bandwidth are delegated for free by the network.
Account naming rules:
- Must be 4-12 characters long
- Only lowercase letters a-z and digits 1-5 are allowed
- Periods (.) are allowed but the suffix must be owned by the creator
- Characters 0, 6, 7, 8, 9 are NOT allowed
- Examples: myaccount, agent11111, test.paul
Security:
Use --owner to add a backup account to the owner permission.
This allows the designated owner to recover or rotate keys
on the new account if the generated key is lost or compromised.
The owner permission threshold is set to 1, so either the key
or the owner account can act independently.
Cost: ~6-7 XPR per 3000 bytes of RAM (default).
The creator account must hold enough XPR to cover RAM costs.
EXAMPLES
$ proton account:create-funded myaccount --creator fundingacct
$ proton account:create-funded myaccount -c fundingacct --ram 8192
$ proton account:create-funded myaccount -c fundingacct -k PUB_K1_...
$ proton account:create-funded agentacct -c fundingacct --owner paul123

See code: lib/commands/account/create-funded.js

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

proton block:get BLOCKNUMBER

Get Block

USAGE
$ proton block:get [BLOCKNUMBER]
DESCRIPTION
Get Block

See code: lib/commands/block/get.js

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

proton chain:get

Get Current Chain

USAGE
$ proton chain:get
DESCRIPTION
Get Current Chain
ALIASES
$ proton network

See code: lib/commands/chain/get.js

proton chain:info

Get Chain Info

USAGE
$ proton chain:info
DESCRIPTION
Get Chain Info

See code: lib/commands/chain/info.js

proton chain:list

All Networks

USAGE
$ proton chain:list
DESCRIPTION
All Networks

See code: lib/commands/chain/list.js

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

proton contract:abi ACCOUNT

Get Contract ABI

USAGE
$ proton contract:abi [ACCOUNT]
DESCRIPTION
Get Contract ABI

See code: lib/commands/contract/abi.js

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

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

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

proton encode:name ACCOUNT

Encode Name

USAGE
$ proton encode:name [ACCOUNT]
DESCRIPTION
Encode Name

See code: lib/commands/encode/name.js

proton encode:symbol SYMBOL PRECISION

Encode Symbol

USAGE
$ proton encode:symbol [SYMBOL] [PRECISION]
DESCRIPTION
Encode Symbol

See code: lib/commands/encode/symbol.js

proton endpoint

Get Current enpoint

USAGE
$ proton endpoint
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

proton endpoint:default [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

proton endpoint:get

Get Current enpoint

USAGE
$ proton endpoint:get
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

See code: lib/commands/endpoint/get.js

proton endpoint:set [ENDPOINT]

Set current enpoint

USAGE
$ proton endpoint:set [ENDPOINT]
ARGUMENTS
ENDPOINT Specific endpoint
DESCRIPTION
Set current enpoint

See code: lib/commands/endpoint/set.js

proton faucet

List all faucets

USAGE
$ proton faucet
DESCRIPTION
List all faucets

See code: lib/commands/faucet/index.js

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

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

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

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

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

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

proton key:add [PRIVATEKEY]

Manage Keys

USAGE
$ proton key:add [PRIVATEKEY]
DESCRIPTION
Manage Keys

See code: lib/commands/key/add.js

proton key:generate

Generate Key

USAGE
$ proton key:generate
DESCRIPTION
Generate Key

See code: lib/commands/key/generate.js

proton key:get PUBLICKEY

Reveal the private key for a saved public key (gated by the reveal password if one is set)

USAGE
$ proton key:get [PUBLICKEY] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check. Intended for non-interactive scripts. Does NOT skip the reveal
password if one is set.
DESCRIPTION
Reveal the private key for a saved public key (gated by the reveal password if one is set)

See code: lib/commands/key/get.js

proton key:list

List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys (gated by the reveal password if one is set).

USAGE
$ proton key:list [-r] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check when used with --reveal-private. Intended for
non-interactive scripts. Does NOT skip the reveal password if one is set.
-r, --reveal-private Include private keys in the output (requires the reveal password if set, or a typed confirmation
otherwise)
DESCRIPTION
List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys
(gated by the reveal password if one is set).

See code: lib/commands/key/list.js

proton key:lock

Lock Keys with password

USAGE
$ proton key:lock
DESCRIPTION
Lock Keys with password

See code: lib/commands/key/lock.js

proton key:remove [PRIVATEKEY]

Remove Key

USAGE
$ proton key:remove [PRIVATEKEY]
DESCRIPTION
Remove Key

See code: lib/commands/key/remove.js

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

proton key:reveal-disable

Remove the reveal password (requires entering the current one)

USAGE
$ proton key:reveal-disable
DESCRIPTION
Remove the reveal password (requires entering the current one)

See code: lib/commands/key/reveal-disable.js

proton key:reveal-setup

Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

USAGE
$ proton key:reveal-setup
DESCRIPTION
Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

See code: lib/commands/key/reveal-setup.js

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

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

proton msig:cancel PROPOSALNAME AUTH

Multisig Cancel

USAGE
$ proton msig:cancel [PROPOSALNAME] [AUTH]
DESCRIPTION
Multisig Cancel

See code: lib/commands/msig/cancel.js

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

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

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

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

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

proton psr URI

Create Session

USAGE
$ proton psr [URI]
DESCRIPTION
Create Session

See code: lib/commands/psr/index.js

proton ram

List Ram price

USAGE
$ proton ram
DESCRIPTION
List Ram price

See code: lib/commands/ram/index.js

proton ram:buy BUYER RECEIVER BYTES

Buy RAM for an account

USAGE
$ proton ram:buy [BUYER] [RECEIVER] [BYTES] [-p <value>]
ARGUMENTS
BUYER Account paying for RAM
RECEIVER Account receiving RAM
BYTES Number of bytes of RAM to purchase
FLAGS
-p, --authorization=<value> Authorization to use (e.g., account@active). Defaults to buyer@active
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

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

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

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

proton transaction JSON

Execute Transaction

USAGE
$ proton transaction [JSON]
DESCRIPTION
Execute Transaction

See code: lib/commands/transaction/index.js

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

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

proton version

Version of CLI

USAGE
$ proton version
DESCRIPTION
Version of CLI

See code: lib/commands/version.js

About

Universal Command Line Interface for Proton

Resources

Stars

21 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

@proton/cli

Proton CLI

oclifVersionDownloads/weekLicense

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. 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 COMMANDrunning command...
$ proton (--version)@proton/cli/0.1.98 darwin-arm64 node-v23.11.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

proton account:create ACCOUNT

Create New Account

USAGE
$ proton account:create [ACCOUNT]
DESCRIPTION
Create New Account

See code: lib/commands/account/create.js

proton account:create-funded ACCOUNT

Create a new account funded by an existing account (no email verification).

USAGE
$ proton account:create-funded [ACCOUNT] -c <value> [-h] [-k <value>] [-r <value>] [-o <value>]
ARGUMENTS
ACCOUNT New account name (4-12 chars, a-z and 1-5 only)
FLAGS
-c, --creator=<value> (required) Existing account that pays for and creates the new account
-h, --help show CLI help
-k, --key=<value> Public key for new account (PUB_K1_... format). Generates new key if omitted
-o, --owner=<value> Account to add as backup owner (can recover/rotate keys if agent key is lost)
-r, --ram=<value> [default: 3000] RAM bytes to purchase for new account (minimum 3000)
DESCRIPTION
Create a new account funded by an existing account (no email verification).
The creator account pays for RAM and signs the transaction.
CPU and NET bandwidth are delegated for free by the network.
Account naming rules:
- Must be 4-12 characters long
- Only lowercase letters a-z and digits 1-5 are allowed
- Periods (.) are allowed but the suffix must be owned by the creator
- Characters 0, 6, 7, 8, 9 are NOT allowed
- Examples: myaccount, agent11111, test.paul
Security:
Use --owner to add a backup account to the owner permission.
This allows the designated owner to recover or rotate keys
on the new account if the generated key is lost or compromised.
The owner permission threshold is set to 1, so either the key
or the owner account can act independently.
Cost: ~6-7 XPR per 3000 bytes of RAM (default).
The creator account must hold enough XPR to cover RAM costs.
EXAMPLES
$ proton account:create-funded myaccount --creator fundingacct
$ proton account:create-funded myaccount -c fundingacct --ram 8192
$ proton account:create-funded myaccount -c fundingacct -k PUB_K1_...
$ proton account:create-funded agentacct -c fundingacct --owner paul123

See code: lib/commands/account/create-funded.js

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

proton block:get BLOCKNUMBER

Get Block

USAGE
$ proton block:get [BLOCKNUMBER]
DESCRIPTION
Get Block

See code: lib/commands/block/get.js

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

proton chain:get

Get Current Chain

USAGE
$ proton chain:get
DESCRIPTION
Get Current Chain
ALIASES
$ proton network

See code: lib/commands/chain/get.js

proton chain:info

Get Chain Info

USAGE
$ proton chain:info
DESCRIPTION
Get Chain Info

See code: lib/commands/chain/info.js

proton chain:list

All Networks

USAGE
$ proton chain:list
DESCRIPTION
All Networks

See code: lib/commands/chain/list.js

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

proton contract:abi ACCOUNT

Get Contract ABI

USAGE
$ proton contract:abi [ACCOUNT]
DESCRIPTION
Get Contract ABI

See code: lib/commands/contract/abi.js

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

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

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

proton encode:name ACCOUNT

Encode Name

USAGE
$ proton encode:name [ACCOUNT]
DESCRIPTION
Encode Name

See code: lib/commands/encode/name.js

proton encode:symbol SYMBOL PRECISION

Encode Symbol

USAGE
$ proton encode:symbol [SYMBOL] [PRECISION]
DESCRIPTION
Encode Symbol

See code: lib/commands/encode/symbol.js

proton endpoint

Get Current enpoint

USAGE
$ proton endpoint
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

proton endpoint:default [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

proton endpoint:get

Get Current enpoint

USAGE
$ proton endpoint:get
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

See code: lib/commands/endpoint/get.js

proton endpoint:set [ENDPOINT]

Set current enpoint

USAGE
$ proton endpoint:set [ENDPOINT]
ARGUMENTS
ENDPOINT Specific endpoint
DESCRIPTION
Set current enpoint

See code: lib/commands/endpoint/set.js

proton faucet

List all faucets

USAGE
$ proton faucet
DESCRIPTION
List all faucets

See code: lib/commands/faucet/index.js

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

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

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

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

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

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

proton key:add [PRIVATEKEY]

Manage Keys

USAGE
$ proton key:add [PRIVATEKEY]
DESCRIPTION
Manage Keys

See code: lib/commands/key/add.js

proton key:generate

Generate Key

USAGE
$ proton key:generate
DESCRIPTION
Generate Key

See code: lib/commands/key/generate.js

proton key:get PUBLICKEY

Reveal the private key for a saved public key (gated by the reveal password if one is set)

USAGE
$ proton key:get [PUBLICKEY] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check. Intended for non-interactive scripts. Does NOT skip the reveal
password if one is set.
DESCRIPTION
Reveal the private key for a saved public key (gated by the reveal password if one is set)

See code: lib/commands/key/get.js

proton key:list

List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys (gated by the reveal password if one is set).

USAGE
$ proton key:list [-r] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check when used with --reveal-private. Intended for
non-interactive scripts. Does NOT skip the reveal password if one is set.
-r, --reveal-private Include private keys in the output (requires the reveal password if set, or a typed confirmation
otherwise)
DESCRIPTION
List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys
(gated by the reveal password if one is set).

See code: lib/commands/key/list.js

proton key:lock

Lock Keys with password

USAGE
$ proton key:lock
DESCRIPTION
Lock Keys with password

See code: lib/commands/key/lock.js

proton key:remove [PRIVATEKEY]

Remove Key

USAGE
$ proton key:remove [PRIVATEKEY]
DESCRIPTION
Remove Key

See code: lib/commands/key/remove.js

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

proton key:reveal-disable

Remove the reveal password (requires entering the current one)

USAGE
$ proton key:reveal-disable
DESCRIPTION
Remove the reveal password (requires entering the current one)

See code: lib/commands/key/reveal-disable.js

proton key:reveal-setup

Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

USAGE
$ proton key:reveal-setup
DESCRIPTION
Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

See code: lib/commands/key/reveal-setup.js

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

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

proton msig:cancel PROPOSALNAME AUTH

Multisig Cancel

USAGE
$ proton msig:cancel [PROPOSALNAME] [AUTH]
DESCRIPTION
Multisig Cancel

See code: lib/commands/msig/cancel.js

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

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

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

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

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

proton psr URI

Create Session

USAGE
$ proton psr [URI]
DESCRIPTION
Create Session

See code: lib/commands/psr/index.js

proton ram

List Ram price

USAGE
$ proton ram
DESCRIPTION
List Ram price

See code: lib/commands/ram/index.js

proton ram:buy BUYER RECEIVER BYTES

Buy RAM for an account

USAGE
$ proton ram:buy [BUYER] [RECEIVER] [BYTES] [-p <value>]
ARGUMENTS
BUYER Account paying for RAM
RECEIVER Account receiving RAM
BYTES Number of bytes of RAM to purchase
FLAGS
-p, --authorization=<value> Authorization to use (e.g., account@active). Defaults to buyer@active
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

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

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

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

proton transaction JSON

Execute Transaction

USAGE
$ proton transaction [JSON]
DESCRIPTION
Execute Transaction

See code: lib/commands/transaction/index.js

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

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

proton version

Version of CLI

USAGE
$ proton version
DESCRIPTION
Version of CLI

See code: lib/commands/version.js

About

Universal Command Line Interface for Proton

Resources

Stars

21 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

@proton/cli

Proton CLI

oclifVersionDownloads/weekLicense

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. 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 COMMANDrunning command...
$ proton (--version)@proton/cli/0.1.98 darwin-arm64 node-v23.11.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

proton account:create ACCOUNT

Create New Account

USAGE
$ proton account:create [ACCOUNT]
DESCRIPTION
Create New Account

See code: lib/commands/account/create.js

proton account:create-funded ACCOUNT

Create a new account funded by an existing account (no email verification).

USAGE
$ proton account:create-funded [ACCOUNT] -c <value> [-h] [-k <value>] [-r <value>] [-o <value>]
ARGUMENTS
ACCOUNT New account name (4-12 chars, a-z and 1-5 only)
FLAGS
-c, --creator=<value> (required) Existing account that pays for and creates the new account
-h, --help show CLI help
-k, --key=<value> Public key for new account (PUB_K1_... format). Generates new key if omitted
-o, --owner=<value> Account to add as backup owner (can recover/rotate keys if agent key is lost)
-r, --ram=<value> [default: 3000] RAM bytes to purchase for new account (minimum 3000)
DESCRIPTION
Create a new account funded by an existing account (no email verification).
The creator account pays for RAM and signs the transaction.
CPU and NET bandwidth are delegated for free by the network.
Account naming rules:
- Must be 4-12 characters long
- Only lowercase letters a-z and digits 1-5 are allowed
- Periods (.) are allowed but the suffix must be owned by the creator
- Characters 0, 6, 7, 8, 9 are NOT allowed
- Examples: myaccount, agent11111, test.paul
Security:
Use --owner to add a backup account to the owner permission.
This allows the designated owner to recover or rotate keys
on the new account if the generated key is lost or compromised.
The owner permission threshold is set to 1, so either the key
or the owner account can act independently.
Cost: ~6-7 XPR per 3000 bytes of RAM (default).
The creator account must hold enough XPR to cover RAM costs.
EXAMPLES
$ proton account:create-funded myaccount --creator fundingacct
$ proton account:create-funded myaccount -c fundingacct --ram 8192
$ proton account:create-funded myaccount -c fundingacct -k PUB_K1_...
$ proton account:create-funded agentacct -c fundingacct --owner paul123

See code: lib/commands/account/create-funded.js

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

proton block:get BLOCKNUMBER

Get Block

USAGE
$ proton block:get [BLOCKNUMBER]
DESCRIPTION
Get Block

See code: lib/commands/block/get.js

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

proton chain:get

Get Current Chain

USAGE
$ proton chain:get
DESCRIPTION
Get Current Chain
ALIASES
$ proton network

See code: lib/commands/chain/get.js

proton chain:info

Get Chain Info

USAGE
$ proton chain:info
DESCRIPTION
Get Chain Info

See code: lib/commands/chain/info.js

proton chain:list

All Networks

USAGE
$ proton chain:list
DESCRIPTION
All Networks

See code: lib/commands/chain/list.js

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

proton contract:abi ACCOUNT

Get Contract ABI

USAGE
$ proton contract:abi [ACCOUNT]
DESCRIPTION
Get Contract ABI

See code: lib/commands/contract/abi.js

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

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

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

proton encode:name ACCOUNT

Encode Name

USAGE
$ proton encode:name [ACCOUNT]
DESCRIPTION
Encode Name

See code: lib/commands/encode/name.js

proton encode:symbol SYMBOL PRECISION

Encode Symbol

USAGE
$ proton encode:symbol [SYMBOL] [PRECISION]
DESCRIPTION
Encode Symbol

See code: lib/commands/encode/symbol.js

proton endpoint

Get Current enpoint

USAGE
$ proton endpoint
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

proton endpoint:default [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

proton endpoint:get

Get Current enpoint

USAGE
$ proton endpoint:get
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

See code: lib/commands/endpoint/get.js

proton endpoint:set [ENDPOINT]

Set current enpoint

USAGE
$ proton endpoint:set [ENDPOINT]
ARGUMENTS
ENDPOINT Specific endpoint
DESCRIPTION
Set current enpoint

See code: lib/commands/endpoint/set.js

proton faucet

List all faucets

USAGE
$ proton faucet
DESCRIPTION
List all faucets

See code: lib/commands/faucet/index.js

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

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

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

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

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

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

proton key:add [PRIVATEKEY]

Manage Keys

USAGE
$ proton key:add [PRIVATEKEY]
DESCRIPTION
Manage Keys

See code: lib/commands/key/add.js

proton key:generate

Generate Key

USAGE
$ proton key:generate
DESCRIPTION
Generate Key

See code: lib/commands/key/generate.js

proton key:get PUBLICKEY

Reveal the private key for a saved public key (gated by the reveal password if one is set)

USAGE
$ proton key:get [PUBLICKEY] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check. Intended for non-interactive scripts. Does NOT skip the reveal
password if one is set.
DESCRIPTION
Reveal the private key for a saved public key (gated by the reveal password if one is set)

See code: lib/commands/key/get.js

proton key:list

List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys (gated by the reveal password if one is set).

USAGE
$ proton key:list [-r] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check when used with --reveal-private. Intended for
non-interactive scripts. Does NOT skip the reveal password if one is set.
-r, --reveal-private Include private keys in the output (requires the reveal password if set, or a typed confirmation
otherwise)
DESCRIPTION
List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys
(gated by the reveal password if one is set).

See code: lib/commands/key/list.js

proton key:lock

Lock Keys with password

USAGE
$ proton key:lock
DESCRIPTION
Lock Keys with password

See code: lib/commands/key/lock.js

proton key:remove [PRIVATEKEY]

Remove Key

USAGE
$ proton key:remove [PRIVATEKEY]
DESCRIPTION
Remove Key

See code: lib/commands/key/remove.js

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

proton key:reveal-disable

Remove the reveal password (requires entering the current one)

USAGE
$ proton key:reveal-disable
DESCRIPTION
Remove the reveal password (requires entering the current one)

See code: lib/commands/key/reveal-disable.js

proton key:reveal-setup

Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

USAGE
$ proton key:reveal-setup
DESCRIPTION
Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

See code: lib/commands/key/reveal-setup.js

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

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

proton msig:cancel PROPOSALNAME AUTH

Multisig Cancel

USAGE
$ proton msig:cancel [PROPOSALNAME] [AUTH]
DESCRIPTION
Multisig Cancel

See code: lib/commands/msig/cancel.js

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

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

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

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

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

proton psr URI

Create Session

USAGE
$ proton psr [URI]
DESCRIPTION
Create Session

See code: lib/commands/psr/index.js

proton ram

List Ram price

USAGE
$ proton ram
DESCRIPTION
List Ram price

See code: lib/commands/ram/index.js

proton ram:buy BUYER RECEIVER BYTES

Buy RAM for an account

USAGE
$ proton ram:buy [BUYER] [RECEIVER] [BYTES] [-p <value>]
ARGUMENTS
BUYER Account paying for RAM
RECEIVER Account receiving RAM
BYTES Number of bytes of RAM to purchase
FLAGS
-p, --authorization=<value> Authorization to use (e.g., account@active). Defaults to buyer@active
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

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

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

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

proton transaction JSON

Execute Transaction

USAGE
$ proton transaction [JSON]
DESCRIPTION
Execute Transaction

See code: lib/commands/transaction/index.js

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

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

proton version

Version of CLI

USAGE
$ proton version
DESCRIPTION
Version of CLI

See code: lib/commands/version.js

About

Universal Command Line Interface for Proton

Resources

Stars

21 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

@proton/cli

Proton CLI

oclifVersionDownloads/weekLicense

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. 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 COMMANDrunning command...
$ proton (--version)@proton/cli/0.1.98 darwin-arm64 node-v23.11.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

proton account:create ACCOUNT

Create New Account

USAGE
$ proton account:create [ACCOUNT]
DESCRIPTION
Create New Account

See code: lib/commands/account/create.js

proton account:create-funded ACCOUNT

Create a new account funded by an existing account (no email verification).

USAGE
$ proton account:create-funded [ACCOUNT] -c <value> [-h] [-k <value>] [-r <value>] [-o <value>]
ARGUMENTS
ACCOUNT New account name (4-12 chars, a-z and 1-5 only)
FLAGS
-c, --creator=<value> (required) Existing account that pays for and creates the new account
-h, --help show CLI help
-k, --key=<value> Public key for new account (PUB_K1_... format). Generates new key if omitted
-o, --owner=<value> Account to add as backup owner (can recover/rotate keys if agent key is lost)
-r, --ram=<value> [default: 3000] RAM bytes to purchase for new account (minimum 3000)
DESCRIPTION
Create a new account funded by an existing account (no email verification).
The creator account pays for RAM and signs the transaction.
CPU and NET bandwidth are delegated for free by the network.
Account naming rules:
- Must be 4-12 characters long
- Only lowercase letters a-z and digits 1-5 are allowed
- Periods (.) are allowed but the suffix must be owned by the creator
- Characters 0, 6, 7, 8, 9 are NOT allowed
- Examples: myaccount, agent11111, test.paul
Security:
Use --owner to add a backup account to the owner permission.
This allows the designated owner to recover or rotate keys
on the new account if the generated key is lost or compromised.
The owner permission threshold is set to 1, so either the key
or the owner account can act independently.
Cost: ~6-7 XPR per 3000 bytes of RAM (default).
The creator account must hold enough XPR to cover RAM costs.
EXAMPLES
$ proton account:create-funded myaccount --creator fundingacct
$ proton account:create-funded myaccount -c fundingacct --ram 8192
$ proton account:create-funded myaccount -c fundingacct -k PUB_K1_...
$ proton account:create-funded agentacct -c fundingacct --owner paul123

See code: lib/commands/account/create-funded.js

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

proton block:get BLOCKNUMBER

Get Block

USAGE
$ proton block:get [BLOCKNUMBER]
DESCRIPTION
Get Block

See code: lib/commands/block/get.js

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

proton chain:get

Get Current Chain

USAGE
$ proton chain:get
DESCRIPTION
Get Current Chain
ALIASES
$ proton network

See code: lib/commands/chain/get.js

proton chain:info

Get Chain Info

USAGE
$ proton chain:info
DESCRIPTION
Get Chain Info

See code: lib/commands/chain/info.js

proton chain:list

All Networks

USAGE
$ proton chain:list
DESCRIPTION
All Networks

See code: lib/commands/chain/list.js

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

proton contract:abi ACCOUNT

Get Contract ABI

USAGE
$ proton contract:abi [ACCOUNT]
DESCRIPTION
Get Contract ABI

See code: lib/commands/contract/abi.js

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

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

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

proton encode:name ACCOUNT

Encode Name

USAGE
$ proton encode:name [ACCOUNT]
DESCRIPTION
Encode Name

See code: lib/commands/encode/name.js

proton encode:symbol SYMBOL PRECISION

Encode Symbol

USAGE
$ proton encode:symbol [SYMBOL] [PRECISION]
DESCRIPTION
Encode Symbol

See code: lib/commands/encode/symbol.js

proton endpoint

Get Current enpoint

USAGE
$ proton endpoint
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

proton endpoint:default [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

proton endpoint:get

Get Current enpoint

USAGE
$ proton endpoint:get
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

See code: lib/commands/endpoint/get.js

proton endpoint:set [ENDPOINT]

Set current enpoint

USAGE
$ proton endpoint:set [ENDPOINT]
ARGUMENTS
ENDPOINT Specific endpoint
DESCRIPTION
Set current enpoint

See code: lib/commands/endpoint/set.js

proton faucet

List all faucets

USAGE
$ proton faucet
DESCRIPTION
List all faucets

See code: lib/commands/faucet/index.js

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

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

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

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

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

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

proton key:add [PRIVATEKEY]

Manage Keys

USAGE
$ proton key:add [PRIVATEKEY]
DESCRIPTION
Manage Keys

See code: lib/commands/key/add.js

proton key:generate

Generate Key

USAGE
$ proton key:generate
DESCRIPTION
Generate Key

See code: lib/commands/key/generate.js

proton key:get PUBLICKEY

Reveal the private key for a saved public key (gated by the reveal password if one is set)

USAGE
$ proton key:get [PUBLICKEY] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check. Intended for non-interactive scripts. Does NOT skip the reveal
password if one is set.
DESCRIPTION
Reveal the private key for a saved public key (gated by the reveal password if one is set)

See code: lib/commands/key/get.js

proton key:list

List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys (gated by the reveal password if one is set).

USAGE
$ proton key:list [-r] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check when used with --reveal-private. Intended for
non-interactive scripts. Does NOT skip the reveal password if one is set.
-r, --reveal-private Include private keys in the output (requires the reveal password if set, or a typed confirmation
otherwise)
DESCRIPTION
List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys
(gated by the reveal password if one is set).

See code: lib/commands/key/list.js

proton key:lock

Lock Keys with password

USAGE
$ proton key:lock
DESCRIPTION
Lock Keys with password

See code: lib/commands/key/lock.js

proton key:remove [PRIVATEKEY]

Remove Key

USAGE
$ proton key:remove [PRIVATEKEY]
DESCRIPTION
Remove Key

See code: lib/commands/key/remove.js

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

proton key:reveal-disable

Remove the reveal password (requires entering the current one)

USAGE
$ proton key:reveal-disable
DESCRIPTION
Remove the reveal password (requires entering the current one)

See code: lib/commands/key/reveal-disable.js

proton key:reveal-setup

Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

USAGE
$ proton key:reveal-setup
DESCRIPTION
Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

See code: lib/commands/key/reveal-setup.js

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

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

proton msig:cancel PROPOSALNAME AUTH

Multisig Cancel

USAGE
$ proton msig:cancel [PROPOSALNAME] [AUTH]
DESCRIPTION
Multisig Cancel

See code: lib/commands/msig/cancel.js

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

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

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

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

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

proton psr URI

Create Session

USAGE
$ proton psr [URI]
DESCRIPTION
Create Session

See code: lib/commands/psr/index.js

proton ram

List Ram price

USAGE
$ proton ram
DESCRIPTION
List Ram price

See code: lib/commands/ram/index.js

proton ram:buy BUYER RECEIVER BYTES

Buy RAM for an account

USAGE
$ proton ram:buy [BUYER] [RECEIVER] [BYTES] [-p <value>]
ARGUMENTS
BUYER Account paying for RAM
RECEIVER Account receiving RAM
BYTES Number of bytes of RAM to purchase
FLAGS
-p, --authorization=<value> Authorization to use (e.g., account@active). Defaults to buyer@active
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

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

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

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

proton transaction JSON

Execute Transaction

USAGE
$ proton transaction [JSON]
DESCRIPTION
Execute Transaction

See code: lib/commands/transaction/index.js

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

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

proton version

Version of CLI

USAGE
$ proton version
DESCRIPTION
Version of CLI

See code: lib/commands/version.js

About

Universal Command Line Interface for Proton

Resources

Stars

21 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

@proton/cli

Proton CLI

oclifVersionDownloads/weekLicense

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. 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 COMMANDrunning command...
$ proton (--version)@proton/cli/0.1.98 darwin-arm64 node-v23.11.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

proton account:create ACCOUNT

Create New Account

USAGE
$ proton account:create [ACCOUNT]
DESCRIPTION
Create New Account

See code: lib/commands/account/create.js

proton account:create-funded ACCOUNT

Create a new account funded by an existing account (no email verification).

USAGE
$ proton account:create-funded [ACCOUNT] -c <value> [-h] [-k <value>] [-r <value>] [-o <value>]
ARGUMENTS
ACCOUNT New account name (4-12 chars, a-z and 1-5 only)
FLAGS
-c, --creator=<value> (required) Existing account that pays for and creates the new account
-h, --help show CLI help
-k, --key=<value> Public key for new account (PUB_K1_... format). Generates new key if omitted
-o, --owner=<value> Account to add as backup owner (can recover/rotate keys if agent key is lost)
-r, --ram=<value> [default: 3000] RAM bytes to purchase for new account (minimum 3000)
DESCRIPTION
Create a new account funded by an existing account (no email verification).
The creator account pays for RAM and signs the transaction.
CPU and NET bandwidth are delegated for free by the network.
Account naming rules:
- Must be 4-12 characters long
- Only lowercase letters a-z and digits 1-5 are allowed
- Periods (.) are allowed but the suffix must be owned by the creator
- Characters 0, 6, 7, 8, 9 are NOT allowed
- Examples: myaccount, agent11111, test.paul
Security:
Use --owner to add a backup account to the owner permission.
This allows the designated owner to recover or rotate keys
on the new account if the generated key is lost or compromised.
The owner permission threshold is set to 1, so either the key
or the owner account can act independently.
Cost: ~6-7 XPR per 3000 bytes of RAM (default).
The creator account must hold enough XPR to cover RAM costs.
EXAMPLES
$ proton account:create-funded myaccount --creator fundingacct
$ proton account:create-funded myaccount -c fundingacct --ram 8192
$ proton account:create-funded myaccount -c fundingacct -k PUB_K1_...
$ proton account:create-funded agentacct -c fundingacct --owner paul123

See code: lib/commands/account/create-funded.js

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

proton block:get BLOCKNUMBER

Get Block

USAGE
$ proton block:get [BLOCKNUMBER]
DESCRIPTION
Get Block

See code: lib/commands/block/get.js

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

proton chain:get

Get Current Chain

USAGE
$ proton chain:get
DESCRIPTION
Get Current Chain
ALIASES
$ proton network

See code: lib/commands/chain/get.js

proton chain:info

Get Chain Info

USAGE
$ proton chain:info
DESCRIPTION
Get Chain Info

See code: lib/commands/chain/info.js

proton chain:list

All Networks

USAGE
$ proton chain:list
DESCRIPTION
All Networks

See code: lib/commands/chain/list.js

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

proton contract:abi ACCOUNT

Get Contract ABI

USAGE
$ proton contract:abi [ACCOUNT]
DESCRIPTION
Get Contract ABI

See code: lib/commands/contract/abi.js

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

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

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

proton encode:name ACCOUNT

Encode Name

USAGE
$ proton encode:name [ACCOUNT]
DESCRIPTION
Encode Name

See code: lib/commands/encode/name.js

proton encode:symbol SYMBOL PRECISION

Encode Symbol

USAGE
$ proton encode:symbol [SYMBOL] [PRECISION]
DESCRIPTION
Encode Symbol

See code: lib/commands/encode/symbol.js

proton endpoint

Get Current enpoint

USAGE
$ proton endpoint
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

proton endpoint:default [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

proton endpoint:get

Get Current enpoint

USAGE
$ proton endpoint:get
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

See code: lib/commands/endpoint/get.js

proton endpoint:set [ENDPOINT]

Set current enpoint

USAGE
$ proton endpoint:set [ENDPOINT]
ARGUMENTS
ENDPOINT Specific endpoint
DESCRIPTION
Set current enpoint

See code: lib/commands/endpoint/set.js

proton faucet

List all faucets

USAGE
$ proton faucet
DESCRIPTION
List all faucets

See code: lib/commands/faucet/index.js

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

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

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

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

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

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

proton key:add [PRIVATEKEY]

Manage Keys

USAGE
$ proton key:add [PRIVATEKEY]
DESCRIPTION
Manage Keys

See code: lib/commands/key/add.js

proton key:generate

Generate Key

USAGE
$ proton key:generate
DESCRIPTION
Generate Key

See code: lib/commands/key/generate.js

proton key:get PUBLICKEY

Reveal the private key for a saved public key (gated by the reveal password if one is set)

USAGE
$ proton key:get [PUBLICKEY] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check. Intended for non-interactive scripts. Does NOT skip the reveal
password if one is set.
DESCRIPTION
Reveal the private key for a saved public key (gated by the reveal password if one is set)

See code: lib/commands/key/get.js

proton key:list

List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys (gated by the reveal password if one is set).

USAGE
$ proton key:list [-r] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check when used with --reveal-private. Intended for
non-interactive scripts. Does NOT skip the reveal password if one is set.
-r, --reveal-private Include private keys in the output (requires the reveal password if set, or a typed confirmation
otherwise)
DESCRIPTION
List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys
(gated by the reveal password if one is set).

See code: lib/commands/key/list.js

proton key:lock

Lock Keys with password

USAGE
$ proton key:lock
DESCRIPTION
Lock Keys with password

See code: lib/commands/key/lock.js

proton key:remove [PRIVATEKEY]

Remove Key

USAGE
$ proton key:remove [PRIVATEKEY]
DESCRIPTION
Remove Key

See code: lib/commands/key/remove.js

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

proton key:reveal-disable

Remove the reveal password (requires entering the current one)

USAGE
$ proton key:reveal-disable
DESCRIPTION
Remove the reveal password (requires entering the current one)

See code: lib/commands/key/reveal-disable.js

proton key:reveal-setup

Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

USAGE
$ proton key:reveal-setup
DESCRIPTION
Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

See code: lib/commands/key/reveal-setup.js

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

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

proton msig:cancel PROPOSALNAME AUTH

Multisig Cancel

USAGE
$ proton msig:cancel [PROPOSALNAME] [AUTH]
DESCRIPTION
Multisig Cancel

See code: lib/commands/msig/cancel.js

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

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

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

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

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

proton psr URI

Create Session

USAGE
$ proton psr [URI]
DESCRIPTION
Create Session

See code: lib/commands/psr/index.js

proton ram

List Ram price

USAGE
$ proton ram
DESCRIPTION
List Ram price

See code: lib/commands/ram/index.js

proton ram:buy BUYER RECEIVER BYTES

Buy RAM for an account

USAGE
$ proton ram:buy [BUYER] [RECEIVER] [BYTES] [-p <value>]
ARGUMENTS
BUYER Account paying for RAM
RECEIVER Account receiving RAM
BYTES Number of bytes of RAM to purchase
FLAGS
-p, --authorization=<value> Authorization to use (e.g., account@active). Defaults to buyer@active
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

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

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

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

proton transaction JSON

Execute Transaction

USAGE
$ proton transaction [JSON]
DESCRIPTION
Execute Transaction

See code: lib/commands/transaction/index.js

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

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

proton version

Version of CLI

USAGE
$ proton version
DESCRIPTION
Version of CLI

See code: lib/commands/version.js

About

Universal Command Line Interface for Proton

Resources

Stars

21 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

@proton/cli

Proton CLI

oclifVersionDownloads/weekLicense

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. 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 COMMANDrunning command...
$ proton (--version)@proton/cli/0.1.98 darwin-arm64 node-v23.11.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

proton account:create ACCOUNT

Create New Account

USAGE
$ proton account:create [ACCOUNT]
DESCRIPTION
Create New Account

See code: lib/commands/account/create.js

proton account:create-funded ACCOUNT

Create a new account funded by an existing account (no email verification).

USAGE
$ proton account:create-funded [ACCOUNT] -c <value> [-h] [-k <value>] [-r <value>] [-o <value>]
ARGUMENTS
ACCOUNT New account name (4-12 chars, a-z and 1-5 only)
FLAGS
-c, --creator=<value> (required) Existing account that pays for and creates the new account
-h, --help show CLI help
-k, --key=<value> Public key for new account (PUB_K1_... format). Generates new key if omitted
-o, --owner=<value> Account to add as backup owner (can recover/rotate keys if agent key is lost)
-r, --ram=<value> [default: 3000] RAM bytes to purchase for new account (minimum 3000)
DESCRIPTION
Create a new account funded by an existing account (no email verification).
The creator account pays for RAM and signs the transaction.
CPU and NET bandwidth are delegated for free by the network.
Account naming rules:
- Must be 4-12 characters long
- Only lowercase letters a-z and digits 1-5 are allowed
- Periods (.) are allowed but the suffix must be owned by the creator
- Characters 0, 6, 7, 8, 9 are NOT allowed
- Examples: myaccount, agent11111, test.paul
Security:
Use --owner to add a backup account to the owner permission.
This allows the designated owner to recover or rotate keys
on the new account if the generated key is lost or compromised.
The owner permission threshold is set to 1, so either the key
or the owner account can act independently.
Cost: ~6-7 XPR per 3000 bytes of RAM (default).
The creator account must hold enough XPR to cover RAM costs.
EXAMPLES
$ proton account:create-funded myaccount --creator fundingacct
$ proton account:create-funded myaccount -c fundingacct --ram 8192
$ proton account:create-funded myaccount -c fundingacct -k PUB_K1_...
$ proton account:create-funded agentacct -c fundingacct --owner paul123

See code: lib/commands/account/create-funded.js

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

proton block:get BLOCKNUMBER

Get Block

USAGE
$ proton block:get [BLOCKNUMBER]
DESCRIPTION
Get Block

See code: lib/commands/block/get.js

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

proton chain:get

Get Current Chain

USAGE
$ proton chain:get
DESCRIPTION
Get Current Chain
ALIASES
$ proton network

See code: lib/commands/chain/get.js

proton chain:info

Get Chain Info

USAGE
$ proton chain:info
DESCRIPTION
Get Chain Info

See code: lib/commands/chain/info.js

proton chain:list

All Networks

USAGE
$ proton chain:list
DESCRIPTION
All Networks

See code: lib/commands/chain/list.js

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

proton contract:abi ACCOUNT

Get Contract ABI

USAGE
$ proton contract:abi [ACCOUNT]
DESCRIPTION
Get Contract ABI

See code: lib/commands/contract/abi.js

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

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

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

proton encode:name ACCOUNT

Encode Name

USAGE
$ proton encode:name [ACCOUNT]
DESCRIPTION
Encode Name

See code: lib/commands/encode/name.js

proton encode:symbol SYMBOL PRECISION

Encode Symbol

USAGE
$ proton encode:symbol [SYMBOL] [PRECISION]
DESCRIPTION
Encode Symbol

See code: lib/commands/encode/symbol.js

proton endpoint

Get Current enpoint

USAGE
$ proton endpoint
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

proton endpoint:default [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

proton endpoint:get

Get Current enpoint

USAGE
$ proton endpoint:get
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpoint

See code: lib/commands/endpoint/get.js

proton endpoint:set [ENDPOINT]

Set current enpoint

USAGE
$ proton endpoint:set [ENDPOINT]
ARGUMENTS
ENDPOINT Specific endpoint
DESCRIPTION
Set current enpoint

See code: lib/commands/endpoint/set.js

proton faucet

List all faucets

USAGE
$ proton faucet
DESCRIPTION
List all faucets

See code: lib/commands/faucet/index.js

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

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

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

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

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

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

proton key:add [PRIVATEKEY]

Manage Keys

USAGE
$ proton key:add [PRIVATEKEY]
DESCRIPTION
Manage Keys

See code: lib/commands/key/add.js

proton key:generate

Generate Key

USAGE
$ proton key:generate
DESCRIPTION
Generate Key

See code: lib/commands/key/generate.js

proton key:get PUBLICKEY

Reveal the private key for a saved public key (gated by the reveal password if one is set)

USAGE
$ proton key:get [PUBLICKEY] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check. Intended for non-interactive scripts. Does NOT skip the reveal
password if one is set.
DESCRIPTION
Reveal the private key for a saved public key (gated by the reveal password if one is set)

See code: lib/commands/key/get.js

proton key:list

List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys (gated by the reveal password if one is set).

USAGE
$ proton key:list [-r] [-f]
FLAGS
-f, --force Skip the typed confirmation and TTY check when used with --reveal-private. Intended for
non-interactive scripts. Does NOT skip the reveal password if one is set.
-r, --reveal-private Include private keys in the output (requires the reveal password if set, or a typed confirmation
otherwise)
DESCRIPTION
List saved keys. Shows public keys and associated accounts by default; pass --reveal-private to include private keys
(gated by the reveal password if one is set).

See code: lib/commands/key/list.js

proton key:lock

Lock Keys with password

USAGE
$ proton key:lock
DESCRIPTION
Lock Keys with password

See code: lib/commands/key/lock.js

proton key:remove [PRIVATEKEY]

Remove Key

USAGE
$ proton key:remove [PRIVATEKEY]
DESCRIPTION
Remove Key

See code: lib/commands/key/remove.js

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

proton key:reveal-disable

Remove the reveal password (requires entering the current one)

USAGE
$ proton key:reveal-disable
DESCRIPTION
Remove the reveal password (requires entering the current one)

See code: lib/commands/key/reveal-disable.js

proton key:reveal-setup

Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

USAGE
$ proton key:reveal-setup
DESCRIPTION
Set or change the reveal password required to view private keys via key:get or key:list --reveal-private

See code: lib/commands/key/reveal-setup.js

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

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

proton msig:cancel PROPOSALNAME AUTH

Multisig Cancel

USAGE
$ proton msig:cancel [PROPOSALNAME] [AUTH]
DESCRIPTION
Multisig Cancel

See code: lib/commands/msig/cancel.js

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

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

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

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

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

proton psr URI

Create Session

USAGE
$ proton psr [URI]
DESCRIPTION
Create Session

See code: lib/commands/psr/index.js

proton ram

List Ram price

USAGE
$ proton ram
DESCRIPTION
List Ram price

See code: lib/commands/ram/index.js

proton ram:buy BUYER RECEIVER BYTES

Buy RAM for an account

USAGE
$ proton ram:buy [BUYER] [RECEIVER] [BYTES] [-p <value>]
ARGUMENTS
BUYER Account paying for RAM
RECEIVER Account receiving RAM
BYTES Number of bytes of RAM to purchase
FLAGS
-p, --authorization=<value> Authorization to use (e.g., account@active). Defaults to buyer@active
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

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

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

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

proton transaction JSON

Execute Transaction

USAGE
$ proton transaction [JSON]
DESCRIPTION
Execute Transaction

See code: lib/commands/transaction/index.js

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

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

proton version

Version of CLI

USAGE
$ proton version
DESCRIPTION
Version of CLI

See code: lib/commands/version.js

About

Universal Command Line Interface for Proton

Resources

Stars

21 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages