@proton/cli
v0.1.97
Published
Proton CLI
Downloads
545
Keywords
Readme
@proton/cli
Proton CLI
Installation
Install CLI (NPM)
npm i -g @proton/cliInstall CLI (Yarn)
yarn global add @proton/cliIf 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/binInstall 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 | bashWindows 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 16Usage
$ npm install -g @proton/cli
$ proton COMMAND
running command...
$ proton (--version)
@proton/cli/0.1.97 darwin-arm64 node-v23.11.0
$ proton --help [COMMAND]
USAGE
$ proton COMMAND
...Commands
proton account ACCOUNTproton account:create ACCOUNTproton account:create-funded ACCOUNTproton action CONTRACT [ACTION] [DATA] [AUTHORIZATION]proton block:get BLOCKNUMBERproton boilerplate [FOLDER]proton chain:getproton chain:infoproton chain:listproton chain:set [CHAIN]proton contract:abi ACCOUNTproton contract:clear ACCOUNTproton contract:enableinline ACCOUNTproton contract:set ACCOUNT SOURCEproton encode:name ACCOUNTproton encode:symbol SYMBOL PRECISIONproton endpointproton endpoint:default [ENDPOINT]proton endpoint:getproton endpoint:set [ENDPOINT]proton faucetproton faucet:claim SYMBOL AUTHORIZATIONproton generate:actionproton generate:contract CONTRACTNAMEproton generate:inlineaction ACTIONNAMEproton generate:table TABLENAMEproton help [COMMAND]proton key:add [PRIVATEKEY]proton key:generateproton key:get PUBLICKEYproton key:listproton key:lockproton key:remove [PRIVATEKEY]proton key:resetproton key:unlock [PASSWORD]proton msig:approve PROPOSER PROPOSAL AUTHproton msig:cancel PROPOSALNAME AUTHproton msig:exec PROPOSER PROPOSAL AUTHproton msig:propose PROPOSALNAME ACTIONS AUTHproton networkproton permission ACCOUNTproton permission:link ACCOUNT PERMISSION CONTRACT [ACTION]proton permission:unlink ACCOUNT CONTRACT [ACTION]proton psr URIproton ramproton ram:buy BUYER RECEIVER BYTESproton rpc:accountsbyauthorizers AUTHORIZATIONS [KEYS]proton scan ACCOUNTproton table CONTRACT [TABLE] [SCOPE]proton transaction JSONproton transaction:get IDproton transaction:push TRANSACTIONproton version
proton account ACCOUNT
Get Account Information
USAGE
$ proton account [ACCOUNT] [-r] [-t]
FLAGS
-r, --raw
-t, --tokens Show token balances
DESCRIPTION
Get Account InformationSee code: lib/commands/account/index.js
proton account:create ACCOUNT
Create New Account
USAGE
$ proton account:create [ACCOUNT]
DESCRIPTION
Create New AccountSee 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 paul123See 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 ActionSee code: lib/commands/action/index.js
proton block:get BLOCKNUMBER
Get Block
USAGE
$ proton block:get [BLOCKNUMBER]
DESCRIPTION
Get BlockSee 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 testsSee code: lib/commands/boilerplate.js
proton chain:get
Get Current Chain
USAGE
$ proton chain:get
DESCRIPTION
Get Current Chain
ALIASES
$ proton networkSee code: lib/commands/chain/get.js
proton chain:info
Get Chain Info
USAGE
$ proton chain:info
DESCRIPTION
Get Chain InfoSee code: lib/commands/chain/info.js
proton chain:list
All Networks
USAGE
$ proton chain:list
DESCRIPTION
All NetworksSee code: lib/commands/chain/list.js
proton chain:set [CHAIN]
Set Chain
USAGE
$ proton chain:set [CHAIN]
ARGUMENTS
CHAIN Specific chain
DESCRIPTION
Set ChainSee code: lib/commands/chain/set.js
proton contract:abi ACCOUNT
Get Contract ABI
USAGE
$ proton contract:abi [ACCOUNT]
DESCRIPTION
Get Contract ABISee 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 ContractSee 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 ContractSee 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 NameSee code: lib/commands/encode/name.js
proton encode:symbol SYMBOL PRECISION
Encode Symbol
USAGE
$ proton encode:symbol [SYMBOL] [PRECISION]
DESCRIPTION
Encode SymbolSee code: lib/commands/encode/symbol.js
proton endpoint
Get Current enpoint
USAGE
$ proton endpoint
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpointproton endpoint:default [ENDPOINT]
Restore default enpoint
USAGE
$ proton endpoint:default [ENDPOINT]
ARGUMENTS
ENDPOINT Restore default endpoints
DESCRIPTION
Restore default enpointSee code: lib/commands/endpoint/default.js
proton endpoint:get
Get Current enpoint
USAGE
$ proton endpoint:get
DESCRIPTION
Get Current enpoint
ALIASES
$ proton endpointSee 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 enpointSee code: lib/commands/endpoint/set.js
proton faucet
List all faucets
USAGE
$ proton faucet
DESCRIPTION
List all faucetsSee 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 faucetSee 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 contractSee 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 contractSee 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 contractSee 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 contractSee 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 protonSee code: @oclif/plugin-help
proton key:add [PRIVATEKEY]
Manage Keys
USAGE
$ proton key:add [PRIVATEKEY]
DESCRIPTION
Manage KeysSee code: lib/commands/key/add.js
proton key:generate
Generate Key
USAGE
$ proton key:generate
DESCRIPTION
Generate KeySee code: lib/commands/key/generate.js
proton key:get PUBLICKEY
Find private key for public key
USAGE
$ proton key:get [PUBLICKEY]
DESCRIPTION
Find private key for public keySee code: lib/commands/key/get.js
proton key:list
List All Key
USAGE
$ proton key:list
DESCRIPTION
List All KeySee code: lib/commands/key/list.js
proton key:lock
Lock Keys with password
USAGE
$ proton key:lock
DESCRIPTION
Lock Keys with passwordSee code: lib/commands/key/lock.js
proton key:remove [PRIVATEKEY]
Remove Key
USAGE
$ proton key:remove [PRIVATEKEY]
DESCRIPTION
Remove KeySee 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: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 ApproveSee code: lib/commands/msig/approve.js
proton msig:cancel PROPOSALNAME AUTH
Multisig Cancel
USAGE
$ proton msig:cancel [PROPOSALNAME] [AUTH]
DESCRIPTION
Multisig CancelSee code: lib/commands/msig/cancel.js
proton msig:exec PROPOSER PROPOSAL AUTH
Multisig Execute
USAGE
$ proton msig:exec [PROPOSER] [PROPOSAL] [AUTH]
DESCRIPTION
Multisig ExecuteSee 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 ProposeSee code: lib/commands/msig/propose.js
proton network
Get Current Chain
USAGE
$ proton network
DESCRIPTION
Get Current Chain
ALIASES
$ proton networkproton permission ACCOUNT
Update Permission
USAGE
$ proton permission [ACCOUNT]
ARGUMENTS
ACCOUNT Account to modify
DESCRIPTION
Update PermissionSee 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 AuthSee 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 AuthSee code: lib/commands/permission/unlink.js
proton psr URI
Create Session
USAGE
$ proton psr [URI]
DESCRIPTION
Create SessionSee code: lib/commands/psr/index.js
proton ram
List Ram price
USAGE
$ proton ram
DESCRIPTION
List Ram priceSee 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@activeSee 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 AuthorizationSee code: lib/commands/rpc/accountsbyauthorizers.js
proton scan ACCOUNT
Open Account in Proton Scan
USAGE
$ proton scan [ACCOUNT]
DESCRIPTION
Open Account in Proton ScanSee 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 RowsSee code: lib/commands/table/index.js
proton transaction JSON
Execute Transaction
USAGE
$ proton transaction [JSON]
DESCRIPTION
Execute TransactionSee 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 IDSee 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 TransactionSee code: lib/commands/transaction/push.js
proton version
Version of CLI
USAGE
$ proton version
DESCRIPTION
Version of CLISee code: lib/commands/version.js
