EU DPP Platform

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.

18 Feb 2027Battery passport required for EV, LMT and industrial batteries above 2 kWh placed on the EU market (BR Art. 77).
30 Oct 2026Commission published the registry API, the self-hosted authentication rules and the battery semantic model 1.0.0.
ESPRDelegated acts extend passports to textiles, steel, furniture and more; the same registry and identifier rules apply.

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 XIII

GS1 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 / 18220

Tiered 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 18221

Successors 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. 8

Life-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 18221

Export, 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.

Active Active pack with state-of-health history

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-000101
Active · repurposed Repurposed battery (successor passport)

New passport for a second-life battery, linked back to the original (BR Art. 77(7)).

/01/09506000134352/21/VLT-000102-R1
Superseded Original passport, superseded

Read-only, points forward to its successor.

/01/09506000134352/21/VLT-000102
End of life Recycled battery

Battery status Waste, passport kept read-only for the retention period (BR Art. 77(8)).

/01/09506000134352/21/VLT-000103
Batch Batch-level passport

One passport for a production lot, GS1 AI (10) in the UPI.

/01/09506000134352/10/LOT-2026-09-A
Active Freshly issued item passport

A legitimate-interest access request from a repair shop is waiting for the operator in the dashboard.

/01/09506000134352/21/VLT-000104

See 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.

WhoSeesDemo key
Anyone (consumer)Public, Annex XIII (1)no key
Market surveillance authorityAll views, Annex XIII (1)–(4)dppa_demo-market-surveillance
Notified bodyPublic + Restricted 1 + Restricted 2 (test reports)dppa_demo-notified-body
Recycler (legitimate interest, approved)Public + Restricted 1 + Restricted 3dppa_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.

Open /app/

Login demo@voltaris.example · password websummit2026

Architecture

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