LutraID vs the EUDI reference implementation
The EUDI reference implementation is the open-source set of wallet, issuer and verifier components published under eu-digital-identity-wallet to show how the EUDI specifications fit together; its issuer and verifier services describe themselves as an initial development release, not a final product. LutraID implements the same specifications as a product: one platform with a dashboard and an API, Sandbox and Production, certificates and registration, records and revocation, run by Lutra Labs or on your own infrastructure.
Side by side
| Reference implementation | LutraID | |
|---|---|---|
| Purpose | Reference and starting point for implementers | Issuing and verification for organizations, in Production |
| Shape | Separate services and libraries, such as an issuer in Python and a verifier endpoint in Kotlin | One platform: dashboard, API, issuers, verifiers and records |
| Standards | OpenID4VCI, OpenID4VP, SD-JWT VC, ISO mdoc | OpenID4VCI 1.0, OpenID4VP 1.0 with DCQL, SD-JWT VC, ISO mdoc |
| Operation | You integrate, deploy, secure and update the services | Hosted service, or a self-hosted release with Helm or Docker Compose |
| Organizations and roles | Not the focus | Organizations, members and roles; API keys scoped per environment |
| Production path | Yours to build | Production setup: legal identity, Registrar, certificates |
| Revocation and records | Yours to build | Status lists, revocation, records and diagnostics |
| License | Apache-2.0 | Commercial; see pricing and License |
| Support | Community, through GitHub | Lutra Labs support |
When the reference implementation is the better choice
Use it to learn how the flows work, to prototype, to test a wallet against the components the EUDI programme itself publishes, or when you want to build and own every part of the stack.
When LutraID is the better choice
Use LutraID when you need to issue or verify documents for real customers and would rather not build and operate certificates, registration, revocation, records and an operator interface around the protocols yourself.
Last updated: 26 October 2026.