PhoenixMiner 4.1c: fastest Ethereum/Ethash miner with lowest devfee (Win/Linux)

IMPORTANT! The versions of PhoenixMiner before 4.0 only support DAG epoch up to 235. ETC passed epoch 235 a few weeks ago, and recently ETH also passed DAG epoch 235. The unfortunate result is that the old version(s) of PhoenixMiner won't be able to create DAG or mine ETH or ETC any more - you must upgrade to PhoenixMiner 4.x if you are mining ETH or ETC.

Changes in version 4.1c (since 4.0b):
  • Added faster "turbo" kernels (-clkernel 3) for AMD 470/480/570/580 GPUs. These are usually faster than normal kernels (-clkernel 1 or -clkernel 2) but require double the amount of VRAM. This means that you can only use them on 8 GB cards if mining ETH or ETC. You can use them on cards with 4 GB or less VRAM only if you are mining low DAG epoch coins.
  • Added Blake2s dual mining kernels, and green kernels for AMD Fury GPUs
  • Added Blake2s dual mining kernels for AMD 280/285/290/380/390 GPUs
  • New faster kernels for AMD 280/290/390 GPUs
  • Added alternative kernels (-clkernel 2) for AMD 280 GPUs
  • Added options -pauseat and -resumeat for scheduled pausing and resuming of the miner. Example: -resumeat 22:00 -pauseat 6:00 - the miner will mine only between 22:00 and 6:00. Example 2: -resumeat 22:00,12:00 -pauseat 6:00,16:00 - you can specify multiple pause and resume times.
  • (Windows only) The miner now prevents the computer from sleeping if the mining is not paused, and wakes the computer when it must resume mining at the time specified with -resumeat command-line option. In combination with -pauseat and -resumeat options this allows you to mine only when the electricity rates are lower and to keep your rig(s) asleep the rest of the time.
  • When the miner is paused for more than a few minutes, the pool is disconnected. The pool connection is restored when the mining is resumed.
  • Added a watchdog protection against freezing of the network connection thread
  • Automatic selection of compatible devfee coin if there isn't enough VRAM to mine ETH and the main coin can't be recognized or isn't supported for devfee
  • Automatic switch to the next pool if the cards VRAM is not enough for the requited DAG epoch. This is especially useful if the pool is auto-switching the coins but your cards only support lower DAG epoch coins.
  • Added a -rvram option to set the minimal reserved VRAM that can't be used for mining. The default values are 384 MB on Windows, and 128 MB on Linux. You can also set -rvram -1 if you want to turn off the protection against using too much VRAM.
  • Added command-line option -vs to just print the version (e.g. 4.1c) and exit
  • Added command-line option -wdtimeout to set the timeout of the watchdog timer. The valid values are from 30 to 300 seconds, the default is 45 seconds.
  • Added support for Windows AMD drivers 18.12.x and 19.1.1
  • Other small improvements and fixes

PhoenixMiner is fast (arguably the fastest) Ethash (ETH, ETC, Muiscoin, EXP, UBQ, etc.) miner that supports
both AMD and Nvidia cards (including in mixed mining rigs). It runs under Windows x64 and Linux x64
and has a developer fee of 0.65% (the lowest in the industry). This means that every 90
minutes the miner will mine for us, its developers, for 35 seconds.

The speed is generally faster than Claymore's Ethereum miner in eth only mode
(we have measured about 0.4-1.3% speed improvement but your results may be slightly lower or
higher depending on the GPUs). To achieve highest possible speed on AMD cards it may be needed
to manually adjust the GPU tune factor (a number from 8 to about 400, which can be changed
interactively with the + and - keys while the miner is running).

If you have used Claymore's Dual Ethereum miner, you can switch to PhoenixMiner with
minimal hassle as we support most of Claymore's command-line options and confirguration

Please note that PhoenixMiner is extensively tested on many mining rigs but there still may be some bugs.
Additionally, we are actively working on bringing many new features in the future releases.
If you encounter any problems or have feature requests, please post them here (in this thread).
We will do our best to answer in timely fashion.


1. Quick start

You can download PhoenixMiner 4.1c from here:!ybAX2QJb!TsBuMe2FhsRLh44yfGuzbw (MEGA)

