Bitcoin Core App
The Bitcoin Core project maintains the foundational software created by Satoshi Nakimoto. As the first ever bitcoin wallet to be released, it set a precedent for thousands more to come. Back in 2009, the first version was windows-only. It was then re-written to QT in 2011 (more here). Much of the code has changed since then, but the general design of the user interface has remained consistent. Now, the biggest design update of this project is in the works. A group of developers, designers, and other contributors are collaborating to overhaul both the user experience and the technical side of this application.
The Bitcoin Core project plays an essential role in the ecosystem. It not only serves as the reference implementation of the Bitcoin protocol, but it is also the only implementation on the node side. The software includes node and wallet features and is broadly used by miners, businesses and enthusiasts, as well as a more casual audience.
Goals #
There are four main goals of this project:
- Empower people to run a node easily on a mobile device.
- Expand wallet features with the latest best practices and developments.
- Provide more useful tools for experts and developers.
- Build a solid design foundation and public blueprint.
Nodes on mobile devices #
Since the current application only works on desktop operating systems, what better way to enable more users to run a node than expanding support for mobile devices. Initial development focuses on Android, of which there are an estimated 3.5 billion users worldwide.
The block clock compresses current node and network information into a single visual. That is one of the reasons why the application framework is being switched from QT Widgets to QML. The former is a standardized library of UI components, the latter is a much more customizable framework optimized for highly dynamic applications. This enables a responsive interface that seamlessly works across both desktop and mobile devices.
The first version of the application was finalized in early 2023 and focused solely on the node experience. If you’d like to test it, follow the instructions here.
Expanding wallet features #
Bitcoin does not stand still. Multi-key wallets, external signers, output descriptors, assumeUTXO, silent payments, and many more useful features have been developed. Some have only been implemented in the command-line tools, but not the graphical interface. Therefore a second goal is to make the new application a best-in-class wallet that is based on the latest best practices, and can also serve as a reference UI for the latest bitcoin features. Due to the central role of Bitcoin Core, this may help drive adoption and help users adopt better security and privacy practices.
Designing and implementing the wallet features is the second large milestone for the application. This is very actively being worked on as of April 2024.
Expert & developer features #
We’ve heard from many developers that they prefer using the command-line over the graphical user interface. Along the same lines, we heard from many experienced users that custom node configurations are hard to set up. So we are setting out to make the new application also a helpful companion for these users, to allow them to more easily perform tasks that benefit from a visual interface and the fidelity that comes with it.
A solid design foundation #
Contributing as a designer to Bitcoin Core is currently not a simple task. While there is much documentation of the codebase and application, there is none for the design itself. Since transparency and building in public is central to this project, a dedicated site has been built. It has two purposes:
- To create an environment that is welcoming to both newcomers and old-timers, so they can contribute more easily.
- To create a public blueprint, which makes it easier to understand and discuss changes before they are implemented, and thereby simplifying the implementation itself.
And if this new application will be around for years, and possibly decades, we want to ensure it starts off with the strongest foundation possible.
Process #
Bitcoin Core has a unique collaboration and development philosophy. There is even a book written about it, which you can read online as well. It is based on voluntary participation, and changes emerge from many individual interactions by diverse contributors. Mirroring this approach, the design process of this project also cannot be seen as a linear sequence, but more as an organic set of efforts that build on each other in different ways.
For the purpose of this page, we just focus on the design and UX research contributions, and highlight a few representative examples:
Basic research #
We extensively studied the existing application to get a thorough understanding of its characteristics, strengths, and weak points.
Version scoping #
Merging the new code into the project will be a big undertaking. So we scoped out what would be required in a minimum viable first release, and which features should be added in later iterations. This led us to our current version and milestone plan.
User flows #
We mapped out the user flows to get a high level overview of the screens that would need to be designed. These were then shared with the broader group for discussion and technical validation.
User stories #
Through the initial discovery phase, we hypothesized that there were 4 main users types (new, casual, experienced, developer). Each is a lens for a specific set of user needs and expectations, that we use to guide design decisions.
User interviews #
Via Jobs to be Done interviews with current and potential users, we learned about the needs and wants users have, that they expect the application to address.
User testing #
We regularly test design prototypes and the application ourselves and with users to continuously validate the experience (example recording).
Design #
As these tasks unfolded behind the scenes, a multitude of designs were created, refined through iteration, and prototypes were developed to assess their effectiveness. The most finalized designs are organized in the design system and the design documentation.
Thank you & next steps #
We’d like to thank all the Bitcoin Core contributors for their constant work, as well as the many members of the Bitcoin Design Community who continue to rally together to work on the project.
This project has already come a long way from the initial conversations several years ago. We’re excited to do our share as designers in helping to get a rock-solid, trustworthy, useful, and intuitive application in bitcoiners hands. If you’d like to contribute, review the design documentation and stop by the #bitcoin-core-app channel in the Bitcoin Design Discord.
Next, view the resources that can help you build better bitcoin products.