Please login or register.

The official Qt GUI Project

First of all, this idea is posted on behalf of the developer.

What will be done?

Initially, the hours that are funded will be used to complete the official GUI, of which the sneak peaks have been around for a while now -> In addition, one of the goals is to make the architecture such that it will be fairly easy allow plugins. For example, this architecture will allow to be plugged into the GUI such that you can pay every Bitcoin address from your Monero (GUI) wallet. Another goal is to make the GUI portable to smartphones. The hours that remain after having completed the GUI will be used to work on other features. There should be a better estimate of hours needed to complete the GUI once the work really has started.

This is going to be a lot of work as we want to have a really flexible UI with a great plugin architecture and useability that is lacking all current cryptocurrency GUIs.

Who will work on this task?

mbg033 (Ilya Kitaev) will work on this. Ilya is a cross-platform C/C++/Qt software developer 7+ years of experience in software development for Linux and Windows platforms. Furthermore, he is familiar with the following additional skills/technologies: CEF (Chromium Embedded Framework), Python, Lua, Ruby, Objective-C, PHP, Java, Javascript, SQL, WinAPI, posix API, EPICS, Modbus, OPC, networking, multi-threading, make, cmake, automake, autoconf.


The CLI has long been seen as a hurdle to adoption. The new Hydrogen Helix release (mainly the database) and the 0MQ work allows for a GUI implementation to be completed. In other words, the codebase is stable enough for a GUI release. With this official GUI, Monero will be better usable and accessible for the average Joe. Also, it will make promoting Monero more easy and will allow us to expand the user base.

The Proposal and Milestones

The proposal is to raise 14,000 XMR for 280 hours of work, which is approximately 25.00$ per hour. Ilya will work 10 hours per week at the beginning, expanding into more hours per week later when some other project is finished. We will will make a bi-weekly summary of what he has done. Optionally, an extension can be discussed / proposed once his contract ends.

His work and the activity can be followed on:

Fluffypony and me will help him and work together on the implementation and will oversee everything - as always unpaid :P.

So far we already did some stuff like completing the language selection in the wizard:

Some more screenshots:

Replies: 22
Othe edited 8 years ago Weight: 0 | Link [ - ]

Long time no see, here are the actual hours worked on the GUI. The GUI is currently functional for sending and receiving, some stuff like advanced options have to be finished but if you guys want you can already try and compile it from ilya´s github.

Week April 18 - April 24
19/04/2016 TransactionInfo and TransactionHistrory API design 1.5

20/04/2016 transaction history api continued 2

22/04/2016 Wallet API: transaction history in progress 2

Week April 25 - May 1
26/04/2016 merge with upstream 2

29/04/2016 Wallet API: transaction history in progress 2

Week May 2 - May 8
05/05/2016 Started WalletListener interface 1.5

Week May 9 - May 15
05/05/2016 Started WalletListener interface 1.5

12/05/2016 synced with upstream; tried faster transactions on testnet 2.5

13/05/2016 WalletListener insteface continued 1

Week May 16 - May 22
16/05/2016 WalletListener insteface continued, WalletListener interface tests 3

17/05/2016 "bitmonero: libwallet_api: WalletListener::moneyReceived test; bitmonero: libwallet: added ""install"" actions to install libwallet_api header and lib monero-core: integrating libwallet to the project" 3

18/05/2016 monero-core: resolving libwallet linkage issues 2.5 19/05/2016 monero-core: resolving libwallet linkage issues 1 20/05/2016 monero-core: resolving libwallet linkage issues 2

Week May 23 - May 29
25/05/2016 bitmonero: merging static libraries 1.5 26/05/2016 bitmonero: merging static libraries 2 27/05/2016 "bitmonero: merging static libraries monero-core: libwallet_merged build script + main project file fixed for link boost libs" 4

Week May 30 - June 5
30/05/2016 bitmonero: libwallet_api - trying to debug 2 01/06/2016 bitmonero: libwallet_api - trying to debug 1.5 02/06/2016 bitmonero: libwallet_api - trying to debug 0.75 03/06/2016 WalletManager::findWallets, monero-core integration continued 3

Week June 7 - June 12
07/06/2016 Start in normal mode if wallet exists. Resolves #9 1.5

08/06/2016 Qt wrappers for libwallet API classes 2.75

10/06/2016 "libwallet_api: - Wallet::filename, Wallet::keysFilename, tests for move wallet - wallet::default_mixin exposed to public interface as Wallet::setDefaultMixin, Wallet::defaultMixin; wallet::create_transaction_2 used in Wallet::createTransaction gui: new wallet wizard: wallet created in temporary directory and moved to the user selected destination at the final step" 3