If you want to check the integrity of the downloaded file, please use the following hashes:
SHA-1: 695f269c335f7d525ecf96450702d643f15af98a
SHA-256: 93c3678a324fe677076cd746222dfec8e26be0fc758f0df080e14d6a5c8c4b91
SHA-512: 7c8544a3bfd367872b624b9e1bda12d1b5484a08d6e4d0a25abec2654242ceaf1df3a29fcd86e0a5bfd71927d1bda1ad716fc6d52a9cbddb714a8c521bb8db7b

File: PhoenixMiner_4.1c_Linux.tar.gz
SHA-1: 981dc17b1f51d56a1d025940c936a779f3be9198
SHA-256: 26d07ecb98c4d49205894224503a9faa4a1b5c5750875899cded22e5f2506815
SHA-512: c02c6baef626039de1070ca5e049c5a65986fa0e86ad64fdc019fe30599fd664238c20f1ab1cd7e3a68c82c9f54d16032a323e481018a0044881767104f44120

Here are the command line parameters for some of the more popular pools and coins: (ETH):
PhoenixMiner.exe -pool -pool2 -wal YourEthWalletAddress.WorkerName -proto 3 (ETH, secure connection):
PhoenixMiner.exe -pool ssl:// -pool2 ssl:// -wal YourEthWalletAddress.WorkerName -proto 3 (ETH):
PhoenixMiner.exe -pool -pool2 -wal YourEthWalletAddress.WorkerName -proto 3 (ETH):
PhoenixMiner.exe -pool -wal YourEthWalletAddress/WorkerName -pass x (ETH):
PhoenixMiner.exe -pool -wal YourEthWalletAddress/WorkerName -pass x
nicehash (ethash):
PhoenixMiner.exe -pool stratum+tcp:// -wal YourBtcWalletAddress -pass x -proto 4 -stales 0
f2pool (ETH):
PhoenixMiner.exe -epool -ewal YourEthWalletAddress -pass x -worker WorkerName
miningpoolhub (ETH):
PhoenixMiner.exe -pool -wal YourLoginName.WorkerName -pass x -proto 1 (ETH):
PhoenixMiner.exe -pool -wal YourLoginName.WorkerName -pass x -proto 1 (ETC):
PhoenixMiner.exe -pool -wal YourEtcWalletAddress.WorkerName (ETC):
PhoenixMiner.exe -pool -pool2 -worker WorkerName -wal YourEtcWalletAddress -pass x -retrydelay 2 (ethash auto-switching):
PhoenixMiner.exe -pool -wal YourEthWalletAddress -worker WorkerName -proto 2 (EXP):
PhoenixMiner.exe -pool -wal YourExpWalletAddress/WorkerName
miningpoolhub (MUSIC):
PhoenixMiner.exe -pool -wal YourLoginName.WorkerName -pass x -proto 1 (UBIQ):
PhoenixMiner.exe -pool -wal YourUbqWalletAddress -worker WorkerName -coin ubq (UBIQ):
PhoenixMiner.exe -pool -wal YourUbqWalletAddress -pass x -worker WorkerName -coin ubq (UBIQ):
PhoenixMiner.exe -pool -wal YourUbqWalletAddress.WorkerName -pass x -proto 4 -coin ubq (PIRL):
PhoenixMiner.exe -pool -wal YourPirlWalletAddress -pass x -worker WorkerName (Metaverse ETP):
PhoenixMiner.exe -pool -wal YourMetaverseETPWalletAddress -worker Rig1 -pass x (Ellaism):
PhoenixMiner.exe -pool -wal YourEllaismWalletAddress -worker Rig1 -pass x (ETH PPS):
PhoenixMiner.exe -pool -wal YourEthWalletAddress.WorkerName -proto 4 -pass x (ETH HVPPS):
PhoenixMiner.exe -pool -wal YourEthWalletAddress.WorkerName -proto 4 -pass x (CLO):
PhoenixMiner.exe -pool -pool2 -worker WorkerName -wal YourEthWalletAddress -pass x -coin clo -retrydelay 2 (CLO):
PhoenixMiner.exe -pool -wal YourEthWalletAddress -pass x -coin clo -worker rigName

