Skip to Content

Introduction

The xelis_miner application is a CPU miner that allows you to participate in securing the XELIS network by contributing your computer’s central processing unit (CPU) power to validate transactions and produce new blocks.

Unlike specialized hardware such as GPUs or ASICs, CPU mining uses the processing resources already built into most desktop and laptop computers, making it the most accessible way to start mining.

This approach is particularly useful for newcomers who want to support the network, test configurations, or mine with spare capacity on personal machines.

While CPUs are generally less powerful than dedicated mining hardware, they provide an easy, low-barrier entry point into the XELIS ecosystem.

The XELIS CPU miner is lightweight, integrates directly with the node software, and requires minimal setup,
allowing anyone to start mining and earning XEL rewards with just a few configuration steps.

Configuration

Connects to a daemon, receives GetWork jobs, and mines blocks for the configured reward address.

log_level

Minimum log level printed to the terminal

FieldValue
Usage--log-level <LOG_LEVEL>
RequiredNo
ValueYes
Value nameLOG_LEVEL
Default valueinfo
Possible valuesoff, error, warn, info, debug, trace

file_log_level

Minimum log level written to the log file.

Defaults to the terminal log level.

FieldValue
Usage--file-log-level <FILE_LOG_LEVEL>
RequiredNo
ValueYes
Value nameFILE_LOG_LEVEL
Possible valuesoff, error, warn, info, debug, trace

disable_file_logging

Disable writing logs to a file

FieldValue
Usage--disable-file-logging
RequiredNo
ValueNo
Value nameDISABLE_FILE_LOGGING
Default valuefalse
Possible valuestrue, false

disable_file_log_date_based

Disable date-based log filenames.

When enabled, the log file is named xelis-miner.log instead of YYYY-MM-DD.xelis-miner.log.

FieldValue
Usage--disable-file-log-date-based
RequiredNo
ValueNo
Value nameDISABLE_FILE_LOG_DATE_BASED
Default valuefalse
Possible valuestrue, false

auto_compress_logs

Compress rotated log files automatically.

This only applies when file logging is enabled.

FieldValue
Usage--auto-compress-logs
RequiredNo
ValueNo
Value nameAUTO_COMPRESS_LOGS
Default valuefalse
Possible valuestrue, false

disable_log_color

Disable colors in terminal logs

FieldValue
Usage--disable-log-color
RequiredNo
ValueNo
Value nameDISABLE_LOG_COLOR
Default valuefalse
Possible valuestrue, false

disable_interactive_mode

Disable the interactive terminal prompt.

CLI commands and live prompt updates are unavailable in this mode.

FieldValue
Usage--disable-interactive-mode
RequiredNo
ValueNo
Value nameDISABLE_INTERACTIVE_MODE
Default valuefalse
Possible valuestrue, false

filename_log

Log filename stored inside logs_path.

Defaults to xelis-miner.log. Unless date-based filenames are disabled, daily log files are named YYYY-MM-DD.xelis-miner.log.

FieldValue
Usage--filename-log <FILENAME_LOG>
RequiredNo
ValueYes
Value nameFILENAME_LOG
Default valuexelis-miner.log

logs_path

Directory where log files are written.

Defaults to logs/. The path must end with / or \.

FieldValue
Usage--logs-path <LOGS_PATH>
RequiredNo
ValueYes
Value nameLOGS_PATH
Default valuelogs/

logs_modules

Per-module log filters

FieldValue
Usage--logs-modules <LOGS_MODULES>
RequiredNo
ValueYes
Value nameLOGS_MODULES
MultipleYes

disable_ascii_art

Disable the ASCII art shown at startup

FieldValue
Usage--disable-ascii-art
RequiredNo
ValueNo
Value nameDISABLE_ASCII_ART
Default valuefalse
Possible valuestrue, false

datetime_format

Datetime format used in log entries

FieldValue
Usage--datetime-format <DATETIME_FORMAT>
RequiredNo
ValueYes
Value nameDATETIME_FORMAT
Default value\[%Y-%m-%d\] (%H:%M:%S%.3f)

benchmark

Enable benchmark mode for the selected proof-of-work algorithm

FieldValue
Usage--benchmark <BENCHMARK>
RequiredNo
ValueYes
Value nameBENCHMARK
Possible valuesv1, v2, v3

iterations

Number of proof-of-work iterations to run per benchmark thread count

FieldValue
Usage--iterations <ITERATIONS>
RequiredNo
ValueYes
Value nameITERATIONS
Default value100

miner_address

Wallet address that receives mined block rewards

FieldValue
Usage-m <MINER_ADDRESS>, --miner-address <MINER_ADDRESS>
RequiredNo
ValueYes
Value nameMINER_ADDRESS

daemon_address

Daemon RPC address used to receive mining work

FieldValue
Usage--daemon-address <DAEMON_ADDRESS>
RequiredNo
ValueYes
Value nameDAEMON_ADDRESS
Default value127.0.0.1:8080

api_bind_address

Bind address for the miner stats API

FieldValue
Usage--api-bind-address <API_BIND_ADDRESS>
RequiredNo
ValueYes
Value nameAPI_BIND_ADDRESS

num_threads

Number of mining threads to use.

Defaults to the detected CPU parallelism.

FieldValue
Usage-n <NUM_THREADS>, --num-threads <NUM_THREADS>
RequiredNo
ValueYes
Value nameNUM_THREADS

worker

Worker name displayed by the daemon

FieldValue
Usage-w <WORKER>, --worker <WORKER>
RequiredNo
ValueYes
Value nameWORKER
Default valuedefault

config_file

JSON configuration file to load

FieldValue
Usage--config-file <CONFIG_FILE>
RequiredNo
ValueYes
Value nameCONFIG_FILE

generate_config_template

Generate a configuration template at config_file

FieldValue
Usage--generate-config-template
RequiredNo
ValueNo
Value nameGENERATE_CONFIG_TEMPLATE
Default valuefalse
Possible valuestrue, false
Last updated on