Network
| Short option | Long option | Description | Version |
|---|---|---|---|
| -o | --url=URL | URL of mining server | All |
| -a | --algo=ALGO | mining algorithm | All |
| --coin=COIN | specify coin instead of algorithm | 3.2.0+ | |
| -u | --user=USERNAME | username for mining server | All |
| -p | --pass=PASSWORD | password for mining server | All |
| -O | --userpass=U:P | username:password pair for mining server | All |
| -x | --proxy=HOST:PORT | connect through a SOCKS5 proxy | 5.7.0+ |
| -k | --keepalive | send keepalive packet for prevent timeout (needs pool support) | All |
| --nicehash | enable nicehash support | All | |
| --rig-id=ID | rig identifier for pool-side statistics (needs pool support) | 2.6.1+ | |
| --tls | enable SSL/TLS support (needs pool support) | 2.8.0+ | |
| --tls-fingerprint=HEX | pool TLS certificate fingerprint for strict certificate pinning | 2.8.0+ | |
| --dns-ipv6 | prefer IPv6 records from DNS responses | 6.11.0+ | |
| --dns-ttl=N | N seconds (default: 30) TTL for internal DNS cache | 6.11.0+ | |
| --daemon | use daemon RPC instead of pool for solo mining | 3.0.0+ | |
| --daemon-poll-interval=N | daemon poll interval in milliseconds (default: 1000) | 3.0.0+ | |
| --self-select=URL | self-select block templates from URL | 4.4.0+ | |
| --submit-to-origin | also submit solution back to self-select URL | 6.9.0+ | |
| -r | --retries=N | number of times to retry before switch to backup server (default: 5) | All |
| -R | --retry-pause=N | time to pause between retries (default: 5) | All |
| --user-agent | set custom user-agent string for pool | 2.3.0+ | |
| --donate-level=N | donate level, default 1% (1 minute in 100 minutes) | All | |
| --donate-over-proxy=N | control donate over xmrig-proxy feature | 3.0.0+ |
CPU backend
| Short option | Long option | Description | Version |
|---|---|---|---|
| --no-cpu | disable CPU mining backend | 3.0.0+ | |
| -t | --threads=N | number of CPU threads. Proper CPU affinity required for some optimizations. | All |
| --cpu-affinity=N | set process affinity to CPU core(s), mask 0x3 for cores 0 and 1 | All | |
| -v | --av=N | algorithm variation, 0 auto select | All |
| --cpu-priority=N | set process priority (0 idle, 2 normal to 5 highest) | 2.3.0+ | |
| --cpu-max-threads-hint=N | maximum CPU threads count (in percentage) hint for autoconfig | 4.2.0+ | |
| --cpu-memory-pool=N | number of 2 MB pages for persistent memory pool, -1 (auto), 0 (disable) | 4.3.0+ | |
| --cpu-no-yield | prefer maximum hashrate rather than system response/stability | 5.1.1+ | |
| --no-huge-pages | disable huge pages support | 2.3.0+ | |
| --hugepage-size=N | custom hugepage size in kB (Linux only) | 2.8.1+ | |
| --huge-pages-jit | enable huge pages support for RandomX JIT code | All | |
| --asm=ASM | ASM optimizations, possible values: auto, none, intel, ryzen, bulldozer | 2.8.0+ | |
| --argon2-impl=IMPL | argon2 implementation: x86_64, SSE2, SSSE3, XOP, AVX2, AVX-512F | 6.3.1+ | |
| --randomx-init=N | thread count to initialize RandomX dataset | 3.0.0+ | |
| --randomx-no-numa | disable NUMA support for RandomX | 3.0.0+ | |
| --randomx-mode=MODE | RandomX mode: auto, fast, light | 5.1.0+ | |
| --randomx-1gb-pages | use 1GB hugepages for RandomX dataset (Linux only) | 5.2.0+ | |
| --randomx-wrmsr=N | write custom value(s) to MSR registers or disable MSR mod (-1) | 5.2.0+ | |
| --randomx-no-rdmsr | disable reverting initial MSR values on exit | 5.5.0+ | |
| --randomx-cache-qos | enable Cache QoS | 6.3.1+ |
OpenCL backend
| Short option | Long option | Description | Version |
|---|---|---|---|
| --opencl | enable OpenCL mining backend | 5.0.0+ | |
| --opencl-devices=N | comma separated list of OpenCL devices to use | 5.0.0+ | |
| --opencl-platform=N | OpenCL platform index or name | 5.0.0+ | |
| --opencl-loader=PATH | path to OpenCL-ICD-Loader (OpenCL.dll or libOpenCL.so) | 5.0.0+ | |
| --opencl-no-cache | disable OpenCL cache | 5.0.0+ | |
| --print-platforms | print available OpenCL platforms and exit | 5.0.0+ |
CUDA backend
| Short option | Long option | Description | Version |
|---|---|---|---|
| --cuda | enable CUDA mining backend | 5.0.0+ | |
| --cuda-loader=PATH | path to CUDA plugin (xmrig-cuda.dll or libxmrig-cuda.so) | 5.0.0+ | |
| --cuda-devices=N | comma separated list of CUDA devices to use | 5.0.0+ | |
| --cuda-bfactor-hint=N | bfactor hint for autoconfig (0-12) | 5.0.1+ | |
| --cuda-bsleep-hint | bsleep hint for autoconfig | 5.0.1+ | |
| --no-nvml | disable NVML (NVIDIA Management Library) support | 5.0.0+ |
API
| Short option | Long option | Description | Version |
|---|---|---|---|
| --api-worker-id=ID | custom worker-id for API | 2.4.0+ | |
| --api-id=ID | custom instance ID for API | 2.4.0+ | |
| --http-host=HOST | bind host for HTTP API (default: 127.0.0.1) | 5.0.0+ | |
| --http-port=N | bind port for HTTP API | 5.0.0+ | |
| --http-access-token=T | access token for HTTP API | 5.0.0+ | |
| --http-no-restricted | enable full remote access to HTTP API (only if access token set) | 5.0.0+ |
Logging
| Short option | Long option | Description | Version |
|---|---|---|---|
| -S | --syslog | use system log for output messages | All |
| -l | --log-file=FILE | log all output to a file | All |
| --print-time=N | print hashrate report every N seconds | All | |
| --health-print-time=N | print health report every N seconds | 5.0.0+ | |
| --no-color | disable colored output | All | |
| --verbose | verbose output | 5.4.0+ |
Misc
| Short option | Long option | Description | Version |
|---|---|---|---|
| -c | --config=FILE | load a JSON-format configuration file | All |
| -B | --background | run the miner in the background | All |
| -V | --version | output version information and exit | All |
| -h | --help | display this help and exit | All |
| --dry-run | test configuration and exit | All | |
| --export-topology | export hwloc topology to a XML file and exit | 3.0.0+ | |
| --title | set custom console window title | 6.0.1+ | |
| --no-title | disable setting console window title | 6.0.1+ | |
| --pause-on-battery | pause mine on battery power | 6.3.1+ | |
| --pause-on-active=N | pause mine when the user is active (resume after N seconds of last activity) | 6.9.0+ | |
| --stress | run continuous stress test to check system stability | 6.4.0+ | |
| --bench=N | run benchmark, N can be between 1M and 10M | 6.4.0+ | |
| --submit | perform an online benchmark and submit result for sharing | 6.5.0+ | |
| --verify=ID | verify submitted benchmark by ID | 6.5.0+ | |
| --seed=SEED | custom RandomX seed for benchmark | 6.5.0+ | |
| --hash=HASH | compare benchmark result with specified hash | 6.5.0+ | |
| --no-dmi | disable DMI/SMBIOS reader | 6.8.0+ |
Memory size requirements
2080 MB per NUMA node for dataset, 1 NUMA node usually equal to 1 CPU socket, the miner show number of nodes on startup.
256 MB for cache on first NUMA node.
256 KB of L2 cache and 2 MB of L3 cache per 1 mining thread.
CPU cache requirements is the main reason why the miner not use all threads on most CPUs (very popular question). On Windows 4GB memory may not enough system and miner.
There are several ways to increase or reduce memory requirements:
1GB huge pages on Linux, increases memory requirements to 3GB (3 pages) per NUMA node and increases the hashrate by 1-3%.
Disable NUMA support by "numa": false in "randomx" object, miner will use only 1 dataset, but it reduce hashrate significantly, if you have only 1 NUMA node this option has no effect.
RandomX light mode, reduces memory requirements to 256 MB but this mode very slow, can be enabled by "mode": "light", in "randomx" object.
Multiple memory channels may be required:
DDR3 memory is limited to about 1500-2000 H/s per channel (depending on frequency and timings)
DDR4 memory is limited to about 4000-6000 H/s per channel (depending on frequency and timings)
Huge Pages
Huge Pages can increase RandomX performance up to 50%, 1GB huge pages (Linux only) increase hashrate by an additional 1-3% on top of regular huge pages.
Hardware prefetchers MSR mod
You must disable hardware prefetchers to get the optimal RandomX performance.
Cache QoS
Experimental feature to disallow all CPU cores which are not mining to not have access to L3 cache which reduce interference with mining.