Reference implementation · Digital Product Passport
A battery passport platform that does what the EU rules ask
Issue, sign, version, share and register EU Digital Product Passports on the Commission's own data model. Scan a demo passport, unlock the restricted views with a demo key, and see how each requirement maps to running code.
What a DPP is, and why now
A Digital Product Passport is a structured, machine-readable record of a product, reached through a data carrier (a QR code) on the product. It holds what a buyer, repairer, recycler or authority needs to know: composition, performance, safety, end-of-life handling. The Ecodesign Regulation (ESPR, (EU) 2024/1781) sets the general rules; the Battery Regulation ((EU) 2023/1542) makes the first one mandatory.
What the platform does
EU semantic model, natively
Every passport is the Commission's compact JSON for batteries (model 1.0.0, EV / LMT / industrial) and is validated against the official JSON Schemas for all four views before it is signed.
IR (EU) 2026/1778 Art. 12 · BR Annex XIIIGS1 Digital Link UPIs and resolver
Identifiers like /01/{GTIN}/21/{serial} are never reassigned. The same URL serves this page to people, JSON to machines and a GS1 linkset.
ESPR Art. 10(1) · EN 18219 / 18220Tiered access per Annex XIII
Public view with no login. Restricted views are encrypted at rest and opened for authorities, notified bodies and approved legitimate-interest requesters.
BR Art. 77(2) · Annex XIII (1)–(4)Signed versions, tamper-evident log
Each change creates a new version, signed as a W3C Verifiable Credential (Ed25519). Life-cycle events form a SHA-256 hash chain. Old versions stay readable.
ESPR Art. 11(g) · EN 18221Successors and end of life
Repurposed, remanufactured or re-used batteries get a new passport linked to the original. Recycled batteries end with status Waste; nothing is deleted.
BR Art. 77(7)–(8) · ESPR Art. 11(d)EU Registry integration
Registers UPIs with the Commission registry API (service-account JWT, async tasks) and answers the registry's authenticated read of restricted views.
BR Art. 77(10) · IR 2026/1778 Art. 8Life-cycle API and delegated writers
REST operations modelled on EN 18222 (create, read by ID / product ID / date, update). A BMS key may write only the dynamic data points it was granted.
EN 18222 · BR Art. 14, Annex XIII (4)Backup replication
Every version is replicated to a separate backup target (S3-compatible or a separate volume); its reference is kept on the passport.
ESPR Art. 10(4) · EN 18221Export, no lock-in
Operators export each passport with decrypted restricted data, every version and the event chain, in the EU format.
BR Art. 77(5) · ESPR Art. 11(a)Try it live
Demo operator: Voltaris Energy, a fictional EV battery maker. Every link below is a real passport on this server; scan the QR code on any of them with your phone.
5 signed versions: three BMS readings pushed through the API, then a warranty repair. Unlock Restricted 3 to see SoCE, cycles and SoC histograms.
/01/09506000134352/21/VLT-000101New passport for a second-life battery, linked back to the original (BR Art. 77(7)).
/01/09506000134352/21/VLT-000102-R1Read-only, points forward to its successor.
/01/09506000134352/21/VLT-000102Battery status Waste, passport kept read-only for the retention period (BR Art. 77(8)).
/01/09506000134352/21/VLT-000103One passport for a production lot, GS1 AI (10) in the UPI.
/01/09506000134352/10/LOT-2026-09-AA legitimate-interest access request from a repair shop is waiting for the operator in the dashboard.
/01/09506000134352/21/VLT-000104See each access tier
Open a passport, scroll to Unlock with an access key and paste a key. The key is kept in a session cookie for 8 hours; press Lock to go back to the public view.
| Who | Sees | Demo key |
|---|---|---|
| Anyone (consumer) | Public, Annex XIII (1) | no key |
| Market surveillance authority | All views, Annex XIII (1)–(4) | dppa_demo-market-surveillance |
| Notified body | Public + Restricted 1 + Restricted 2 (test reports) | dppa_demo-notified-body |
| Recycler (legitimate interest, approved) | Public + Restricted 1 + Restricted 3 | dppa_demo-recycler |
Battery management system (API)
A delegated writer key: it may only write dynamic data points (SoCE, fade, cycles, histograms, negative events). Each call creates a signed version and a dynamic update event.
curl -X PATCH https://dpp.wisecraft.dev/api/v1/dpps/{id} \
-H "Authorization: Bearer dpp_demo-bms-telemetry" \
-H "content-type: application/json" \
-d '{"reason":"BMS reading","data":{"stateOfCertifiedEnergy":
{"unit":"https://repository.product-passport.ec.europa.eu/core/vocabs/measurement-unit#percent","value":92.8}}}'Operator dashboard
Issue passports, approve access requests, push to the EU registry, rotate keys, export.
Login demo@voltaris.example · password websummit2026
Architecture
Writers
- Operator dashboard
- Life-cycle API (EN 18222)
- Delegated BMS key
Passport service
Validate against the EU schemas → split into views → encrypt restricted → sign VC → append version and event → replicate backup
Resolver at the UPI
- People: this viewer
- Machines: JSON, VC, linkset
- Authorities: access keys
- EU Registry: Bearer JWT → 200 / 401 / 403
How does each rule map to code?
The compliance map lists every requirement from ESPR, the Battery Regulation, the registry implementing regulation, the harmonised standards and the data models, with an honest status and a link to see it.
Open the compliance map