Smart Data Models’ Candidates repository now includes a new candidate standard, untp-v0.8.0, translated from the UN Transparency Protocol (UNTP) Digital Product Passport specification — a B2B data standard, issued as a W3C Verifiable Credential, for carrying product and sustainability information through supply chains. Two entities are covered: DigitalProductPassport and Product.
What’s in it
| Model | What it is |
|---|---|
DigitalProductPassport |
The W3C Verifiable Credential (VCDM 2.0) envelope: issuer, validity period, credential status, render method, issuing software. |
Product |
The core product data model: identification, classification, material provenance, producing facility, dimensions, packaging, performance claims, and an open industry-specific characteristics extension point. |
Every model ships the full set of Candidates artifacts: a JSON Schema, an NGSI-LD @context, and all four example serializations (NGSI-v2 and NGSI-LD, key-values and normalized) — each validated against its own schema.
Two entities, one relationship — not one flattened blob
In the source, DigitalProductPassport.json‘s credentialSubject is literally $ref: "#/$defs/Product" — a 1:1 inline embedding. But Product.json is also published standalone, with its own complete identity independent of any credential wrapper. This candidate keeps that distinction: DigitalProductPassport carries only the envelope fields plus a product Relationship, and Product is its own separately-addressable entity — avoiding a ~20-property duplication and matching how the source itself chose to publish two files, not one.
The VC envelope fields (issuer DID, credential status, render method, issuing software) are modeled faithfully as real typed properties rather than simplified away — even though they’re strictly artifacts of the credential-verification layer, not “product data” per se.
Real context, real examples — not invented
Two things set this translation apart from working off prose docs alone:
- A genuine published JSON-LD context. UNTP ships a complete, ~106KB context file using JSON-LD type-scoped contexts. This candidate’s
context.jsonldIRIs are extracted from that real file — with two scope-collision bugs caught and hand-corrected along the way (a naive flatten of a type-scoped context can silently grab a same-named term from an unrelated class; here it briefly mapped the envelope’svalidFromto an unrelatedConformityProfilefield, and the newproductRelationship to an unrelated Digital Traceability Event term, before being fixed). - Real sample data. Both
example.jsonfiles are drawn from UNTP’s own published sample instance — a 75 kWh Li-ion EV battery pack passport, complete with real material provenance (cobalt from DRC, lithium from Chile, nickel from Indonesia, …) and EU Battery Regulation performance claims — not fabricated placeholder values.
One naming fix was needed: the source’s own @context property (the W3C VC context array) would collide with NGSI-LD’s reserved top-level @context mechanism, so it’s renamed to vcContext — the same pattern already used for a dataProvider collision in the Gaia-X candidate.
Note on scope
Per explicit instruction, only these two entities are covered. UNTP defines several other credential types this specification references — Digital Conformity Credential, Digital Facility Record, Digital Traceability Event, Digital Identity Anchor — none of which are modeled here. Fields that reference them (e.g. producedAtFacility, a claim’s evidence links) stay exactly as the source declares them, not promoted to Relationships pointing at not-yet-modeled entity types.
Try it, and tell us what’s missing
This is a Candidate — a first, carefully-sourced translation, not yet promoted to an official Smart Data Models subject. Before that step:
- License terms haven’t been confirmed against the spec-untp repository’s own
LICENSEfile yet. - Overlap with other Smart Data Models product/traceability vocabularies hasn’t been checked in detail.
Browse the models, open an issue, or send a PR: 👉 https://github.com/smart-data-models/Candidates/tree/master/standards/untp-v0.8.0











