Conflux CLI Sub-commands

Conflux CLI sub-commands is a collection of command line interfaces which allows you to interact with a local or remote Conflux node.

Manage Accounts

account sub-command allows you to manage accounts at local machine.

new

Create a new account at local machine.

Usage

$ ./conflux.exe account new --help
conflux.exe-account-new
Create a new account (and its associated key) for the given --chain (default conflux).

USAGE:
    conflux.exe account new [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --keys-iterations <NUM>    Specify the number of iterations to use when deriving key from the password (bigger is more secure). [default: 10240]
        --password <FILE>          Provide a file containing a password for unlocking an account. Leading and trailing whitespace is trimmed.

Example

./conflux.exe account new

list

List all accounts at local machine.

Usage

$ ./conflux.exe account list --help
conflux.exe-account-list
List existing accounts of the given --chain (default conflux).

USAGE:
    conflux.exe account list

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

Example

./conflux.exe account list

import

Import accounts from JSON UTC keystore files.

Usage

$ ./conflux.exe account import --help
conflux.exe-account-import
Import accounts from JSON UTC keystore files to the specified --chain (default conflux)

USAGE:
    conflux.exe account import --import-path <PATH>...

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --import-path <PATH>...    A list of file paths to import.

Example

./conflux.exe account import --import-path ./keystores

Public APIs

Public API allows you to interact with a local or remote Conflux node via HTTP connection in JSON-RPC protocol. All public APIs are under rpc sub-command, and access to the JSON-RPC API at local machine with default url option.

OPTIONS:
        --url <url>    URL of RPC server [default: http://localhost:12539]

To access JSON-RPC API of remote Conflux node, please specify the correct --url option (e.g. http://10.1.5.6:12537). By default, JSON-RPC is enabled only for local access for security consideration. You can manually enable remote access by configuring jsonrpc_http_port in default.toml file.

# jsonrpc_tcp_port=12536
jsonrpc_http_port=12537
# jsonrpc_local_tcp_port=12538
jsonrpc_local_http_port=12539

All available commands are as following:

$ ./conflux.exe rpc --help
conflux.exe-rpc
RPC based subcommands to query blockchain information and send transactions

USAGE:
    conflux.exe rpc [OPTIONS] <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --url <url>    URL of RPC server [default: http://localhost:12539]

SUBCOMMANDS:
    balance                  Get balance of specified account
    best-block-hash          Get the best block hash
    block-by-epoch           Get block by epoch
    block-by-hash            Get block by hash
    block-with-assumption    Get block by hash with pivot chain assumption
    blocks                   Get blocks of specified epoch
    call                     Executes a new message call immediately without creating a transaction
    code                     Get bytecode of specified contract
    debug                    Debug subcommands (requires jsonrpc_local_http_port configured)
    epoch                    Get epoch number
    estimate-gas             Executes a call request immediately without creating a transaction and returns the gas used
    help                     Prints this message or the help of the given subcommand(s)
    nonce                    Get nonce of specified account
    price                    Get recent mean gas price
    receipt                  Get receipt by transaction hash
    send                     Send a signed transaction and return its hash
    tx                       Get transaction by hash

Get balance

./conflux.exe rpc balance --address 0xa70ddf9b9750c575db453eea6a041f4c8536785a

Get nonce

./conflux.exe rpc none --address 0xa70ddf9b9750c575db453eea6a041f4c8536785a

Get current epoch number

./conflux.exe rpc epoch

Get block(s)

  • Get Best block hash: ./conflux.exe rpc best-block-hash
  • Get block by epoch: ./conflux.exe rpc block-by-epoch --epoch latest_state
  • Get block by hash: ./conflux.exe rpc block-by-epoch --hash 0xf756b4...c0a6d1
  • Get blocks in epoch: ./conflux.exe rpc blocks --epoch latest_state

Get transaction

./conflux.exe rpc tx --hash 0x718532fe76dbd8c4208c6c5a79588db35c0bf97e7d8a0faa5988ba66ad88b74c

Get receipt

./conflux.exe rpc receipt --hash 0x718532fe76dbd8c4208c6c5a79588db35c0bf97e7d8a0faa5988ba66ad88b74c

Send signed transaction

Send a signed transaction which encoded in HEX format. Generally, this API is used for Java-Script API to send encoded transaction. To send a transaction with CLI, suggest to use private API send transaction.

./conflux.exe rpc send --raw-bytes 0x...

Misc

  • Get contract code: ./conflux.exe rpc code --address 0xa70ddf9b9750c575db453eea6a041f4c8536785a
  • Get recent mean gas price: ./conflux.exe rpc price

Private APIs

Private API allows you to interact with local Conflux node only via HTTP connection in JSON-RPC protocol. Private APIs are provided for user to manage the local Conflux node, and requires the jsonrpc_local_http_port configured in default.toml configuration file.

In addition, private APIs also helps developers to debug, test, and monitor the runtime of Conflux node.

All private APIs are under debug sub-command, and access to the JSON-RPC API at local machine with default url option.

$ ./conflux.exe rpc debug --help
conflux.exe-rpc-debug
Debug subcommands (requires jsonrpc_local_http_port configured)

USAGE:
    conflux.exe rpc debug [OPTIONS] <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --url <url>    URL of RPC server [default: http://localhost:12539]

SUBCOMMANDS:
    consensus-graph-state    Get the consensus graph state
    help                     Prints this message or the help of the given subcommand(s)
    net                      Network subcommands
    send                     Send a transaction and return its hash
    sync-phase               Get the current synchronization phase
    test                     Test subcommands (used for test purpose only)
    txpool                   Transaction pool subcommands

net

net sub-command helps you to inspect the P2P network status.

Examples

  • List all connected P2P nodes: ./conflux.exe rpc debug net session
  • List a single P2P node: ./conflux.exe rpc debug net session --id <node_id>
  • Check network egress: ./conflux.exe rpc debug net throttling

txpool

txpool sub-command helps you to inspect the transaction pool.

Examples

  • List transaction pool status: ./conflux.exe rpc debug txpool status
  • List transactions in details: ./conflux.exe rpc debug txpool content
  • List summary of transactions: ./conflux.exe rpc debug txpool inspect
  • Inspect a transaction in detail: ./conflux.exe rpc debug txpool inspect-one --hash <tx_hash>

sync-phase

Get the synchronization phase of local conflux node.

./conflux.exe rpc debug sync-phase

Send transaction

Send a transaction to local Conflux node.

Usage

$ ./conflux.exe rpc debug send --help
conflux.exe-rpc-debug-send
Send a transaction and return its hash

USAGE:
    conflux.exe rpc debug send [OPTIONS] --from <ADDRESS> --password <STRING> --value <HEX>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --data <HEX>           Hash of the method signature and encoded parameters
        --from <ADDRESS>       Transaction from address
        --gas <HEX>            Gas provided for transaction execution [default: 0x5208]
        --gas-price <HEX>      Transaction gas price [default: 0x2540BE400]
        --nonce <HEX>          Transaction nonce
        --password <STRING>    Used to decrypt private key of sender to sign transaction
        --to <ADDRESS>         Transaction to address (empty to create contract)
        --url <url>            URL of RPC server [default: http://localhost:12537]
        --value <HEX>          value sent with this transaction

Example

Alice transfer 5 Drip (1 CFX = 10^18 Drip) to Bob. Note, the address of Alice must exist at local machine, otherwise please create account for alice at first.

./conflux.exe rpc debug send --from <alice_address> --to <bob_address> --value 0x5 --password 123456

Alice create a contract with gas 3,000,000. You can use solc to compile contract to get the bytecodes.

./conflux.exe rpc debug send --from <alice_address> --value 0x0 --gas 0x‭2DC6C0‬ --data <HEX_contract_bytecodes> --password 123456