DankMiner v1.4.0 — Multi-Algorithm GPU + CPU Miner
(c) 2026 DankMiner / 1Miner.net
Dev fees: 2% capstash, 1% xelis, 1% warthog, 2% xmr (RandomX)

SINGLE BINARY — all kernels embedded. No external files needed.
CUDA + OpenCL + RandomX in one binary. NVIDIA + AMD + CPU support.
Web dashboard at http://localhost:4068

----------------------------------------------------------------------
QUICK START — CapStash (GPU, default pool):
  dankminer -a capstash -w YOUR_ADDRESS -p stratum+tcp://1miner.net:3691 --worker rig1

QUICK START — Solo CapStash (against your own capstashd):
  dankminer -a capstash -w YOUR_ADDRESS -p http://user:pass@127.0.0.1:33333

QUICK START — Xelis (GPU):
  dankminer -a xelis -w YOUR_XELIS_ADDRESS -p stratum+tcp://1miner.net:4073

QUICK START — Warthog (GPU + CPU, JanusHash):
  dankminer -a warthog -w YOUR_WART_ADDRESS -p stratum+tcp://1miner.net:4200

QUICK START — Monero / XMR (CPU only, RandomX rx/0):
  dankminer -a xmr -w YOUR_XMR_ADDRESS -p stratum+tcp://1miner.net:3333

QUICK START — AMD GPU (forces OpenCL backend):
  dankminer -a capstash -w YOUR_ADDRESS -p stratum+tcp://1miner.net:3691 --force-opencl

----------------------------------------------------------------------
DUAL MINING (GPU + CPU, one process, one screen):

  Mine CapStash on the GPU and any RandomX rx/0 coin on the CPU at the
  same time. Both algos report into the same dashboard, both keep their
  own dev-fee schedule, both submit shares independently.

  Add --xmr-wallet to ANY GPU primary command:
    dankminer -a capstash -w YOUR_CAP_ADDRESS -p stratum+tcp://1miner.net:3691 \
              --xmr-wallet YOUR_XMR_ADDRESS --xmr-threads 12

  --xmr-pool defaults to stratum+tcp://1miner.net:3333 (Monero) but
  accepts ANY RandomX rx/0 stratum URL. The CPU side runs vanilla
  tevador/RandomX v1.2.1 with default rx/0 parameters, so it works
  with Monero, Zephyr, Salvium, Townforge, and any other coin that
  uses the standard rx/0 algorithm. Variants with non-default RandomX
  parameters (Wownero rx/wow, ArQmA rx/arq, etc.) are NOT supported.

  Custom RandomX rx/0 pool example:
    dankminer -a capstash -w YOUR_CAP_ADDRESS -p stratum+tcp://1miner.net:3691 \
              --xmr-wallet YOUR_RX_ADDRESS \
              --xmr-pool stratum+tcp://your-rx0-pool.example:3333 \
              --xmr-threads 12

  Low-memory mode (256 MiB instead of ~2 GB, ~10x slower hashrate):
    Add --xmr-light to the dual-mining command above.

  Threading rule of thumb: use ~physical cores, not logical threads.
  RandomX hates SMT and hates oversubscription. On a 12-core / 24-thread
  CPU, --xmr-threads 11 or 12 will outperform --xmr-threads 23.

----------------------------------------------------------------------
WEB DASHBOARD:
  Open http://localhost:4068 in your browser while mining.
  Shows hashrate per algo, shares, GPU info, CPU thread count, live log.
  In dual-mining the GPU primary and CPU passenger render side by side.

----------------------------------------------------------------------
CLI OPTIONS:
  -a ALGO              Algorithm: capstash, xelis, warthog, xmr
  -w WALLET            Wallet/payout address for the primary algo
  -p URL               Pool or RPC URL for the primary algo
  -W NAME              Worker name
  --force-opencl       Use OpenCL (for AMD GPUs or NVIDIA without CUDA)
  --cpu-cores N        Pin the miner to the first N logical CPU cores
  --cpu-affinity LIST  Pin process to CPU cores (e.g. 0,1 or 0-3 or 0,2-5)
                       Safe for CapStash / Xelis — pure GPU algos will not
                       lose hashrate even when pinned to a single core.
                       For Warthog (CPU-bound VerusHash) allow 4+ cores or
                       the miner will warn about reduced hashrate.
  -c FILE              Config file (default: config.txt)

DUAL-MINING FLAGS (require a GPU primary; -a capstash / xelis / warthog):
  --xmr-wallet ADDR    Run RandomX rx/0 on the CPU alongside the primary.
                       Opt-in: dual mining only activates when this is set.
  --xmr-pool URL       RandomX pool URL (default stratum+tcp://1miner.net:3333).
                       Accepts any rx/0 stratum URL — not Monero-locked.
  --xmr-worker NAME    Worker name for XMR (default: same as -W)
  --xmr-threads N      CPU threads for XMR (default: hw cores - 1)
  --xmr-light          Light-mode RandomX (256 MiB, ~10x slower than full)

----------------------------------------------------------------------
LOW-CPU MODE EXAMPLES:
  Keep the miner on 2 cores so the rest of the CPU is free for your workstation:
    dankminer -a capstash -w ADDR -p stratum+tcp://1miner.net:3691 --cpu-cores 2

  Same thing with an explicit core list:
    dankminer -a capstash -w ADDR -p stratum+tcp://1miner.net:3691 --cpu-affinity 0,1

  Dedicated 8-core rig, mining Warthog — use cores 0-3 for mining, leave 4-7 free:
    dankminer -a warthog -w ADDR -p stratum+tcp://1miner.net:4200 --cpu-affinity 0-3

  Dual mining on a 16-core rig, GPU CapStash + 12 CPU threads on XMR:
    dankminer -a capstash -w CAP_ADDR -p stratum+tcp://1miner.net:3691 \
              --xmr-wallet XMR_ADDR --xmr-threads 12

----------------------------------------------------------------------
CONFIG FILE:
  Add either of these inside a pool config:
    "cpu_cores": 2
    "cpu_affinity": "0,1"

  Array form is also accepted:
    "cpu_affinity": [0, 1]

----------------------------------------------------------------------
SUPPORTED HARDWARE:
  NVIDIA: GTX 1060+ through RTX 5090 (CUDA, embedded fatbin)
  AMD:    RX 580+ through RX 7900 (OpenCL, encrypted kernel)
  Intel:  Arc (OpenCL, experimental)
  CPU:    any x86-64 with AES-NI for RandomX (XMR / dual mining)

SUPPORTED ALGORITHMS:
  capstash   GPU      Whirlpool-512 XOR-fold (CapStash native)
  xelis      GPU      XelisHash V3 (Xelis native)
  warthog    GPU+CPU  JanusHash = SHA256t GPU + VerusHash CPU
  xmr        CPU      RandomX rx/0 (Monero, Zephyr, Salvium, etc.)

SUPPORTED MODES:
  Solo:      Single algo on GPU OR CPU (any of the four above)
  Dual:      GPU primary (capstash/xelis/warthog) + CPU RandomX passenger
