Resolving Digital Product Passports

Dr. Susanne Guth-Orlowski
5 min readJun 29, 2023

How to build and discover a persistent DPP product web page based on decentralized identifiers

Authors: Dr. Susanne Guth-Orlowski, Markus Sabadello

Introduction

Decentralized Identifiers (DIDs) are a new type of digital identifier or address that can be used to refer to individuals, organizations, facilities, locations, products or any “things”. Compared to other identifiers such as domain names or UUIDs, DIDs have a number of empowering properties. They are designed to be decentralized, cryptographically verifiable, persistent, and resolvable. They are therefore also an ideal fit for identifying products and can be used for discovering verifiable metadata about a product in the form of a Digital Product Passport (DPP).

We are describing this DPP “deep linking” with the help of a DPP for a T-Shirt produced by Spherity. We show how you can use decentralized identifiers to create a unique identifier for the T-Shirt and then to link to the Product Passport Website (for example a T-Shirt DPP), using this unique identifier and a DID resolver (here provided by godiddy.com). The technology described in this article fulfills similar functionality as e.g. a (s)GTIN and its GS1 digital link but with the mentioned advantages.

How to create a DID and DID document for a DPP

As a first step a DID needs to be created for the T-Shirt. Potentially using any DID method can be used to create the DID, including did:web, did:ebsi, did:indy, did:ethr, did:ion, etc. This ensures interoperability across different networking infrastructures and ecosystems. The tool that usually offers this functionality is a digital identity wallet, here provided by Spherity. Every DID comes with a DID-document that defines the DID further. The DID-document includes additional metadata about the DID, e.g. its public key for validation and optionally service endpoints that lead to more information about the DID’s subject (e.g. a web page or credential stores).

In order to create a DID that can be used for discovering a digital product passport, the associated DID document MUST contain a service endpoint with an identifier, (in our example we use the identifier “#product”), a service type “ProductPassport”, and an endpoint URL that points to the digital product passport web page. The example DID, we use for the T-Shirt is shown below:

did:web:20230614.dpp.spherity.com:products:tshirt

The T-Shirt DID has the following, corresponding DID document.

Figure 1: DID document of T-Shirt DID

Besides the service endpoint, the DID document could also include other metadata about a product, e.g. using properties such as “alsoKnownAs” that can list additional, equivalent identifiers for the same product. For more detailed information about DID documents, please refer to the W3C Specification Decentralized Identifiers (DIDs) v1.0.

How to construct a DID URL “deep link” for a DPP

Now that we have a DID with a “ProductPassport” service endpoint, we can construct a DID URL that always dereferences to the service endpoint URL of the DPP public product page, using the “service” DID parameter. This dereferencing functionality is specified in the W3C specification Decentralized Identifier Resolution (DID Resolution) v0.3.

Example DID URL:

did:web:20230614.dpp.spherity.com:products:tshirt?service=product

How to dereference the DID URL “deep link”

This DID URL can be dereferenced to the DPP public product page according to the standard interfaces defined in the W3C DID Core specification, using tools that implement this specification. The most straightforward way is to prepend the DID URL “deep link” with the HTTPS endpoint of a DID resolver service, e.g.:

https://api.godiddy.com/0.1.0/universal-resolver/identifiers/did:web:20230614.dpp.spherity.com:products:tshirt?service=product
Figure 2: Deep Link to the digital product passport of the T-Shirt

This deep link can then be added to a data carrier. Very often the data carrier for digital product passports will be QR codes, but other RFID chips will be accepted. The QR code for our T-Shirt show case can be seen in the visual below on the T-Shirt. Scan it with your regular mobile phone to try it out.

Figure 3: T-Shirt with QR code that leads to the digital product passport.

When the “deep link” is opened, e.g. by scanning the QR code above, clicking on a link, or invoking an API function, then the DID URL gets derefenced by following these steps:

  1. The DID resolver resolves the DID to its associated DID document, according to the applicable DID method.
  2. The DID resolver processes the “service” DID parameter and selects the service endpoint with identifier “#product” from the DID document.
  3. If the “deep link” is opened in a web browser, the DID resolver responds with a 303 Redirect HTTP code that sends the web browser directly to the DPP public product page. Otherwise, if the “deep link” is opened by some other application or service, the address of the DPP public product page and other information are returned in a machine-readable form.

The dereferenced result is the service endpoint URL from the DID document, i.e. the digital product passport, here the DPP of the Spherity T-Shirt. DPP public product page:

https://20230614.dpp.spherity.com/

When visiting the T-Shirt DPP you can see public, human readable information, but it also contains verifiable product information that has been issued as verifiable credentials for the T-Shirt.

Exkurs: Additional DID URL Examples

For illustration of the flexibility of DID technology, we have created several additional DID URLs that can be dereferenced to a DPP public product page. These DIDs are created in various underlying networking infrastructures, such as the European Blockchain Service Infrastructure (EBSI), IDunion, ION, and Ethereum, which come with different characteristics.

Figure 4: DIDs can be anchored on various network infrastructures

Summary: Advantages of DID URL “deep links” for digital product passports

The fascinating aspect of this mechanism is that these DID URL “deep links” inherit all the unique properties of DIDs themselves. They are:

  1. Decentralized: Creating and dereferencing the “deep links” works without any dependency on a centralized infrastructure or intermediary, and across different underlying networking infrastructures and ecosystems.
  2. Cryptographically verifiable: DIDs are designed in a way that allows cryptographic verification during the DID resolution process, to ensure that the DID document is the correct one for a given DID.
  3. Persistent: DID documents can be updated over time, which means that the location of the “DPP” public product page can change, without having to create a new DID URL “deep link” every time. This allows full portability of services and data about a product, while maintaining a stable, long-lived identifier for the product.
  4. Resolvable: As shown in the various examples above, DID URL “deep links” can be dereferenced to a DPP public product page as well as additional metadata.

DIDs are globally unique identifiers due to their underlying cryptographic algorithms. For more requirements of identifiers for digital products passports and the benefits of using DIDs, please refer to the article “Accessing DPPs with DIDs” https://medium.com/spherity/accessing-digital-product-passports-with-decentralized-identifiers-dids-175ca455cee3.

For feedback about this article please get in touch with the authors.

--

--

Dr. Susanne Guth-Orlowski

Susanne is an expert for circular economy, digital product passport, DLT, decentralised identities, SaaS and a swimmer, mother, and musician that loves writing.