Upgrading the Gui to Qml tracking issue
GUI-QML is a new graphical interface for Bitcoin Core, built with Qt Quick and QML. The goal is to improve usability and make GUI code easier to maintain and test, while reusing Core's node and wallet interfaces.
This issue tracks the PRs landing in the staging branch. The staging branch will be based on bitcoin/bitcoin. It will replace bitcoin-qt and bitcoin-gui with our qml implementation. The existing Qt Widgets GUI remains available as bitcoin-qt-legacy during this transition. At the end of the process src/qt can be removed.
Detailed issues and follow-up work are tracked on the project board.
Staging branch chunks
The PRs build on one another and are listed in merge order. Items will be checked when it is first merged into staging. fixup! commits will be used to apply fixes to earlier chunks during regular rebases.
- 1. Foundation — build support, startup/shutdown and test infrastructure. bitcoin-core/gui-qml#871
- 2. Onboarding, settings and block clock — node setup, sync status, application shell, global menu and translations. bitcoin-core/gui-qml#887 — open for review.
- 3. Node tools and diagnostics — RPC console, debug log, node information, peers/bans, traffic and mempool. bitcoin-core/gui-qml#890 — draft.
- 4. Wallet management — create, load and close wallets; overview, security, backup/restore and migration. PR pending.
- 5. Wallet activity and receiving — history, export, addresses, payment requests, QR codes and message signing/verification. PR pending.
- 6. Wallet sending — recipients, separate fee selection model, coin control, transaction review and sending. PR pending.
- 7. PSBT and fee replacement — import/export, review, local signing, submission and transaction fee increases. PR pending.
- 8. Watch-only wallets and external signers — wallet creation, signer setup, unsigned transactions and explicit signing approval. PR pending.
- 9. Payment-request import — BIP21 links, clipboard and files, with review before applying to Send. PR pending.
Each chunk includes focused models and tests. Regression coverage belongs in unit, QML and integration tests, with a small Python test-bridge end-to-end suite for core user flows.
This issue is complete when the listed chunks have landed in the staging branch, the staging branch PR into master is reviewed and merged, and work on gui qml has migrated.
Source: bitcoin/bitcoin