CLI Commands
CLI Commands
This section details the present commands, command flags in the Polygon Edge, and how they're used.
JSON OUTPUT SUPPORT
The --json
flag is supported on some commands. This flag instructs the command to print the output in JSON format
Startup Commands
Command
Description
server
The default command that starts the blockchain client, by bootstrapping all modules together
genesis
Generates a genesis.json file, which is used to set a predefined chain state before starting the client. The structure of the genesis file is described below
genesis predeploy
Predeploys a Smart Contract for fresh networks
server flags
All server flags
data-dir
Syntax
Example
Used to specify the data directory used for storing Polygon Edge client data. Default: ./test-chain
.
jsonrpc
Syntax
Example
Sets the address and port for the JSON-RPC service address:port
.
If only port is defined :10001
it will bind to all interfaces 0.0.0.0:10001
.
If omitted the service will bind to the default address:port
.
Default address: 0.0.0.0:8545
.
json-rpc-block-range-limit
Syntax
Example
Sets the maximum block range to be considered when executing json-rpc requests that include fromBlock/toBlock values (e.g. eth_getLogs). Default:1000
.
json-rpc-batch-request-limit
Syntax
Example
Sets the maximum length to be considered when handling json-rpc batch requests. Default: 20
.
grpc
Syntax
Example
Sets the address and port for the gRPC service address:port
. Default address: 127.0.0.1:9632
.
libp2p
Syntax
Example
Sets the address and port for the libp2p service address:port
. Default address: 127.0.0.1:1478
.
prometheus
Syntax
Example
Sets the address and port for the prometheus server address:port
.
If only port is defined :5001
the service will bind to all interfaces 0.0.0.0:5001
.
If omitted the service will not be started.
block-gas-target
Syntax
Example
Sets the target block gas limit for the chain. Default (not enforced): 0
.
A more detailed explanation on the block gas target can be found in the TxPool section.
max-peers
Syntax
Example
Sets the client's maximum peer count. Default: 40
.
Peer limit should be specified either by using max-peers
or max-inbound/outbound-peers
flag.
max-inbound-peers
Syntax
Example
Sets the client's maximum inbound peer count. If max-peers
is set, max-inbound-peer limit is calculated using the following formulae.
max-inbound-peer = InboundRatio * max-peers
, where InboundRatio
is 0.8
.
max-outbound-peers
Syntax
Example
Sets the client's maximum outbound peer count. If max-peers
is set, max-outbound-peer count is calculated using the following formulae.
max-outbound-peer = OutboundRatio * max-peers
, where OutboundRatio
is 0.2
.
max-enqueued
Syntax
Example
Sets the maximum number of enqueued transactions per account. Default:128
.
log-level
Syntax
Example
Sets the log level for console output. Default: INFO
.
log-to
Syntax
Example
Defines log file name that will hold all log output from the server command. By default, all server logs will be outputted to console (stdout), but if the flag is set, there will be no output to the console when running server command.
chain
Syntax
Example
Specifies the genesis file used for starting the chain. Default: ./genesis.json
.
join
Syntax
Example
Specifies the address of the peer that should be joined.
nat
Syntax
Example
Sets the external IP address without the port, as it can be seen by peers.
dns
Syntax
Example
Sets the host DNS address. This can be used to advertise an external DNS. Supports dns
,dns4
,dns6
.
price-limit
Syntax
Example
Sets minimum gas price limit to enforce for acceptance into the pool. Default: 1
.
max-slots
Syntax
Example
Sets maximum slots in the pool. Default: 4096
.
config
Syntax
Example
Specifies the path to the CLI config. Supports .json
.
secrets-config
Syntax
Example
Sets the path to the SecretsManager config file. Used for Hashicorp Vault, AWS SSM and GCP Secrets Manager. If omitted, the local FS secrets manager is used.
dev
Syntax
Example
Sets the client to dev mode. Default: false
. In dev mode, peer discovery is disabled by default.
dev-interval
Syntax
Example
Sets the client's dev notification interval in seconds. Default: 0
.
no-discover
Syntax
Example
Prevents the client from discovering other peers. Default: false
.
restore
Syntax
Example
Restore blocks from the specified archive file
block-time
Syntax
Example
Sets block production time in seconds. Default: 2
access-control-allow-origins
Syntax
Example
Sets the authorized domains to be able to share responses from JSON-RPC requests.
Add multiple flags --access-control-allow-origins "https://example1.com" --access-control-allow-origins "https://example2.com"
to authorize multiple domains.
If omitted Access-Control-Allow-Origins header will be set to *
and all domains will be authorized.
genesis flags
dir
Syntax
Example
Sets the directory for the Polygon Edge genesis data. Default: ./genesis.json
.
name
Syntax
Example
Sets the name for the chain. Default: polygon-edge
.
pos
Syntax
Example
Sets the flag indicating that the client should use Proof of Stake IBFT. Defaults to Proof of Authority if flag is not provided or false
.
epoch-size
Syntax
Example
Sets the epoch size for the chain. Default 100000
.
premine
Syntax
Example
Sets the premined accounts and balances in the format address:amount
. The amount can be in either decimal or hex. Default premined balance: 0xD3C21BCECCEDA1000000
(1 million native currency tokens).
chainid
Syntax
Example
Sets the ID of the chain. Default: 100
.
ibft-validator-type
Syntax
Example
Specifies the validation mode of block headers. Possible values: [ecdsa, bls]
. Default: bls
.
ibft-validators-prefix-path
Syntax
Example
Prefix path for validator folder directory. Needs to be present if the flag ibft-validator
is omitted.
ibft-validator
Syntax
Example
Sets passed addresses as IBFT validators. Needs to be present if the flag ibft-validators-prefix-path
is omitted.
If the network is running with ECDSA, the format is
--ibft-validator [ADDRESS]
.If the network is running with BLS, the format is
--ibft-validator [ADDRESS]:[BLS_PUBLIC_KEY]
.
block-gas-limit
Syntax
Example
Refers to the maximum amount of gas used by all operations in a block. Default: 5242880
.
consensus
Syntax
Example
Sets consensus protocol. Default: pow
.
bootnode
Syntax
Example
Multiaddr URL for p2p discovery bootstrap. This flag can be used multiple times. Instead of an IP address, the DNS address of the bootnode can be provided.
max-validator-count
Syntax
Example
The maximum number of stakers able to join the validator set in a PoS consensus. This number cannot exceed the value of MAX_SAFE_INTEGER (2^53 - 2).
min-validator-count
Syntax
Example
The minimum number of stakers needed to join the validator set in a PoS consensus. This number cannot exceed the value of max-validator-count. Defaults to 1.
genesis predeploy flags
artifacts-path
Syntax
Example
Sets the path to the contract artifacts JSON that contains the abi
, bytecode
and deployedBytecode
.
chain
Syntax
Example
Sets the path to the genesis.json
file that should be updated. Default ./genesis.json
.
constructor-args
Syntax
Example
Sets the Smart Contract constructor arguments, if any. For a detailed guide on how these arguments should look like, please reference predeployment article.
predeploy-address
Syntax
Example
Sets the address to predeploy to. Default 0x0000000000000000000000000000000000001100
.
Operator Commands
Peer Commands
Command
Description
peers add
Adds a new peer using their libp2p address
peers list
Lists all the peers the client is connected to through libp2p
peers status
Returns the status of a specific peer from the peers list, using the libp2p address
peers add flags
addr
Syntax
Example
Peer's libp2p address in the multiaddr format.
grpc-address
Syntax
Example
Address of the gRPC API. Default: 127.0.0.1:9632
.
peers list flags
grpc-address
Syntax
Example
Address of the gRPC API. Default: 127.0.0.1:9632
.
peers status flags
peer-id
Syntax
Example
Libp2p node ID of a specific peer within p2p network.
grpc-address
Syntax
Example
Address of the gRPC API. Default: 127.0.0.1:9632
.
IBFT Commands
Command
Description
ibft snapshot
Returns the IBFT snapshot
ibft candidates
Queries the current set of proposed candidates, as well as candidates that have not been included yet
ibft propose
Proposes a new candidate to be added/removed from the validator set
ibft status
Returns the overall status of the IBFT client
ibft switch
Add fork configurations into genesis.json file to switch IBFT type
ibft quorum
Specifies the block number after which the optimal quorum size method will be used for reaching consensus
ibft snapshot flags
number
Syntax
Example
The block height (number) for the snapshot.
grpc-address
Syntax
Example
Address of the gRPC API. Default: 127.0.0.1:9632
.
ibft candidates flags
grpc-address
Syntax
Example
Address of the gRPC API. Default: 127.0.0.1:9632
.
ibft propose flags
vote
Syntax
Example
Proposes a change to the validator set. Possible values: [auth, drop]
.
addr
Syntax
Example
Address of the account to be voted for.
bls
Syntax
Example
BLS Public Key of the account to be voted for, necessary only in BLS mode.
grpc-address
Syntax
Example
Address of the gRPC API. Default: 127.0.0.1:9632
.
ibft status flags
grpc-address
Syntax
Example
Address of the gRPC API. Default: 127.0.0.1:9632
.
ibft switch flags
chain
Syntax
Example
Specifies the genesis file to update. Default: ./genesis.json
.
type
Syntax
Example
Specifies the IBFT type to switch. Possible values: [PoA, PoS]
.
deployment
Syntax
Example
Specifies the height of contract deployment. Only available with PoS.
from
Syntax
Example
ibft-validator-type
Syntax
Example
Specifies the validation mode of block headers. Possible values: [ecdsa, bls]
. Default: bls
.
ibft-validators-prefix-path
Syntax
Example
Prefix path for the directories of new validators. Needs to be present if the flag ibft-validator
is omitted. Available only when the IBFT mode is PoA (--pos
flag is omitted).
ibft-validator
Syntax
Example
Sets passed in addresses as IBFT validators used after the fork. Needs to be present if the flag ibft-validators-prefix-path
is omitted. Available only in PoA mode.
If the network is running with ECDSA, the format is
--ibft-validator [ADDRESS]
.If the network is running with BLS, the format is
--ibft-validator [ADDRESS][BLS_PUBLIC_KEY]
.
max-validator-count
Syntax
Example
The maximum number of stakers able to join the validator set in a PoS consensus. This number cannot exceed the value of MAX_SAFE_INTEGER (2^53 - 2).
min-validator-count
Syntax
Example
The minimum number of stakers needed to join the validator set in a PoS consensus. This number cannot exceed the value of max-validator-count. Defaults to 1.
Specifies the beginning height of the fork.
ibft quorum flags
from
Syntax
Example
The height to switch the quorum calculation to QuorumOptimal, which uses the formula (2/3 * N)
, N
being the number of validator nodes. Please note that this is for backwards compatibility, ie. only for chains that used a Quorum legacy calculation up to a certain block height.
chain
Syntax
Example
Specifies the genesis file to update. Default: ./genesis.json
.
Transaction Pool Commands
Command
Description
txpool status
Returns the number of transactions in the pool
txpool subscribe
Subscribes for events in the transaction pool
txpool status flags
grpc-address
Syntax
Example
Address of the gRPC API. Default: 127.0.0.1:9632
.
txpool subscribe flags
grpc-address
Syntax
Example
Address of the gRPC API. Default: 127.0.0.1:9632
.
promoted
Syntax
Example
Subscribes for promoted tx events in the TxPool.
dropped
Syntax
Example
Subscribes for dropped tx events in the TxPool.
demoted
Syntax
Example
Subscribes for demoted tx events in the TxPool.
added
Syntax
Example
Subscribes for added tx events to the TxPool.
enqueued
Syntax
Example
Subscribes for enqueued tx events in the account queues.
Blockchain commands
Command
Description
status
Returns the status of the client. The detailed response can be found below
monitor
Subscribes to a blockchain event stream. The detailed response can be found below
version
Returns the current version of the client
status flags
grpc-address
Syntax
Example
Address of the gRPC API. Default: 127.0.0.1:9632
.
monitor flags
grpc-address
Syntax
Example
Address of the gRPC API. Default: 127.0.0.1:9632
.
version command
Syntax
Displays release version, git branch, commit hash and build time.
Secrets Commands
Command
Description
secrets init
Initializes the private keys to the corresponding secrets manager
secrets generate
Generates a secrets manager configuration file which can be parsed by the Polygon Edge
secrets output
Prints the BLS public key address, validator public key address, and node id for reference
secrets init flags
config
Syntax
Example
Sets the path to the SecretsManager config file. Used for Hashicorp Vault. If omitted, the local FS secrets manager is used.
data-dir
Syntax
Example
Sets the directory for the Polygon Edge data if the local FS is used.
ecdsa
Syntax
Example
Sets the flag indicating whether to generate an ECDSA key. Default: true
.
network
Syntax
Example
Sets the flag indicating whether to generate a Libp2p Network key. Default: true
.
bls
Syntax
Example
Sets the flag indicating whether to generate a BLS key. Default: true
.
secrets generate flags
dir
Syntax
Example
Sets the directory for the secrets manager configuration file Default: ./secretsManagerConfig.json
type
Syntax
Example
Specifies the type of the secrets manager [hashicorp-vault
]. Default: hashicorp-vault
token
Syntax
Example
Specifies the access token for the service
server-url
Syntax
Example
Specifies the server URL for the service
name
Syntax
Example
Specifies the name of the node for on-service record keeping. Default: polygon-edge-node
namespace
Syntax
Example
Specifies the namespace used for the Hashicorp Vault secrets manager. Default: admin
secrets output flags
bls
Syntax
Example
Sets the flag indicating whether to only output the BLS public key. Default: true
config
Syntax
Example
Sets the path to the SecretsManager config file. If omitted, the local FS secrets manager is used.
data-dir
Syntax
Example
Sets the directory for the Polygon Edge data if the local FS is used.
node-id
Syntax
Example
Sets the flag indicating whether to only output the network node ID. Default: true
validator
Syntax
Example
Sets the flag indicating whether to only output the validator address. Default: true
Responses
Status Response
The response object is defined using Protocol Buffers.
minimal/proto/system.proto
Monitor Response
minimal/proto/system.proto
Utilities
whitelist commands
Command
Description
whitelist show
Displays whitelist information
whitelist deployment
Updates the smart contract deployment whitelist
whitelist show
Syntax
Displays whitelist information.
Syntax
Example
Specifies the genesis file to update. Default: ./genesis.json
.
whitelist deployment
chain
Syntax
Example
Specifies the genesis file to update. Default: ./genesis.json
.
add
Syntax
Example
Adds a new address to the contract deployment whitelist. Only the addresses in the contract deployment whitelist can deploy contracts. If empty, any address can execute the contract deployment
remove
Syntax
Example
Removes an address from the contract deployment whitelist. Only the addresses in the contract deployment whitelist can deploy contracts. If empty, any address can execute the contract deployment
backup flags
grpc-address
Syntax
Example
Address of the gRPC API. Default: 127.0.0.1:9632
.
out
Syntax
Example
Path of archive file to save.
from
Syntax
Example
The beginning height of blocks in archive. Default: 0.
to
Syntax
Example
The end height of blocks in archive.
Genesis Template
The genesis file should be used to set the initial state of the blockchain (ex. if some accounts should have a starting balance).
The following ./genesis.json file is generated:
Data Directory
When executing the data-dir flag, a test-chain folder is generated. The folder structure consists of the following sub-folders:
blockchain - Stores the LevelDB for blockchain objects
trie - Stores the LevelDB for the Merkle tries
keystore - Stores private keys for the client. This includes the libp2p private key and the sealing/validator private key
consensus - Stores any consensus information that the client might need while working
Resources
Last updated