Mining with an ASIC machine

Everything you need to know for efficient mining on our stratum servers.

Select closest location

for more efficient mining

Generate stratum
How to choose the optimal stratum?

username: YourBitcoinAddress
password: x

How much can you earn

see what your earning potential is

Calculate the profitability of your miner

Tips & Tricks

for efficient mining with your ASIC machine

Note that many ASIC devices use older versions of mining software. Some of these versions are not compatible with NiceHash, due to the extranonce2-bug (resulting in 99-100% rejects) and most of them do not (yet) support advanced stratum extranonce subscription for better efficiency (no disconnections).

Make sure that you have checked the mining software/firmware page above with the download links and instructions for ASIC mining first.

General

  • use your Bitcoin address as you stratum username and "x" (or any character) as your stratum password
  • you can add worker name in your stratum username; use the following format: "YourBitcoinAddress.WorkerName" where WorkerName is up to fifteen alphanumeric (Aa-Zz, 0-9) characters; example: 13pkLyfskZ3qWmHUoLpk8XZa6gACKQ2jDX.MyASIC01
  • make sure you are using the latest firmware on your miner
  • if possible, use a miner with extranonce.subscribe support (by adding #xnsub stratum+tcp URL parameter); you can check if you miner has extranonce.subscribe enabled at our miners page; Example
  • if you have the possibility to choose between various mining software, we recommend BFGMiner with extranonce subscription support, please take a look here
  • if your miner is using cgminer without extranonce.subscribe, please ask your ASIC manufacturers to include the extranonoce.subscribe patch from our GIT repository and provide updated cgminer binaries or firmwares with extranonoce.subscribe subscription. Details can be found here.
  • keep in mind that your miners will also be mining altcoins with lower difficulties, therefore you should test your miner in case you are overclocking
  • if you have access to software fine-tuning, you can experiment with these cgminers/BFGMiners additional settings: --queue 0 --scan-time 1 --expiry 1
  • it is very important for you to monitor the average mid-term hashrate, reported on our website (it is calculated from shares, rewarded to your miner) and the actual earnings, not only the hashrate that is displayed by your miner hardware/software, since in some cases you will be rewarded for more than your miner is showing you in terms of hashrate
  • bitcointalk.org forums are great resources for tuning ASIC miners. You are welcome to check our bitcointalk thread.
  • you are also welcome to try the stratum-proxy, explained below - especially if you hit the 99-100% reject ratio due to extranonce2-bug

Scrypt ASIC

Scrypt ASIC mining software is integrated in the mining devices and can usually be upgraded by upgrading the device firmware.

Enable extranonce.subscription by adding #xnsub suffix for stratum URL.

BFGMiner

Mind the slash '/' before #xnsub. To download the latest BFGMiner, take a look here.

stratum+tcp://scrypt.[location].nicehash.com:port_num/#xnsub

KNC Titans

Mind the slash '/' before #xnsub and add the #skipcbcheck parameter. To download the latest KNC Titan firmware, take a look here.

stratum+tcp://scrypt.[location].nicehash.com:port_num/#xnsub#skipcbcheck

cgminer

stratum+tcp://scrypt.[location].nicehash.com:port_num#xnsub

A2 Terminator

Take a look at overclocked image for A2 Innosilicon devices with extranonce.subscribe support.

Antminer L3+

SHA256 ASIC

SHA256 ASIC mining software is integrated in the mining devices and can usually be upgraded by upgrading the device firmware.

Enable extranonce.subscription by adding #xnsub suffix for stratum URL.

BFGMiner

Mind the slash '/' before #xnsub. To download the latest BFGMiner, take a look here.

stratum+tcp://sha256.[location].nicehash.com:port_num/#xnsub

cgminer

stratum+tcp://sha256.[location].nicehash.com:port_num#xnsub

Bitmaintech's AntMiners

the extranonce.subscribe feature is already included in the latest firmwares, but we recommend that you upgrade the firmware with our patches for the following devices.

Instructions on how to replace the stock AntMiner cgminer binary are included in the zip packages as a README file. A full firmware upgrade is performed via the usual official firmware upgrade procedure.

Spondoolies's SP20, SP3x

Upgrade to the latest stable firmware and you'll find an option to set

Canaan Creative's Avalon 6

extranonce.subscribe feature has been included in the xnsub release of the firmware, which was prepared by Canaan Creative Avalon developers and can be downloaded through the following links.



X11 ASIC

X11 ASIC mining software is integrated in the mining devices and can usually be upgraded by upgrading the device firmware.

Enable extranonce.subscription by adding #xnsub suffix for stratum URL.

AntMiner D3

Other ASICs

Various mining algorithms are implemented with ASIC devices, such as X11, Quark, Qubit, etc.

General

various ASIC manufacturers are integrating different mining software into their ASIC devices; in general all modern ASIC devices for any algorithms should work out-of-the-box without the need of any special tuning

Baikal Multi-algo ASIC

Baikal is Multi-Algorithm ASIC miner; some Baikal multi-algorithm ASIC miner comes with support for automatic best-profit switching for NiceHash; in order to use this feature you should set "enable-nicehashsma: true" under "Sgminer options":"value" settings

If you are an existing user of Baikal device you should download the latest firmware and upgrade your device. After upgrade, you'll be able to see NiceHash multipool with special 'enable-nicehash' option which implements our special Simple Multi-Algorithm protocol



Stratum-Proxy

Stratum-Proxy allows you to aggregate hashing power of your ASIS devices. It also enables you to overcome some of the issues which arise when connecting ASIC devices directly to NiceHash.

Stratum-Proxy guide

WARNING! to achieve the best results, you should not connect more than 10 devices/miners to a single stratum-proxy instance. Run multiple stratum-proxy instances if you will be using more than 10 devices/miners.

This guide provides a solution for miners, looking for the central management of many miners or even single miners to increase efficiency and bypass some software bugs. By using a lightweight open source stratum proxy, you will be able to overcome the extranonce2-bug and also enable the extranonce subscription, resulting in optimal performance and best payouts.

Besides optimal performance and best payouts, you'll also get other added valuable features like single-point management, REST API (pool monitoring, change pool priority, workers stats and much more) and a friendly Web-Based client with hashrate graphs.

How it works?

Miners are connected to local stratum-proxy, rather than directly to NiceHash stratum servers. Stratum-proxy converts the getwork protocol to stratum, thus bypassing the extranonce2-bug and at the same time enabling the extranonce subscription. Up to 10 miners can be connected to a single stratum-proxy instance. However, one can run multiple stratum-proxy instances on the same PC or Server (while setting a different getwork listening port for each stratum-proxy instance) to support even more than 10 miners.

How to configure stratum-proxy?

Quick overview:

  • Step 1: Install stratum-proxy on a PC or Server (no special requirements, in case of huge hashing power - multiple Gh/s will be routed through the proxy to make sure you have enough CPU and memory), located near the miners (preferably on the same LAN)
  • Step 2: Connect the miners to stratum-proxy

Detailed instructions:

  • Step 1: Download stratum-proxy from the official download page and unzip it to the PC or Server, intended for stratum-proxy
  • Step 2: Install Java Runtime Environment (JRE) for your operating system (if you don't already have one); the latest version can be downloaded here
  • Step 3: Create a NiceHash configuration file, named stratum-proxy-nicehash.conf inside the stratum-proxy unzipped folder; if you have an ASIC Scrypt miner, include the isScrypt : true directive and connect to port 3333, if you have an ASIC SHA256 miner you can skip the isScrypt : true directive and connect to port 3334; here is an example for ASIC Scrypt miner:
  • {
      "isScrypt" : true,
      "disableStratum" : true,
      "pools" :
      [
      {
        "name" : "Nicehash Scrypt",
        "host" : "scrypt.eu.nicehash.com:3333",
        "user" : "[YOUR_BITCOIN_ADDRESS]",
        "password" : "x",
        "enableExtranonceSubscribe" : true
      },
      {
        "name" : "Westhash Scrypt",
        "host" : "scrypt.usa.nicehash.com:3333",
        "user" : "[YOUR_BITCOIN_ADDRESS]",
        "password" : "x",
        "enableExtranonceSubscribe" : true
      }
      ]
    }
  • Step 4: Start stratum-proxy by simply issuing a command "java -jar stratum-proxy.jar -f stratum-proxy-nicehash.conf"
  • Step 5: You can visit the stratum-proxy dashboard at "http://[IP of your PC or Server]:8888/"
  • Step 6: Connect your miners to stratum-proxy - make sure you use http:// in the url connection string, indicating the getwork protocol; due to getwork protocol specifics, please also set the appropriate scan-time and expiry parameters with sufficiently low values (in the range of 1 - 15), for example:
  • cgminer -o http://[IP of your PC or Server]:8332 -u x -p x --scan-time=1 --queue=0 --expiry=1

    or by using the configuration file

    "pools" : [
      {
        "name" : "stratum_proxy",
        "url" : "http://[IP of your PC or Server]:8332",
        "user" : "x",
        "pass" : "x"
      }
    ]
    "scan-time" : "1",
    "queue" : "0",
    "expiry" : "1"
    ...
    Note: mind the http: instead of stratum+tcp: indicating getwork protocol; you can use whatever you want for the user and pass, since user and pass are defined in stratum-proxy
  • Step 7: If you have many miners, simply start more stratum-proxy instances to ensure better efficiency (this is a must have if you have more than 256 miners). You need separate configuration files and separate database directories for each instance. You have to add a line to stratum-proxy-nicehash-instance-2.conf, specifying different getwork listen ports, getworkListenPort : X where X is the custom number port (8331, 8330, 8329, etc.) and point the second group of miners to http://[IP of your PC or Server]:8331/, third group to :8330, etc. Please, take a look at this guide for multiple stratum-proxy instances.

Acknowledgements

stratum-proxy is an external software solution, not affiliated to NiceHash. If you like the stratum-proxy solution please support the project by donating, take a look at the bottom of the stratum-proxy development homepage. Additional information regarding stratum-proxy are available on BitcoinTalk thread

I don't have an ASIC machine

What can I do?

Sell your CPU/GPU power Buy hashing power