PyOpenCL bitcoin miner with a GUI frontend
Python C
#99 Compare This branch is 245 commits ahead, 19 commits behind m0mchil:master.
Latest commit 5c6b314 Jan 28, 2014 @Kiv Merge pull request #109 from SandroHc/patch-1
Minor change to entry on guiminer_pt.po file
Failed to load latest commit information.
screenshots Add screenshots Feb 25, 2011
.gitignore Add option for blockchain directory. Accept bitcoin-qt.exe. Nov 18, 2012 list BFL devices (ports actually) Nov 9, 2012 stop long polling on failed authorization Oct 30, 2012
LICENSE.txt Include license in distribution. Use .txt extension to be more friend… Feb 27, 2011 pass reference time for hash rate calculation Oct 17, 2012 fixed issue #54 not recovering from failed calls to ADL Nov 28, 2012
README support for stratum Sep 18, 2012 Rename README.txt to Apr 4, 2013 implemented stratum reconnect and add_peers Oct 30, 2012 set keep alive only for TCP sockets Nov 16, 2012 don't start miners if no servers are defined Nov 16, 2012
defaults.ini Integrated support for different pools with default pool configurable… Mar 14, 2011 initial support for non-opencl devices (BFL for now) Oct 5, 2012 initial support for non-opencl devices (BFL for now) Oct 5, 2012 Merge Apr 24, 2013
guiminer_de.po fix typo Nov 24, 2013
guiminer_eo.po esperanto translation / traduko Sep 4, 2012
guiminer_es.po Tidy up translations. Jun 15, 2011
guiminer_fr.po Tidy up translations more. Jun 15, 2011
guiminer_hu.po Language changes. Jul 1, 2011
guiminer_it.po Tidy up translations. Jun 15, 2011
guiminer_nl.po Dutch translation for GUIMiner Nov 1, 2011
guiminer_pt.po Minor change to entry on guiminer_pt.po file Jan 19, 2014
guiminer_ru.po Tidy up translations. Jun 15, 2011
guiminer_zh.po Update to the Chinese Simp translation Jun 15, 2011 avoid losing the com ports list (because sort() works in-place) Nov 9, 2012 detect stratum proxies Oct 29, 2012
logo.ico Force use of 16x16 icon for taskbar. Edit logo to remove translucent … Mar 29, 2011
messages.pot Language changes. Jul 1, 2011 Clean up Mar 20, 2011 further optimized kernel by Diapolo Jul 14, 2011 Update languages. Jun 5, 2011 Merge Dec 3, 2012
servers.ini Update servers.ini Apr 15, 2013 Fix for latest version. Nov 19, 2012 initial support for non-opencl devices (BFL for now) Oct 5, 2012 should use socks5errors strings when raising Socks5Error Feb 5, 2012 don't import not used miner modules Oct 17, 2012 version bump Oct 17, 2012

GUIMiner - a graphical interface for mining Bitcoins

by Chris 'Kiv' MacLeod based on:

  • "poclbm" by m0mchil
  • 'rpcminer' by puddinpop
  • bitcoin-miner by ufasoft

What is it?

GUIMiner is a graphical front end for mining Bitcoins. It provides a more convenient way to operate Bitcoin miners without having to use the command line. It supports both NVIDIA and ATI GPUs, as well as CPU mining. It supports both pooled mining and solo mining, with a wide list of pool servers pre-set with the program.

What is it not?

GUIMiner does not replace the standard Bitcoin client from - you still need that program to view your account balance and send transactions. It is not a server, so it has to connect either to a mining pool, or to your computer's 'bitcoin.exe' if mining solo.

The Latest Version

You can get the latest version on the project page at GitHub:


  • Supports multiple miners in a tabbed interface.
  • Remembers your login info between sessions.
  • Supports both solo and pooled mining.
  • Supports OpenCL, CUDA, and CPU mining.
  • Minimizes to tray. Hover on tray icon to see status.
  • Displays your accepted and stale/invalid shares over time.
  • View your account balance with a pool and/or withdraw funds from the GUI, at participating pools.


  • To mine using an ATI GPU, you need an OpenCL compatible card with a working version of OpenCL installed. If you are unsure whether your GPU supports OpenCL, try the GPU Caps Viewer:

