This miner is free-to-use, however, current developer fee is 1% for Ethereum-only mining mode (-mode 1) and 2% for dual mining mode (-mode 0), every hour the miner mines for 36 or 72 seconds for developer.

Decred/Siacoin/Lbry/Pascal is mined without developer fee.

If you dont agree with the dev fee - dont use this miner, or use "-nofee" option.

Attempts to cheat and remove dev fee will cause a bit slower mining speed (same as "-nofee 1") though miner will show same hashrate.

Miner cannot just stop if cheat is detected because creators of cheats would know that the cheat does not work and they would find new tricks. If miner does not show any errors or slowdowns, they are happy.

This version is for recent AMD videocards only: 7xxx, 2xx and 3xx, 2GB or more. Recent nVidia videocards are supported as well.

There are builds for Windows x64 and for Linux x64 (tested on Ubuntu 12.04). No 32-bit support.

You can also set this option for every card individually, for example "-etha 0,1,0".

-asm (AMD cards only) enables assembler GPU kernels. In this mode some tuning is required even in ETH-only mode, use "-dcri" option or or "+/-" keys in runtime to set best speed.

Currently ETH-LBRY mode is not supported in assembler.

Specify "-asm 0" to disable this option. You can also specify values for every card, for example "-asm 0,1,0". Default value is "1".

If ASM mode is enabled, miner must show "GPU #x: algorithm ASM" at startup.

Check "FINE-TUNING" section below for additional notes.

NEW: added alternative assembler kernels for Tonga and Polaris cards for ETH-only mode. Use them if you get best speed at "-dcri 1" (i.e. you cannot find speed peak), use "-asm 2" option to enable this mode.

-ethi Ethereum intensity. Default value is 8, you can decrease this value if you dont want Windows to freeze or if you have problems with stability. The most low GPU load is "-ethi 0".

Also "-ethi" now can set intensity for every card individually, for example "-ethi 1,8,6".

You can also specify negative values, for example, "-ethi -8192", it exactly means "global work size" parameter which is used in official miner.

-eres this setting is related to Ethereum mining stability. Every next Ethereum epoch requires a bit more GPU memory, miner can crash during reallocating GPU buffer for new DAG.

To avoid it, miner reserves a bit larger GPU buffer at startup, so it can process several epochs without buffer reallocation.

This setting defines how many epochs miner must foresee when it reserves GPU buffer, i.e. how many epochs will be processed without buffer reallocation. Default value is 2.

-allpools Specify "-allpools 1" if miner does not want to mine on specified pool (because it cannot mine devfee on that pool), but you agree to use some default pools for devfee mining.

Note that if devfee mining pools will stop, entire mining will be stopped too.

-allcoins Specify "-allcoins 1" to be able to mine Ethereum forks, in this mode miner will use some default pools for devfee Ethereum mining.

Note that if devfee mining pools will stop, entire mining will be stopped too.

Miner has to use two DAGs in this mode - one for Ethereum and one for Ethereum fork, it can cause crashes because DAGs have different sizes.

Therefore for this mode it is recommended to specify current Ethereum epoch (or a bit larger value),

Another option is to specify "-allcoins -1", in this mode miner will start devfee round immediately after start and therefore will get current epoch for Ethereum, after that it will be able to mine Ethereum fork.

If you mine Expanse, the best way is to specify "-allcoins exp", in this mode devfee mining will be on Expanse too and DAG wont be recreated at all.

If you mine ETC on some pool that does not accept wallet address but requires Username.Worker instead, the best way is to specify "-allcoins etc", in this mode devfee mining will be on ETC pools and DAG wont be recreated at all.

-etht Time period between Ethereum HTTP requests for new job in solo mode, in milliseconds. Default value is 200ms.

-erate send Ethereum hashrate to pool. Default value is "1", set "-erate 0" if you dont want to send hashrate.

-estale send Ethereum stale shares to pool, it can increase effective hashrate a bit. Default value is "1", set "-estale 0" if you dont want to send stale shares.