Dual-mining command-line examples:

ETH on ETH, Blake2s on Nicehash:
PhoenixMiner.exe -pool ssl:// -pool2 ssl:// -wal YourEthWalletAddress.WorkerName -proto 3 -dpool -dwal YourBtcWalletAddress -dcoin blake2s
Nicehash (Ethash + Blake2s):
PhoenixMiner.exe -pool stratum+tcp:// -wal YourBtcWalletAddress -pass x -proto 4 -stales 0 -dpool -dwal YourBtcWalletAddress -dcoin blake2s

2. Features, requirements, and limitations

* Supports AMD Vega, 580/570/480/470, 460/560, Fury, 390/290 and older AMD GPUs with enough VRAM
* Supports Nvidia 10x0 and 9x0 series as well as older cards with enough VRAM
* Highly optimized OpenCL and CUDA cores for maximum ethash mining speed
* Optional "green" kernels for RX580/570/560/480/470/460 to lower the power consumption by 2-3% with small, or no drop in hashrate
* Lowest developer fee of 0.65% (35 seconds defvee mining per each 90 minutes)
* Dual mining ethash/Blake2s with lowest devfee of 0.9% (35 seconds defvee mining per each 65 minutes)
* Advanced statistics: actual difficulty of each share, effective hashrate at the pool, and optional showing of estimated income in USD
* DAG file generation in the GPU for faster start-up and DAG epoch switches
* Supports all ethash mining pools and stratum protocols
* Supports secure pool connections (e.g. ssl:// to prevent IP hijacking attacks
* Detailed statistics, including the individual cards hashrate, shares, temperature and fan speed
* Unlimited number of fail-over pools in epools.txt configuration file (or two on the command line)
* Automatic GPU tuning for the AMD GPUs to achieve maximum performance with your rig
* Supports devfee on alternative ethash currencies like ETC, EXP, Music, UBQ, Pirl, Ellaism, Metaverse ETP, PGC, Akroma, WhaleCoin, Victorium, Nekonium, Mix, EtherGem, Aura, HBC, Genom, EtherZero, Callisto, DubaiCoin, MOAC, Ether-1, and EtherCC. This allows you to use older cards with small VRAM or low hashate on current DAG epochs (e.g. GTX970).
* Full compatibility with the industry standard Claymore's Dual Ethereum miner, including most of command-line options, configuration files, and remote monitoring and management.
* Supports the new Ubqhash algorithm for the UBQ coin. Please note that you must add -coin ubq to your command line (or COIN: ubq to your epools.txt file) in order to mine UBQ
* More features coming soon!

PhoenixMiner requires Windows x64 (Windows 7, Windows 10, etc.), or Linux x64 (tested on Ubuntu LTS
and Debian stable).

PhenixMiner also supports dual mining (simulataneous mining of ethash and other cryptocoin algorithm).
Currently we support only Blake2s as secondary algorithm for dual mining and this feature is only
supported on AMD GPUs (RX460/470/480/560/570/580 and Vega). Note that when using dual mining, there
is no devfee on the secondary coin but the devfee on the main coin is increased to 0.9%. In other words,
if you are using the dual mining feature PhoenixMiner will mine for us for 35 seconds every 65 minutes.

Solo mining is supported since version 2.7c.

While the miner is running, you can use some interactive commands. Press the key 'h' while the
miner's console window has the keyboard focus to see the list of the available commands. The
interactive commands are also listed at the end of the following section.

3. Command-line arguments

Note that PhoenixMiner supports most of the command-line options of Claymore's dual Ethereum miner
so you can use the same command line options as the ones you would have used with Claymore's miner.

Pool options:
-pool <host:port> Ethash pool address (prepend the host name with ssl:// for SSL pool, or http:// for solo mining)
-wal <wallet> Ethash wallet (some pools require appending of user name and/or worker)
-pass <password> Ethash password (most pools don't require it, use 'x' as password if unsure)
-worker <name> Ethash worker name (most pools accept it as part of wallet)
-proto <n> Selects the kind of stratum protocol for the ethash pool:
1: miner-proxy stratum spec (e.g. coinotron)
2: eth-proxy (e.g. dwarfpool, nanopool) - this is the default, works for most pools
3: qtminer (e.g. ethpool)
4: EthereumStratum/1.0.0 (e.g. nicehash)
-coin <coin> Ethash coin to use for devfee to avoid switching DAGs:
auto: Try to determine from the pool address (default)
eth: Ethereum
etc: Ethereum Classic
exp: Expanse
music: Musicoin
ubq: UBIQ
pirl: Pirl
ella: Ellaism
etp: Metaverse ETP
pgc: Pegascoin
akroma: Akroma
whale: WhaleCoin
vic: Victorium
nuko: Nekonium
mix: Mix
egem: EtherGem
aura: Aura
hbc: Hotelbyte Coin
gen: Genom
etz: EtherZero
clo: Callisto
dbix: DubaiCoin
moac: MOAC
etho: Ether-1
etcc: EtherCC
-stales <n> Submit stales to ethash pool: 1 - yes (default), 0 - no
-pool2 <host:port> Failover ethash pool address. Same as -pool but for the failover pool
-wal2 <wallet> Failover ethash wallet (if missing -wal will be used for the failover pool too)
-pass2 <password> Failover ethash password (if missing -pass will be used for the failover pool too)
-worker2 <name> Failover ethash worker name (if missing -worker will be used for the failover pool too)
-proto2 <n> Failover ethash stratum protocol (if missing -proto will be used for the failover pool too)
-coin2 <coin> Failover devfee Ethash coin (if missing -coin will be used for the failover pool too)
-stales2 <n> Submit stales to the failover pool: 1 - yes (default), 0 - no
-dpool <host:port> Dual mining pool address
-dwal <wallet> Dual mining wallet
-dpass <password> Dual mining pool password (most pools don't require it, use 'x' as password if unsure)
-dworker <name> Dual mining worker name
-dcoin blake2s Currently only the Blake2s algorithm is supported for dual mining. If you want to put
all dual mining pools in dpools.txt, you need to set -dcoin blake2s in the command-line or in config.txt
to force the miner to load the dual mining pools from dpools.txt
-dstales <n> Submit stales to the dual mining pool: 1 - yes (default), 0 - no
General pool options:
-fret <n> Switch to next pool afer N failed connection attempts (default: 3)
-ftimeout <n> Reconnect if no new ethash job is receved for n seconds (default: 600)
-ptimeout <n> Switch back to primary pool after n minutes. This setting is 30 minutes by default;
set to 0 to disable automatic switch back to primary pool.
-retrydelay <n> Seconds to wait before reconnecting (default: 20)
-gwtime <n> Recheck period for Solo/GetWork mining (default: 200 ms)
-rate <n> Report hashrate to the pool: 1 - yes, 0 - no (1 is the default)
Benchmark mode:
-bench [<n>],-benchmark [<n>] Benchmark mode, optionally specify DAG epoch. Use this to test your rig.
Remote control options:
-cdm <n> Selects the level of support of the CDM remote monitoring:
0: disabled
1: read-only - this is the default
2: full (only use on secure connections)
-cdmport <port> Set the CDM remote monitoring port (default is 3333). You can also specify
<ip_addr:port> if you have a secure VPN connection and want to bind the CDM port to it
-cdmpass <pass> Set the CDM remote monitoring password
-cdmrs Reload the settings if config.txt is edited/uploaded remotely. Note that most options require restart in order to change.
Currently the follwing options can be changed without restarting: -mi, -gt, -sci, -clf, -nvf, and all hardware control parameters
(-tt, -fanmin, -fanmax, -powlim, -tmax, -cclock, -cvddc, -mclock, -mvddc).
Mining options:
-amd Use only AMD cards
-acm Turn on AMD compute mode on the supported GPUs. This is equivalent of pressing 'y' in the miner console.
-nvidia Use only Nvidia cards
-gpus <123 ..n> Use only the specified GPUs (if more than 10, separate the indexes with comma)
-mi <n> Set the mining intensity (0 to 14; 12 is the default for the new kernels). You may specify this option per-GPU.
-gt <n> Set the GPU tuning parameter (6 to 400). The default is 15. You can change the
tuning parameter interactively with the '+' and '-' keys in the miner's console window.
If you don't specify -gt or you specify value 0, the miner will start auto-tuning to determine the best GT value for each GPU
Note that when the GPU is dual-mining, it ignores the -gt values, and uses -sci instead.
-sci <n> Set the dual mining intensity (1 to 1000). The default is 30. As you increase the value of -sci,
the secondary coin hashrate will increase but the price will be higher power consumption and/or
lower ethash hashrate.
You can change the this parameter interactively with the '+' and '-' keys in the miner
console window. You may specify this option per-GPU. If you set -sci to 0,
the miner will use auto-tuning to determine the best value, while trying to maximize the
ethash hashrate regardless of the secondary coin hashrate.
-clKernel <n> Type of OpenCL kernel: 0 - generic, 1 - optimized, 2 - alternative, 3 - turbo (1 is the default)
-clGreen <n> Use the power-efficient ("green") kernels (0: no, 1: yes; default: 0).
You may specify this option per-GPU. Note that you have to run auto-tune again as the
optimal GT values are completely different for the green kernels
-clNew <n> Use the new AMD kernels (0: no, 1: yes; default: 1)
-clf <n> AMD kernel sync (0: never, 1: periodic; 2: always; default: 1)
-nvNew <n> Use new Nvidia kernels if supported (0: no, 1: yes; default: 1)
-nvf <n> Nvidia kernel sync (0: never, 1: periodic; 2: always; 3: forced; default: 1). You may specify this option per-GPU.
-mode <n> Mining mode (0: dual mining if dual pool(s) are specified; 1: ethash only even if dual pools are specified).
You may specify this option per-GPU.
-list List the detected GPUs devices and exit
-minRigSpeed <n> Restart the miner if avg 5 min speed is below <n> MH/s
-eres <n> Allocate DAG buffers big enough for n epochs ahead (default: 2) to
avoid allocating new buffers on each DAG epoch switch, which should improve DAG switch stability
-lidag <n> Slow down DAG generation to avoid crashes when swiching DAG epochs
(0-3, default: 0 - fastest, 3 - slowest). This option works only on AMD cards
-gser <n> Serializing DAG creation on multiple GPUs (0 - no serializing, all GPUs generate the DAG simultaneously, this is the default;
1 - partial overlap of DAG generation on each GPU; 2 - no overalp (each GPU waits until the previous one has finished generating the DAG);
3-10 - from 1 to 8 seconds delay after each GPU DAG generation before the next one)
-gpureset <n> Fully reset GPU when paused (0 - no, 1 - yes; default: no, except on 1080Ti). You may specify this option per-GPU.
-altinit Use alternative way to initialize AMD cards to prevent startup crashes
-rvram <n> Minimum free VRAM in MB (-1: don't check; default: 384 for Windows, and 128 for Linux)
-wdog <n> Enable watchdog timer: 1 - yes, 0 - no (1 is the default). The watchdog timer checks
periodically if any of the GPUs freezes and if it does, restarts the miner (see the -rmode
command-line parameter for the restart modes)
-wdtimeout <n> Watchdog timeout (30 - 300; default 45 seconds). You can use this parameter to increase
the default watchdog timeout in case it restarts the miner needlessly
-rmode <n> Selects the restart mode when a GPU crashes or freezes:
0: disabled - miner will shut down instead of restarting
1: restart with the same command line options - this is the default
2: reboot (shut down miner and execute reboot.bat)
-log <n> Selects the log file mode:
0: disabled - no log file will be written
1: write log file but don't show debug messages on screen (default)
2: write log file and show debug messages on screen
-logfile <name> Set the name of the logfile. If you place an asterisk (*) in the logfile name, it will be
replaced by the current date/time to create a unique name every time PhoenixMiner is started. If there
is no asterisk in the logfile name, the new log entries will be added to end of the same file. If you
want to use the same logfile but the contents to be overwritten every time when you start the miner,
put a dollar sign ($) character in the logfile name (e.g. -logfile my_log.txt$).
-logdir <path> Set a path where the logfile(s) will be created
-logsmaxsize <n> Maximum size of the logfiles in MB. The default is 200 MB (use 0 to turn off the limitation).
On startup, if the logfiles are larger than the specified limit, the oldest are deleted. If you use a
single logfile (by using -logfile), then it is truncated if it is bigger than the limit and a new one
is created.
-timeout <n> Restart miner according to -rmode after n minutes
-pauseat <hh:mm> Pause the miner at hh::mm (24 hours time). You can specify multiple times: -pauseat 6:00,12:00
-resumeat <hh:mm> Resume the miner at hh::mm (24 hours time). You can specify multiple times: -resumeat 8:00,22:00
-gswin <n> GPU stats time window (5-30 sec; default: 15; use 0 to revert to pre-2.8 way of showing momentary stats)
-gsi <n> Speed stats interval (5-30 sec; default: 5; use 0 to disable). The detailed stats are still
shown every 45 seconds and aren't affected by the -gsi value
-astats <n> Show advanced stats from Web sources (0: no; 1: yes). By default the coin exchange rates are updated every
4 hours, and the coin difficulty is updated every 8 hours. You can increase these periods by specifying
for example -astats 12, which will increase update periods to 12 and 24 hours respectively
-gpow <n> Lower the GPU usage to n% of maximum (default: 100). If you already use -mi 0 (or other low value) use -li instead
-li <n> Another way to lower the GPU usage. Bigger n values mean less GPU utilization; the default is 0.
-resetoc Reset the hardware overclocking settings on startup
-leaveoc Do not reset overclocking settings when closing the miner
Hardware control options (most are for AMD cards only, only tt 0-4, tstop, and tstart are supported on Nvidia GPUs), use comma to specify different values for each GPU:
-tt <n> Set fan control target temperature (special values: 0 - no HW monitoring on ALL cards,
1-4 - only monitoring on all cards with 30-120 seconds interval, negative - fixed fan speed at n %)
-fanmin <n> Set fan control min speed in % (-1 for default)
-fanmax <n> Set fan control max speed in % (-1 for default)
-tmax <n> Set fan control max temperature (0 for default)
-powlim <n> Set GPU power limit in % (from -75 to 75, 0 for default)
-cclock <n> Set GPU core clock in MHz (0 for default)
-cvddc <n> Set GPU core voltage in mV (0 for default)
-mclock <n> Set GPU memory clock in MHz (0 for default)
-mvddc <n> Set GPU memory voltage in mV (0 for default)
-tstop <n> Pause a GPU when temp is >= n deg C (0 for default; i.e. off)
-tstart <n> Resume a GPU when temp is <= n deg C (0 for default; i.e. off)
General Options:
-v,--version Show the version and exit
-vs Show short version string (e.g. "4.1c") and exit
-h,--help Show information about the command-line options and exit

Per-GPU options
Some of the PhoenixMiner options can provide either the same setting for all GPUs, or a different
setting for each of the GPUs. For example, to specify the -gt value for all cards you would write
-gt 90 but if you want to specify a different GT value for each of the cards, use something like this:
-gt 20,15,40,90,90 for a five-GPU mining rig. This would set GT to 20 for the first GPU, 15 for the second
GPU, and so on. If you specify less values than you have GPUs, the rest of the GPUs will use the default
value for the parameter.

Additionally, while the miner is running, you can use the following interactive commands
in the console window by pressing one of these keys:
s Print detailed statistics
1-9 Pause/resume GPU1 ... GPU9 (if you have more than 9 GPUs, type 010 for card 10, 011 for card 11, etc.)
p Pause/resume the whole miner
+,- Increase/decrease GPU tuning parameter
g Reset the GPU tuning parameter (and stop auto-tuning if active)
x Select the GPU(s) for manual or automatic GT tuning
z Start AMD auto-tune process
r Reload epools.txt and switch to primary ethash pool
e Select the current ethash pool (if you have more than 9 pools in the list, type 010 for pool 10, 011 for pool 11, etc.)
d Select the current dual-mining pool
y Turn on AMD Compute mode if it is off on some of the GPUs
c Reload the config.txt file (some settings require restart, see -cdmrs option above for details)
h Print this short help