Week June 13 - June 19
14/06/2016 monero-core: "new wallet" and "recovery wallet" flows are implemented using libwallet api. Actual changes committed after the final page of wizard submitted 2.5

15/06/2016 "monero-core: Persistent storage for common settings. closes #10 main application: initialize wallet, display balance" 2

16/06/2016 "monero-core: basic ""send money"" functionality implemented in GUI bitmonero: double/string to monero integer convertion methods" 4 17/06/2016 Balance on UI updated by the signal 1.5

Week June 20 - June 26
20/06/2016 "bitmonero: Wallet::createTransaction: added mixin_count param monero-core: mixin count for Wallet::createTransaction" 1.75

21/06/2016 "monero-core: merge PR #12 bitmonero: merging upstream monero-core: receive page design" 2

22/06/2016 Fixing PR 1.5

23/06/2016 "Wallet: payment id and integrated address WalletManager::findWallets: searching by ""keys"" files instead of ""address.txt"" files rebasing against bitmonero:master" 2.75

24/06/2016 "CMake: GPL 'libutils' script replaced with BSD licensed Wallet::paymentIdValid method" 2

26/06/2016 Monero-core: Added "Receive" page. Hide all pages except "Transfer" and "Receive". 5

Week June 27 - July 03
27/06/2016 Integrate "Transaction priority" for the GUI and wallet api 2

28/06/2016 monero-core: confirmation popups added 2

01/07/2016 monero-core, bitmonero: fixing msys2 build 1.5

Week July 04 - July 10
04/07/2016 Fixed windows msys2 build 1.5

06/07/2016 Fixing macosx build 1

10/07/2016 WalletListener functionality 4

Week July 11 - July 17
13/07/2016 "GUI: flags replaced; GUI: async api integration in progress; libwallet_api: cmake improvements libwallet_api: segfault fixed;" 3.5

14/07/2016 "libwallet_api: async stuff monero_core: async stuff" 4

This comment has been stickied at the top of the thread! Go to post

pa posted 8 years ago Weight: 0 | Link [ - ]

1000 sent; make it so!

smooth edited 8 years ago Weight: 0 | Link [ - ]

Crypto Kingdom character MoneroHouse is donating 500

Thanks to saddam for waiving his normal processing fee on this transaction!

paratox posted 8 years ago Weight: 0 | Link [ - ]

430 sent :)

rocco edited 8 years ago Replies: 2 | Weight: 0 | Link [ - ]

is the whole dev team supporting this? this plug in support sounds like some possible vulnerability too, am i wrong?

how does it the dependence to 0mq, is it clear yet how much work there still needs to be done ?

thanks guys, lets do this. i support anyway i just want to be sure.

anyway, the 0mq sounds a lot of testing should be done. please invite the community to do so once time has come.

Reply to: rocco
dEBRUYNE edited 8 years ago Weight: 0 | Link [ - ]

MoneroHouse is the CK account of the core/dev team. So I assume they support it as well. The 0MQ is probably answered better by someone more technical.

Also, as general remark, make sure to include a payment ID, otherwise it won't show up in this particular proposal.

EDIT: Regarding the 0MQ state, if I recall correctly, it was usable in dev before a lot of PRs, but some of those might have regressed the 0MQ state. Fluffypony and Moneromooo are going to check the state of 0MQ and will report this in the 2nd dev meeting, if I recall correctly.

EDIT2: Here are the logs from the last meeting, it's somewhere in there, just crtl + F and you should find it fairly quick.

Reply to: rocco
smooth posted 8 years ago Weight: 0 | Link [ - ]

The plug in feature requires some security considerations for sure.

Arux edited 8 years ago Weight: 0 | Link [ - ]

I compiled successfully the last commit available (de7bd2e Jul 15, 2016 ) i'm waiting full synchronization of the blockchain to send and receive xmr through the gui.