-di GPU indexes, default is all available GPUs. For example, if you have four GPUs "-di 02" will enable only first and third GPUs (#0 and #2).

You can also turn on/off cards in runtime with "0"..."9" keys and check current statistics with "s" key.

For systems with more than 10 GPUs: use letters to specify indexes more than 9, for example, "a" means index 10, "b" means index 11, etc.

-gser this setting can improve stability on multi-GPU systems if miner hangs during startup. It serializes GPUs initalization routines. Use "-gser 1" to serailize some of routines and "-gser 2" to serialize all routines.

-dcri Decred/Siacoin/Lbry/Pascal intensity, or Ethereum fine-tuning value in ETH-only ASM mode. Default value is 30, you can adjust this value to get the best Decred/Siacoin/Lbry mining speed without reducing Ethereum mining speed.

You can also specify values for every card, for example "-dcri 30,100,50".

You can change the intensity in runtime with "+" and "-" keys and check current statistics with "s" key.

So you can create "reboot.bat" file and perform some actions, for example, reboot system if you put this line there: "shutdown /r /t 5 /f".

-minspeed minimal speed for ETH, in MH/s. If miner cannot reach this speed for 5 minutes for any reason, miner will be restarted (or "reboot.bat" will be executed if "-r 1" is set). Default value is 0 (feature disabled).

-retrydelay delay, in seconds, between connection attempts. Default values is "20". Specify "-retrydelay -1" if you dont need reconnection, in this mode miner will exit if connection is lost.

You can see current Decred intensity coefficients in detailed statistics ("s" key). So if you set "-dcri 50" but Decred/Siacoin intensity coefficient is 20% it means that GPU currently mines Decred/Siacoin at "-dcri 10".

You can also specify values for every card, for example "-ttdcr 80,85,80". You also should specify non-zero value for "-tt" option to enable this option.

It is a good idea to set "-ttdcr" value higher than "-tt" value by 3-5C.

You can see if intensity was reduced in detailed statistics ("s" key).

You can also specify values for every card, for example "-ttli 80,85,80". You also should specify non-zero value for "-tt" option to enable this option.

It is a good idea to set "-ttli" value higher than "-tt" value by 3-5C.

-tstop set stop GPU temperature, miner will stop mining if GPU reaches specified temperature. For example, "-tstop 95" means 95C temperature. You can also specify values for every card, for example "-tstop 95,85,90".

This feature is disabled by default ("-tstop 0"). You also should specify non-zero value for "-tt" option to enable this option.

If it turned off wrong card, it will close miner in 30 seconds.

You can also specify negative value to close miner immediately instead of stopping GPU, for example, "-tstop -95" will close miner as soon as any GPU reach 95C temperature.

-fanmax set maximal fan speed, in percents, for example, "-fanmax 80" will set maximal fans speed to 80%. You can also specify values for every card, for example "-fanmax 50,60,70".

This option works only if miner manages cooling, i.e. when "-tt" option is used to specify target temperature. Default value is "100".

Note: for NVIDIA cards this option is not supported.

-fanmin set minimal fan speed, in percents, for example, "-fanmin 50" will set minimal fans speed to 50%. You can also specify values for every card, for example "-fanmin 50,60,70".

This option works only if miner manages cooling, i.e. when "-tt" option is used to specify target temperature. Default value is "0".

Note: for NVIDIA cards this option is not supported.

-cclock set target GPU core clock speed, in MHz. If not specified or zero, miner will not change current clock speed. You can also specify values for every card, for example "-cclock 1000,1050,1100,0".

Note: for some drivers versions AMD blocked underclocking for some reason, you can overclock only.

Note: this option changes clocks for all power states, so check voltage for all power states in WattMan or use -cvddc option.

By default, low power states have low voltage, setting high GPU clock for low power states without increasing voltage can cause driver crash.

Note: for NVIDIA cards this option is not supported.

-mclock set target GPU memory clock speed, in MHz. If not specified or zero, miner will not change current clock speed. You can also specify values for every card, for example "-mclock 1200,1250,1200,0".

Note: for some drivers versions AMD blocked underclocking for some reason, you can overclock only.

Note: for NVIDIA cards this option is not supported.

-powlim set power limit, from -50 to 50. If not specified, miner will not change power limit. You can also specify values for every card, for example "-powlim 20,-20,0,10".

Note: for NVIDIA cards this option is not supported.

-cvddc set target GPU core voltage, multiplied by 1000. For example, "-cvddc 1050" means 1.05V. You can also specify values for every card, for example "-cvddc 900,950,1000,970". Supports latest AMD 4xx cards only in Windows.

Note: for NVIDIA cards this option is not supported.

-mvddc set target GPU memory voltage, multiplied by 1000. For example, "-mvddc 1050" means 1.05V. You can also specify values for every card, for example "-mvddc 900,950,1000,970". Supports latest AMD 4xx cards only in Windows.

You can also use your web browser to see current miner state, for example, type "localhost:3333" in web browser.

Warning: use negative option value or disable remote management entirely if you think that you can be attacked via this port!

By default, miner will accept connections on specified port on all network adapters, but you can select desired network interface directly, for example, "-mport 127.0.0.1:3333" opens port on localhost only.

-mpsw remote monitoring/management password. By default it is empty, so everyone can ask statistics or manage miner remotely if "-mport" option is set. You can set password for remote access (at least EthMan v3.0 is required to support passwords).

-colors enables or disables colored text in console. Default value is "1", use "-colors 0" to disable coloring. Use 2...4 values to remove some of colors.

-v displays miner version, sample usage: "-v 1".

-altnum alternative GPU indexing. This option does not change GPU order, but just changes GPU indexes that miner displays, it can be useful in some cases. Possible values are:

0: default GPU indexing. For example, if you specify "-di 05" to select first and last GPUs of six GPUs installed, miner will display these two selected cards as "GPU0" and "GPU1".

1: same as "0", but start indexes from one instead of zero. For example, if you specify "-di 05" to select first and last GPUs of six GPUs installed, miner will display these two selected cards as "GPU1" and "GPU2".

2: alternative GPU indexing. For example, if you specify "-di 05" to select first and last GPUs of six GPUs installed, miner will display these two selected cards as "GPU0" and "GPU5".

3: same as "2", but start indexes from one instead of zero. For example, if you specify "-di 05" to select first and last GPUs of six GPUs installed, miner will display these two selected cards as "GPU1" and "GPU6".

Default value is "0".

CONFIGURATION FILE

You can use "config.txt" file instead of specifying options in command line.

If there are not any command line options, miner will check "config.txt" file for options.

If there is only one option in the command line, it must be configuration file name.

If there are two or more options in the command line, miner will take all options from the command line, not from configuration file.

Place one option per line, if first character of a line is ";" or "#", this line will be ignored.

You can also use environment variables in "epools.txt" and "config.txt" files. For example, define "WORKER" environment variable and use it as "%WORKER%" in config.txt or in epools.txt.