For AMD/ATI cards, to get a version of OpenCL you need the Stream SDK which is available here:

For NVIDIA cards, you can also install OpenCL and mine that way, or you can install CUDA and use rpcminer-CUDA which may provide slightly higher performance since it is optimized specifically for NVIDIA cards.

For CPU mining, you don't need anything special; you can mine using rpcminer-cpu or rpcminer-4way; try both to see which has better performance on your CPU.

Instructions for Pooled Mining

Pooled mining is recommended for most users, since it gives steadier payouts than solo mining. Several pool servers are supported out of the box; you can select one from the "Server" dropdown menu. Different servers have different fees and features; you can visit the website for each one to learn more. Also, the official Bitcoin forums are a good source for information:

Most servers require (free) registration; to register go to the server website and follow their instructions.

Once you've registered, you can enter your login information in the fields of the GUI. The "Extra flags" field is optional and can be used to fine-tune GPU performance.

Click "Start mining!" to connect to the server. The miner should connect and start showing your hash rate. This is the number of attempts per second to solve the current block. After a while the miner will also show "shares" accepted by the pool. The more shares you have, the larger your share will be of the 50 Bitcoins when the block is solved.

To see if your hashing rate is comparable to others, you can look up your GPU on this chart:

You can save your login info for next time by using File -> Save. Next time you open the GUI your login will be remembered.

You can run multiple CPUs/GPUs in separate tabs by using File -> New and entering the new miner's login info. Remember to save your login info after it's entered.

Solo Mining

Solo mining is recommended for users with a lot of computing power available, or if you can't find or connect to any pools. It doesn't give any award at all unless you find a block (which takes weeks to months), at which point you get 50 BTC all at once.

For solo mining, instead of connecting to a pool server you connect to your own local machine's copy of 'bitcoin.exe'. Instead of registering with the pool server, you put your login info in a special file called 'bitcoin.conf'.

GUIMiner has utilities to help with these tasks. To create the bitcoin.conf, choose "Solo utilities -> Create solo password..." and create a user and password. It should show a message saying that it was successful.

To launch bitcoin.exe in server mode, you might need to point GUIMiner to the location of bitcoin.exe. If you installed Bitcoin in the regular location of Program Files/Bitcoin, you can skip this step. Otherwise choose "Solo utilities -> Set Bitcoin client path".

Then make sure bitcoin.exe is not running already and choose "Solo utilities -> Launch Bitcoin client". This should bring up the official Bitcoin client. You will need to leave this open while you are solo mining.

You will need to be connected to the Bitcoin network before you can mine; in the official client this is shown in the status bar as "6 connections" or similar.

If this is the first time you've launched the official Bitcoin client, you will also need to wait while the block chain is downloaded. This can take a long time on slower computers.

Now you can enter your information in the text boxes. Make sure the "Host" option reads "localhost" since the server is on your own machine. Put your username and password that you chose earlier. Then press "Start mining!" to connect and start mining.

Useful OpenCL flags

These flags can be entered in the Extra Flags field when using the OpenCL miner to tweak the miner settings:

-v Enable vectors, which is faster on some cards. -f30 Set priority to the specified number (default 30). A higher number is lower priority. Increase this to reduce desktop lag or to make a miner yield GPU control to other miners or games. -s0.01 Sleep for the specified number of seconds between iterations (default 0). Increase this to reduce hashing performance if your temperatures are too high.

These are the most useful flags; for a complete list, see here:

Running From Source

Running GUIMiner from source requires: - Python 2.6 or higher (Python 3 not supported) - wxPython

Mining using OpenCL with poclbm also requires:
- PyOpenCL
- numpy

Once these are installed run "" to start.

Bug Reporting

This is very early software, so any bug reports are appreciated. Issues and forks can be created at: