NiceHash's proprietary low-level CUDA miner
HTML Batchfile
Clone or download
Latest commit 24492d1 Jul 18, 2018

NiceHash Excavator

Excavator is GPU miner by NiceHash for mining various altcoins on Excavator is being actively developed by djeZo, dropky and voidstar. Miner is using custom built code base with modern approach and supporting modern NVIDIA video cards.

Download from here:

WARNING!!! Excavator is a proprietary software by NiceHash and has a special EULA. YOU ARE NOT ALLOWED TO REDISTRIBUTE IT!

How to Use Excavator?

First, make sure you have Visual C++ 2017 redistributable (x64) installed.

NVIDIA display driver 387.xx or more recent is required. CUDA devices with SM 5.0 and higher are supported.

From version 1.5.0a excavator supports only NiceHash stratums. Stratum servers are available at (LOCATION: eu, usa, hk, jp, in, br). The same stratum url is used for all algorithms.

ADVANCED There are two methods to use Excavator. Both rely on API commands you can find in API section.

  1. Using API port or HTTP API; for that, you need an application that will pass commands to the Excavator. We do not provide any such application (except web example), nor there is any public source code available (yet).

    The API works over standard TCP port and is JSON-message based with '\n' terminated messages. Do note that once you build up such application, you virtually have no limits anymore. You can truly optimize your mining to the max; you can launch various algorithms (at the same time), you can randomly assign workers (turn devices on off), do dual/triple mining, algorithm switching, adjusting TDPs, core or memory clock and fan speeds. Additionally to that, you can also read various GPU parameters and algorithm speeds reached by GPUs.

    Default API bind port is 3456, but you can change it with '-p' command line parameter.

    HTTP API is disabled by default. You can enable it by configuring command line parameters.

  2. Using start-up commanding file. See example default_command_file.json.

    File contains a JSON array of all actions that would happen during runtime of Excavator. Each array item has two mandatory fields and one optional. Mandatory is 'time' which tells you after how many seconds since start of Excavator commands should execute and 'commands' which is a JSON array of commands you can find in API section.

    Optionally you can specify 'loop' which repeat commands every 'loop' seconds. When creating algorithms and workers, note that IDs of returned objects always run from 0 and on, so first algorithm always has ID 0, second 1 etc.

    You will want to figure out ID of each card; use telnet to connect to Excavator then send command


    to retreive all available devices and their IDs.

    After you have your commanding file ready, use '-c' command line switch to provide file name when starting Excavator.

    We suggest using excavator+web+restart_script.bat that automatically launches web browser displaying status and has a restart script to put Excavator back on if it crashes.

Excavator also supports configuring console logging level and file logging level. Level '0' means full detail logging, level '6' means no logging. By default console logging is set to '2', file logging set to '6'. You can change file logging with '-f' and console logging with '-d' command line parameters.

To get details about specific algorithms that are available in Excavator, check NVIDIA information.

Command Line Parameters

Parameter Range Description Default
-h none Displays help; details about all supported command line parameters
-p 0-65535 API bind port; set to 0 to disable API 3456
-i local IP API bind IP
-wp 0-65535 HTTP API bind port 0
-wi local IP HTTP API bind IP
-wa string HTTP API authorization token
-wl string HTTP API path to index.html file web\ (windows), web/ (linux)
-d 0-6 Console log level 2
-f 0-6 File log level 6
-fn file name Log file log_$timestamp.log
-c file name Use commanding file

Additional Notices

WARNING! Excavator supports overclocking. Use overclocking at your own risk. OVERCLOCKING MAY PERMANENTLY DAMAGE YOUR COMPUTER HARDWARE!

