Introduction
A CPU miner 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
Run ./xelis_miner --help
to see all available options.
Miner Address
Set the miner address. This address is used to and earn mining rewards.
This is a mandatory option.
Example: ./xelis_miner --miner-address <YOUR_ADDRESS>
.
Daemon Address
Set the daemon address to which you want to connect.
By default, the miner connects to the a local node at 127.0.0.1:8080
.
To connect to another node (domain or ip:port format), use: ./xelis_miner --daemon-address testnet-node.xelis.io
.
Benchmark
Enable the benchmark mode. This will run the miner without submitting any block and will print the hashrate of the miner.
To enable the benchmark mode, use: ./xelis_miner --benchmark
.
In case you want to changes the number of iterations to use for the benchmark, use: ./xelis_miner --benchmark --iterations 100
.
Numbers of Threads
Set the number of threads to use for the miner. By default, the numbers of threads is set to the number of logical cores of the CPU.
Minimum is 1 and maximum is 255.
Example to set the numbers of threads to 4: ./xelis_miner --num-threads 4
.
Worker
Set the worker name to use for the miner. This is useful to identify the miner in the daemon.
Default is set to default
.
Example to set the worker name to myworker
: ./xelis_miner --worker myworker
.
Disable File Logging
By default, the daemon is logging to a file. To disable it, use: ./xelis_miner --disable-file-logging
.
Disable Date-Based File Log Naming
Disable date-based file naming for logs. If disabled, the log file will be named xelis-daemon.log instead of YYYY-MM-DD.xelis-daemon.log
To disable, use: ./xelis_miner --disable-file-log-date-based
.
Disable Log Colors
Disable the usage of colors in the log.
To disable, use: ./xelis_miner --disable-log-color
.
Disable Interactive Mode
Disable terminal interactive mode. You will not be able to write CLI commands in it or have an updated prompt.
To disable, use: ./xelis_miner --disable-interactive-mode
.
Filename Log
Set a custom log file name. By default, the filename is set to xelis-miner.log
.
Log file are stored in the logs
folder and are named with the date of the day.
To set the filename to mylog.log
, use: ./xelis_miner --filename-log mylog.log
.
Logs Modules
Module configuration for logs.
To set, use: ./xelis_miner --logs-modules module_name=off
.
Logs Dir Path
Set a custom directory path to store the logs files.
By default it will be logs/
of the current directory.
To set the directory path to mylogs/
, use: ./xelis_miner --logs-path mylogs/
.
NOTE: The directory will be created using the provided path if it does not exist. The path must end with a /
.
Log Level
Set the log level to use. Available values are trace
, debug
, info
, warn
, error
.
By default, the log level is set to info
.
Example to set the log level to debug: ./xelis_miner --log-level debug
.
File Log Level
Set the file log level to use. Available values are trace
, debug
, info
, warn
, error
.
This is useful to have a different log level for the file log than the console log.
By default, the file log level is set to value passed to --log-level
(which is also info
by default).
To set the file log level to debug: ./xelis_miner --file-log-level debug
.
Version
Print the version of the miner.
To print the version, use: ./xelis_miner --version
.