i ran into some trouble but nothing critical e.g:

  • Qt 5.5 is needed (Qt 5.4.2 is not enought so ubuntu 15.10 can't compile the gui)
  • into, line 120, i used translate.commands = $(COPY) $$PWD/translations/*.qm ${DESTDIR} instead of translate.commands = $(COPY) $$PWD/*.qm ${DESTDIR}

i didn't see instructions so i post mine

from a fresh install of ubuntu 16.04:

sudo apt-get install cmake git libssl-dev libboost-all-dev
git clone
cd monero-core
sudo apt-get install qtbase5-dev qt5-default qttools5-dev-tools qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtquick-xmllistmodel qml-module-qtquick-dialogs 

hope it helps

[EDIT] after setting up a private testnet network (see for very clean and understandable instructions), i can confirm i was able to sent and receive xmr with the GUI. I am eager to see next update!

primer- posted 8 years ago Weight: 0 | Link [ - ]

1 XMR sent.

TheKoziTwo edited 8 years ago Weight: 0 | Link [ - ]

+2500 XMR

dnaleor posted 8 years ago Replies: 1 | Weight: 0 | Link [ - ]


Syncing client. Will send 337+ XMR tomorrow, making my total 1337.1337 ;)

Reply to: dnaleor
dnaleor edited 8 years ago Weight: 0 | Link [ - ]

Syncing took me a while on my HDD (don't have SSD). Meanwhile 337 would be above the target. Donated 201 :)

txid: 739c4a4f2acc958ed1431388836e0b8925fd1ed32dbcffab5a41adcf43e35cc0

floam412 posted 8 years ago Weight: 0 | Link [ - ]

Contributed with what little XMR I'm able to part with for this insanely important project... So it made sense to me to contribute +77.7 for good luck :)

Othe edited 8 years ago Weight: 0 | Link [ - ]

Sorry for barely posting here, here´s an overview of what has been done so far:

Date Task Hours spent

Week Jan 25 - Jan 31
29/01/2016 German + English translations; "disabled" state for next button 1

Week Feb 01 - Feb 7
03/02/2016 Wizard path #2 3 04/02/2016 merging / testing pull request 1 05/02/2016 "word mnemonics" component#1 1 06/02/2016 "word mnemonics" component continued, wizard paths refactored, password strength 4

Week Feb 8 - Feb 14
08/02/2016 wizard: fix wordings, next button and wallet directrory 1 12/02/2016 bitmonero: fixed msys2 x64 build files 1.5 13/02/2016 bitmonero: wallet_api.h/cpp 1

Week Feb 15 - Feb 21
16/02/2016 wallet2_api continued 3 20/02/2016 tests for wallet2_api 2 21/02/2016 wallet::seed() added to interface + tests 1

Week Feb 22 - Feb 28
22/02/2016 started integrating wallet library with QML 1 24/02/2016 integrating cpp wallet mockups with QML: implemented mockups for "createWallet" and move wallet files to appropriate location if wallet path changed in wizard 2

Week Feb 29 - March 6
29/02/2016 Qt wrapper for libwallet - in-progress 3 01/03/2016 wizard: saving locale instead of language; wallet interface continued 2

Week March 7 - March 13
10/03/2016 changes in wallet2_api + implemented WalletManager::openWallet 3 11/03/2016 Wallet::setPassword() method for wallet2_api 3 12/03/2016 Wallet::address + WalletManager::recoveryWallet 1

Week March 14 - March 20
15/03/2016 Wallet::store(path) 2 16/03/2016 PR rebasing 1

Week March 21 - March 27
21/03/2016 wallet2::store implemented as wallet2::store_to 2 25/03/2016 testnet option added to api; 1

Week March 28 - April 03
31/03/2016 Wallet::refresh + tests, testnet option by default 1.5 31/03/2016 wallet::transfer 1

Week April 04 - April 10
04/04/2016 Wallet::transfer continued 2.5

He has more time now, so expect a bit of a faster progress from now on.

Gingeropolous posted 8 years ago Replies: 1 | Weight: 0 | Link [ - ]

is it possible to ask mbg033 to make a conscious effort to either comment the code he has to understand to make the GUI work, or take notes such that other developers don't have to re-figure out things that he's already figured out?

Reply to: Gingeropolous
opennux posted 8 years ago Replies: 1 | Weight: 0 | Link [ - ]

I would expect that to be part of reaching the milestone. If it's shitty code (which includes no-comments?) then it's not going to be merged. But he is working with fluffy and othe (whom even have suggested him) so that gives enough peace of mind.

Reply to: opennux Gingeropolous
Gingeropolous posted 8 years ago Weight: 0 | Link [ - ]

naw, I mean commenting the existing monero codebase. The whole "if your going to have to figure out the monero code, might as well communicate what you figure out so someone else doesn't have to"

obvi he comments his own code. :)

Drhiggins posted 8 years ago Weight: 0 | Link [ - ]

Sent 200 XMR. The poor mans contribution. I've been looking forward to this project for a long time.

Lloydimiller4 posted 8 years ago Weight: 0 | Link [ - ]

Donated 2,000: Money successfully sent, transaction <57424da5bef41f2451d21f51096a9cbbb990a70bafea79636314f85bfbfc46dd>

leotreasure posted 8 years ago Weight: 0 | Link [ - ]

Small contribution on the way. Please include Taiwan as a separate country and language (they use traditional characters). Thanks for all your work!