The algorithm names are case sensitive.



  • added support for low intensity mining
  • lyra2z speed improvements for Pascal cards
  • added benchmark option to state.set method
  • API version bumped to 0.1.6
  • removed algorithms sia, lbry and daggerhashimoto_sia
  • removed '_nvidia' tag from version name


  • worker.reset is called automatically after worker initialization


  • changed benchmark job for x16r


  • added algorithm x16r


  • API version bumped to 0.1.5
  • speed improvements for lyra2z


  • API version bumped to 0.1.4
  • added algorithm lyra2z
  • lyra2rev2 bug fix


  • API version bumped to 0.1.3
  • ignore duplicate subscribe calls


  • bug fixes
  • API version bumped to 0.1.2
  • removed algorithms Nist5 and CryptoNight


  • API bug fixes
  • API version bumped to 0.1.1 (added devices.get method)
  • CryptoNight and CryptoNightV7 bug fixes
  • speed improvements for lyra2rev2 on Titan V


  • bug fixes & improvements
  • changed stratum protocol to NiceHash Miner Protocol
  • API version bumped to 0.1.0
  • added algorithm CryptoNightV7 (XMR)
  • speed improvements for CryptoNight
  • added support for Tesla P100


  • speed improvements for NeoScrypt


  • bug fixes & improvements
  • API version bumped to 0.0.3
  • added support for TITAN V


  • bug fixes & improvements
  • speed improvements for NeoScrypt


  • fixed reconnect issues on some algorithms
  • added CUDA 9.1 binaries


  • neoscrypt bug fixes & improvements


  • bug fixes & improvements
  • added algorithm Nist5
  • speed improvements for NeoScrypt
  • added '-wl' command line parameter to specify path to index.html


  • added algorithm NeoScrypt


  • bug fixes & improvements
  • fixed high CPU loads
  • support for GTX 1070 Ti and GTX 970


  • cryptonight bug fixes & improvements


  • cryptonight bug fixes & improvements


  • bug fixes & improvements
  • speed improvements for equihash
  • speed improvements for keccak
  • speed improvements for lyra2rev2


  • bug fixes & improvements
  • added algorithm cryptonight
  • added algorithm keccak


  • equihash bug fixes & improvements


  • bug fixes & improvements
  • equihash speed improvement
  • support for P106-100 and P104-100


  • bug fixes & improvements
  • improve DAG cache handling for daggerhashimoto/ethash
  • improve hardware acceleration, including reduced power consumption and named parameters for memory timings etc
  • added dual mining CUDA daggerhashimoto_sia, daggerhashimoto_pascal, daggerhashimoto_decred
  • speed improvements for CUDA sia
  • added CUDA DAG device memory storage
  • added initial Linux support


  • added support for TITAN Xp
  • added algorithm CUDA lyra2rev2
  • added API method message
  • bug fixes & improvements


  • added DAG cache host memory storage for quicker DAG switches
  • speed improvements for all CUDA algorithms for certain cards
  • CUDA faster DAG generation
  • bug fixes for AMD cards
  • added option to disable AMD support


  • further phymem.sys bug fixes
  • added algorithm CUDA daggerhashimoto
  • bug fixes


  • improved phymem.sys handling


  • digitally signed phymem.sys
  • added named parameters
  • added algorithm CUDA blake2s
  • bug fixes and improvements


  • stabilized hardware acceleration
  • improved DAG handling
  • improved lbry parameters
  • zero division bug fix


  • added hardware acceleration for Radeon RX 460/470/480/560/570/580
  • added daggerhashimoto (a.k.a. Ethash) OpenCL kernel for NiceHash
  • added algorithm details (pool stats)
  • added system details to info API
  • added optional HTTP API auth token
  • wrong OpenCL.dll fix attempt
  • improved OpenCL hardware management
  • added algorithm CUDA lbry


  • improved OpenCL hardware detection and monitoring
  • improved web page


  • added algorithm OpenCL sia
  • added algorithm OpenCL decred


  • added algorithm CUDA sia
  • general fixes and improvements


  • support for API and commanding file at the same time
  • added commanding file event: on_quit
  • fixed connection bug
  • added HTTP server for API commands
  • fixed a bug in phymem.sys
  • optimized equihash OpenCL kernel
  • added API method: info
  • general fixes and improvements


  • changed commanding interface to JSON based messages over startup file or API
  • CUDA: added decred
  • added OpenCL support
  • OpenCL: added pascal
  • OpenCL: added equihash


  • slight equihash efficiency improvement for GTX 1060 cards
  • equihash GTX 750 Ti fix
  • added missing MSVC files
  • fixed issue of inability to display proper power usage
  • general improvements


  • slight equihash speed improvement with same TDP
  • added support for GTX 1080 Ti
  • added option '-od' to set custom overclock delay
  • bug fixes and improvements


  • added reading of temperatures
  • added reading of gpu and memory controller load
  • added reading of power usage in W
  • slight pascal speed improvement
  • bug fixes and improvements


  • improved sha256t speed
  • bug fixes and improvements


  • added equihash algorithm
  • added sha256t algorithm (experiment)
  • added support for overclocking and setting TDP
  • bug fixes and improvements


  • fixed cudart64_65.dll dep
  • fixed job parsing mem leak
  • fixed diff parsing in rare cases
  • fixed extranonce2 counter
  • few % faster pascal algorithm
  • added '-cb' and '-ct' params to specify number of blocks and tpb


  • initial public alpha release
  • added support for PascalCoin