Digital Identity: A Practical Guide
From broken passwords to self-sovereign wallets — a step-by-step journey through modern digital identity.
What this is
This is a living book. It started as a behind-the-scenes account of building a working demo of EU-standard digital identity — and grew into something more: a complete guide to the ideas, standards, and code that power the next generation of digital identity.
It is written for two audiences at once:
- Business readers who want to understand why digital identity matters, what the EU's eIDAS 2.0 regulation means in practice, and why the old approaches fell short.
- Developers who want to build real systems using the standards the EU has mandated: OID4VCI, OID4VP, SD-JWT, and did:web.
Each chapter is written so that a business reader can follow the narrative, and a developer can follow the technical detail. You do not need to read every section — but if you read from the beginning, each chapter builds on the last.
The journey
We start with a simple question: why is proving your identity online still so hard? We follow that question through the philosophy of self-sovereign identity, into the EU regulation that is reshaping the landscape, and eventually into a working three-stage demo — a digital passport, a visa, and a boarding pass — all exchanged between a mobile wallet and a backend using open standards over plain HTTPS.
By the end, you will understand not just what these standards say, but why they were designed the way they were, and how to build with them yourself.
How to read this
The book is organised into five parts:
| Part | What it covers | For whom |
|---|---|---|
| Part 1 — Foundations | The identity problem, SSI philosophy, why standards matter | Everyone |
| Part 2 — The Stack | eIDAS 2.0, what came before, what replaced it | Business + Dev |
| Part 3 — Building Blocks | did:web, SD-JWT, OID4VCI, OID4VP explained | Developers |
| Part 4 — A Real System | CredGuard: 3-stage passport → visa → boarding pass demo | Everyone |
| Part 5 — Going Deeper | Implementing the pieces yourself | Developers |
Start at Part 1 if you are new to the space. Jump to Part 3 if you already know the concepts and want the technical detail. Jump to Part 4 if you want to see everything in action first.
A note on the code
Code examples throughout this book are written as pseudocode — language-agnostic, readable by any developer regardless of their preferred language.
Publishing with Docusaurus
This repository now includes a Docusaurus site setup for publishing the book as a documentation website.
- Install dependencies with
npm install - Start a local docs site with
npm run start - Build the static site with
npm run build
The original Markdown in the root and part-* folders remains the source of truth. A sync step generates the Docusaurus docs/ tree automatically before local start and production build, so you do not need to edit docs/ directly.
If GitHub Pages is enabled for this repository using the GitHub Actions source, the workflow in .github/workflows/deploy.yml will publish the site on pushes to main.
Contributing and feedback
This is a living document. New chapters are added as the underlying system evolves. If you spot an error, have a question, or want to suggest a chapter — open an issue on the [GitHub repository]
Let's start at the beginning.