EUDIPLO is an open-source middleware that bridges your backend and EUDI Wallets using a unified API and standardized protocols.
Organizations joining the EUDI Wallet ecosystem face a tough choice: patch together protocol libraries that may not exist for their stack, or rely on proprietary solutions that risk vendor lock-in.
EUDIPLO solves this by providing a lightweight, source-available, protocol abstraction layer. It communicates over HTTP and integrates easily with your existing backend stackβso you can focus on your business logic, not cryptographic plumbing.
It supports all core flows of electronic attribute attestationsβissuing, requesting, and even requesting during issuanceβand is already compatible with multiple wallets.
While still in early development, EUDIPLO is built for production: secure key management, scalable database support, and clean API boundaries.
- β Supports OID4VCI, OID4VP, SD-JWT VC, mDOC (ISO 18013-5), and OAuth Token Status List
- β OIDF conformance tested for OID4VCI and OID4VP protocols
- β JSON-based credential configuration
- β Client credentials authentication for easy service integration
- β
Runs via Docker with
.envconfig - β HTTP-based integration with any backend
- β Secure key management & pluggable storage
- β Privacy-friendly: no external calls, no long-term storage
Curious about EUDIPLO? Check out our recorded webinar (September 17, 2025) for a deep dive into features, architecture, and live Q&A:
Join our bi-weekly community call every Thursday:
Requirements:
- Docker with Docker Compose
- Linux, macOS, or Windows
curl -fsSL https://eudiplo.dev/install.sh | bash
eudiplo demoNo local Node.js installation is required.
npx @eudiplo/cli demoUse npx @eudiplo/cli demo with Node.js 22+, or download the Windows x64
standalone executable from GitHub Releases.
Both commands run the same EUDIPLO CLI:
- Standalone CLI: native executable, no Node.js required.
- npm package:
@eudiplo/cli, requires Node.js 22+.
eudiplo demo creates a demo deployment for local evaluation:
- Creates editable demo configuration (
.eudiplo.demo.envandconfig/demo/). - Uses the minimal topology: SQLite, local file storage, and database-backed keys.
- Starts the backend and web client using Docker Compose.
- Exposes the API at
http://localhost:3000. - Exposes the web client at
http://localhost:4200. - Uses demo credentials that must not be used in production.
For a configurable local deployment, run eudiplo init ./eudiplo-local. In an
interactive terminal it asks for a preset or individual database, storage,
key-management, public URL, and authentication choices. The same choices are
available as flags, for example
eudiplo init ./eudiplo-local --preset standard --start.
Local tenant configuration can be scaffolded and managed with:
eudiplo config tenant list
eudiplo config tenant create acme --name "Acme GmbH"
eudiplo config tenant remove acme --forceSee the detailed guides:
- Docker Compose deployment: Deployment Guide
- Individual container images: Deployment Options
- Local development workflow: Development Guide
# Get a token and start using the API
# Replace with your configured AUTH_CLIENT_ID and AUTH_CLIENT_SECRET
curl -X POST http://localhost:3000/api/oauth2/token \
-H "Content-Type: application/json" \
-d '{
"client_id": "your-client-id",
"client_secret": "your-client-secret"
}'For production authentication setup, see Authentication.
Use the stable docs entry point:
- π Latest Stable: https://eudiplo.dev/docs/latest/
Use the version selector in the docs UI to switch between available releases.
Key sections:
We welcome PRs from wallet developers, institutions, and contributors interested in advancing the EUDI Wallet ecosystem.
See CONTRIBUTING.md for guidelines.
π¬ Have questions? Join our Discord community to ask questions, get help, and connect with other developers.
Licensed under the Apache 2.0 License
The Project Charter for EUDIPLO can be found here.

