What is EUDIPLO?
EUDIPLO is a lightweight, open-source middleware layer that bridges your IT systems with the European Digital Identity Wallet (EUDI Wallet) ecosystem.
Whether you're building services for government, education, healthcare, or the private sector, EUDIPLO lets you interact with EUDI Wallets using simple JSON-based APIs, without having to implement complex identity protocols yourself.
The name EUDIPLO is inspired by diplomat, because this middleware acts as a translator and trusted go-between. It speaks fluent EUDI specs on one side and down-to-earth JSON on the other, so your backend doesn't have to become a protocol expert overnight.
Where does it fit?โ
Your backend talks to EUDIPLO over simple, protocol-agnostic HTTP/JSON APIs. EUDIPLO does the heavy lifting of speaking OID4VCI, OID4VP, SD-JWT VC, and mDOC (ISO 18013-5) to the wallet, and calls you back via webhooks or session events with the result.
Why EUDIPLO?โ
Connecting to the EUDI Wallet ecosystem is technically demanding:
- You must understand OID4VCI, OID4VP, SD-JWT VC, mDOC (ISO 18013-5), and OAuth-based status protocols.
- Libraries are scattered, often incomplete or language-specific.
- Hosted services can lead to vendor lock-in or obscure how your data is processed.
EUDIPLO solves these problems by acting as a protocol abstraction layer you can run yourself, integrate over HTTP, and configure via JSON.
Three ways to approach EUDIPLOโ
๐ Use EUDIPLOโ
Run EUDIPLO, issue your first credential, and verify your first presentation in minutes.
Start here: Getting Started
๐ Understand EUDIPLOโ
Learn how tenants, credential/issuance/presentation configurations, sessions, and key chains relate โ and how the pluggable database, storage, and KMS backends fit together.
Start here: Architecture
๐ Contributeโ
Set up a local development environment, understand the monorepo layout, and learn how to test and submit changes.
Start here: Contributing
Common tasksโ
| Task | Where to go |
|---|---|
| Issue a credential | Issuance |
| Request/verify credentials | Presentation |
| Configure claims | Claims |
| Connect an authorization server | Issuance: Authorization |
| Deploy to production | Deployment |
| Configure trust | Trust & Security |
Key capabilitiesโ
| Capability | Description |
|---|---|
| ๐ Issuance | Issue credentials to users through the EUDI Wallet |
| ๐งพ Presentation | Request credentials from users and verify them |
| ๐ Cross-Flow Support | Request credentials as part of an issuance flow |
| ๐ Secure by Default | Built-in support for secure key handling and OAuth-based status checking |
| ๐งฑ Plug and Play | Integrates with your backend over HTTP; no requirement to use a specific programming language |
| ๐ฅ๏ธ Web Client Included | Comes with a ready-to-use web interface for easy testing and interaction |
| โ๏ธ JSON Configurable | Set up templates, trust roots, and issuers through JSON files |
| ๐ช๐บ Wallet Compatible | Works with multiple wallets |
| โ OIDF Conformant | Tested against the OpenID Foundation conformance suite for OID4VCI and OID4VP |
| ๐ฅ Multi-Tenant Support | Isolate configurations for different tenants or clients |
Try EUDIPLOโ
- Standalone CLI
- Node.js / npm
curl -fsSL https://eudiplo.dev/install.sh | bash
eudiplo demo
npx @eudiplo/cli demo
Both options run the same EUDIPLO CLI.
- Standalone CLI: native executable, no Node.js required.
- npm package:
@eudiplo/cli, requires Node.js 22+. - The demo requires Docker and Docker Compose, or Podman and Podman Compose.
eudiplo democreates a local demo deployment for evaluation, not production.
Continue with the Getting Started guide.