Skip to content
economy3

CANON · DPP / IDENTIFIER-SCHEME

EN 18219 identifier scheme

DefinedTerm

How a Product Passport identifier minted by Economy3 meets the properties EN 18219:2026 names, each fact stated with the code that makes it true.

TERM CODE
identifier-scheme
IDENTIFIER
identifier-schemeeconomy3:dpp
{
  "@context": "https://schema.org",
  "@type": "DefinedTerm",
  "@id": "https://economy3.org/dpp/identifier-scheme",
  "name": "EN 18219 identifier scheme",
  "termCode": "identifier-scheme",
  "description": "How a Product Passport identifier minted by Economy3 meets the properties EN 18219:2026 names, each fact stated with the code that makes it true.",
  "identifier": {
    "@type": "PropertyValue",
    "propertyID": "economy3:dpp",
    "value": "identifier-scheme"
  },
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "propertyID": "https://economy3.org/dpp/issuance",
      "name": "Issuance",
      "value": "Self-issued. Economy3 mints the resolver key itself; a GTIN is carried beside it only when the maker holds one, and is never minted.",
      "description": "src/lib/shopify/shopify.js:1040-1047 createResolverKey; src/lib/record-jsonld.ts:413-423; src/lib/shopify/resolverDocuments.js:255-270 extractGtin"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "https://economy3.org/field/id-granularity",
      "name": "Granularity",
      "value": "model",
      "description": "src/lib/shopify/resolverDocuments.js:305-338 buildIdentifierProperties publishes idGranularity model on the Shopify passport: the key is minted once per Shopify product"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "https://economy3.org/dpp/global-uniqueness",
      "name": "Global uniqueness",
      "value": "The resolver key is the first 14 hexadecimal digits (56 bits) of SHA-256 over the shop domain and the Shopify product id, so the shop is inside every key. A signed record is identified by its Holochain ActionHash.",
      "description": "src/lib/shopify/shopify.js:1040-1047; src/lib/record-jsonld.ts:413-423"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "https://economy3.org/dpp/persistence",
      "name": "Persistence",
      "value": "The resolver key is a pure function of the shop domain and the Shopify product id, so a new title, handle or variant does not change it. An ActionHash is never reissued; a record's hashes on earlier networks stay in its identifier list as actionHash values, with sameAs to their addresses.",
      "description": "src/lib/shopify/shopify.js:1040-1047; src/lib/record-jsonld.ts:413-439"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "https://economy3.org/dpp/syntax",
      "name": "Syntax",
      "value": "shop_ followed by 14 lowercase hexadecimal characters.",
      "description": "src/lib/shopify/shopify.js:1041-1047"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "https://economy3.org/dpp/interoperability",
      "name": "Interoperability",
      "value": "Identifiers are published as schema.org PropertyValue nodes in identifier. A GTIN rides under https://schema.org/gtin, with its GS1 Digital Link in hasGS1DigitalLink.",
      "description": "src/lib/shopify/resolverDocuments.js:314-338, 934-952; src/lib/record-jsonld.ts:43, 419-423, 455-457, 796"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "https://economy3.org/dpp/openness",
      "name": "Openness",
      "value": "The key is minted with SHA-256, a published algorithm (FIPS 180-4), from two values; no issuing agency stands between the maker and the key.",
      "description": "src/lib/shopify/shopify.js:1040-1047"
    }
  ]
}