MinBZK / nl-wallet
NL Wallet - A digital identity wallet provided by the government.
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing MinBZK/nl-wallet in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewNL Wallet NL Wallet is a secure app on your phone that lets you keep important personal information in one place, such as your name, age, or official documents like your ID card or driving licence. With the wallet, you can easily prove who you are, or show only the information a service needs. For example: • Showing you are over 18 without sharing your full date of birth. • Confirming your identity when dealing with the government. • Sharing a digital version of a diploma when applying for a job. This is useful, because: • You no longer need to upload scans of your passport. • You share only what is needed, not your whole identity. • Your documents are harder to fake, because they are digitally signed. • It works across all EU countries. You stay in control: you choose what to share, with whom, and when. NL Wallet is intended for Dutch nationals. It offers convenience, stronger security, and protection against identity fraud — all while giving individuals greater control over their own information. The app is being developed by Rijksoverheid (Dutch Government), in particular the Ministry of the Interior and Kingdom Relations (MinBZK) and is expected to be available to the public in 2027. NL Wallet also makes things easier and safer for relying parties, which are organisations that need to check identity or personal information. For these organisations, this means: • More trust – the information comes directly from trusted sources, so it is harder to fake. • Less sensitive data to store – no need to keep copies of passports or other documents. • Easier compliance with privacy rules – only the necessary information is shared. • Faster and smoother processes – users can identify themselves quickly, with fewer steps. • European coverage – the same approach can be used in all EU countries. This helps organisations to reduce fraud, protect personal data and offer a better experience to their users. NL Wallet is being developed in an open and transparent way. We offer the following channels to allow you to contribute: • The user interface of the app is available on [Figma][3]. • The source code is published in this [GitHub repository][4]. • More information, events and discussions can be found on [Pleio][5]. • Project documentation is available on [GitHub pages][25]. This documentation reflects the current implementation and will be updated with every software update. Feel free to look around and share your [feedback and ideas][6]. Current release See the [releases page][7] for the latest release. You can follow the latest work by subscribing to the releases of this GitHub repository at the top of this page. Documentation We have a dedicated [documentation site][25]. If you want to learn more about the NL Wallet development, please read the background information on the [Pleio][5] hub. The development of the user flows and screens can be followed through [Figma][3]. Licensing The source code of the NL Wallet is released under the [EUPL license][8]. The documentation is released under the CC0 license. Please see the [.reuse/dep5][9] file for more details, which follows the [Reuse specification][10]. Contributing We’re releasing the source code with the explicit intention of allowing contributions. The coordination of the project lies with the development team of the European Digital Identity Progam, but we’re open to all contributions. You can directly create a new Pull Request via Github, or contact the community manager via [edi@minbzk.nl][11]. The development team works on the repository in a private fork (for reasons of compliance with existing processes) and shares its work as often as possible. If you watch the repository on GitHub, you will be notified of a new release. We will also send a notification through Pleio. Although we are open to contributions, please consider the nature of this project as outlined in this Readme. At this stage the most useful way to contribute to the project is to participate on our community site [edi.pleio.nl][5], and visit our [EDI Meet-ups and/or Heartbeats][12]. If you plan to make non-trivial changes, we recommend that you open an issue beforehand where we can discuss your planned changes. This increases the chance that we might be able to use your contribution (or it avoids doing work if there are reasons why we wouldn't be able to use it). Note that all commits should be signed using a GPG key. Getting started This section contains the general setup requirements of the project. For more information on how to configure specific components like [wallet app][13], [wallet core][14], [wallet_web][15], and [wallet_provider][16], please see the corresponding README files. The app's UI is built using Flutter, but to avoid tying the app to Flutter & Dart, all core business logic is built using Rust. This gives us the more flexibility to migrate to completely native iOS/Android apps if the need arises. This does mean building the app is slightly more complex than a simple . This section describes how to set up your environment. System requirements The various components of NL Wallet have different requirements. To make sure things run correctly, you need to take the following system requirements into account. Mobile apps Our mobile apps require at least the following operating system versions: • Android 10.0 (API-level 29) • iOS 15.0 The app does not put a particularly heavy load on the device, so CPU and memory requirements are low to average. Note that this is subject to change. Wallet web The wallet_web frontend helper library effectively runs in the browser of a person that wants to interact with a relying party that integrates with the NL Wallet platform. As such, wallet_web has requirements on the minimum browser version supported: • Firefox 60.9+ • Chrome 109+ • Edge 109+ • Safari 13+ Note that the above are not recommendations, but simply a statement about the *minimum* version we have some confidence in running corre…