[{"data":1,"prerenderedAt":3137},["ShallowReactive",2],{"navigation-docsDE":3,"navigation-blogDE":465,"blog-list-de":466},[4],{"title":5,"path":6,"stem":7,"children":8,"page":-1},"Docs","\u002Fdocs","docs",[9,22,39,50,70,83,108,121,146,156,170,193,374,450],{"title":10,"path":6,"stem":11,"description":12,"icon":13,"tags":14},"Documentation","docs\u002Findex","Introduction to documentation on EPCIS and OpenEPCIS tools","heroicons-outline:document-text",[15,16,17,18,19,20,21],"openepcis","epcis-2-0","epcis-documentation","epcis-standard","open-core","open-source","epcis-tools",{"title":23,"path":24,"stem":25,"children":26,"description":28,"icon":29,"tags":30},"Introduction","\u002Fdocs\u002Fintroduction","docs\u002F01.introduction\u002Findex",[27],{"title":23,"path":24,"stem":25,"description":28,"icon":29,"tags":30},"Why EPCIS is necessary and how it can help organizations of all sizes and types.","heroicons-outline:globe-alt",[16,31,32,33,34,35,36,37,38],"epcis","epcis-1-2","gs1-epcis-standard","supply-chain","traceability","data-sharing","tracking","tracing",{"title":40,"path":41,"stem":42,"children":43,"description":45,"icon":46,"tags":47},"EPCIS","\u002Fdocs\u002Fepcis","docs\u002F02.epcis\u002Findex",[44],{"title":40,"path":41,"stem":42,"description":45,"icon":46,"tags":47},"Discover the specifics of EPCIS, how it works, and what OpenEPCIS is.","i-custom-open-epcis",[16,31,32,33,48,49],"iso-iec-19987","iso-iec-19988",{"title":51,"path":52,"stem":53,"children":54,"description":56,"icon":57,"tags":58},"Format Converter","\u002Fdocs\u002Fformat-converter","docs\u002F03.format-converter\u002Findex",[55],{"title":51,"path":52,"stem":53,"description":56,"icon":57,"tags":58},"OpenEPCIS solution to convert EPCIS 2.0 and 1.2 document or single event from XML to JSON\u002FJSON-LD and vice versa.","heroicons-outline:arrows-right-left",[16,59,60,61,62,63,64,21,65,66,67,68,69],"json","json-ld","xml","events","format-converter","convert","convert-epcis-events","format","converter","epcis-tool","tools",{"title":71,"path":72,"stem":73,"children":74,"description":76,"icon":77,"tags":78},"Version Converter","\u002Fdocs\u002Fversion-converter","docs\u002F04.version-converter\u002Findex",[75],{"title":71,"path":72,"stem":73,"description":76,"icon":77,"tags":78},"OpenEPCIS solution to convert EPCIS XML document from version 1.2 to 2.0 and vice versa.","heroicons:arrows-up-down",[16,32,59,60,61,62,79,64,21,80,81,82,67,68,69],"version-converter","convert-epcis-version","version","epcis-version",{"title":84,"path":85,"stem":86,"children":87,"description":89,"icon":90,"tags":91},"Identifier Converter","\u002Fdocs\u002Fidentifier-converter","docs\u002F05.identifier-converter\u002Findex",[88],{"title":84,"path":85,"stem":86,"description":89,"icon":90,"tags":91},"OpenEPCIS solution to convert EPCIS instance or class identifier from URN to digital link WebURI and vice versa.","i-heroicons-link",[16,92,93,94,95,96,21,97,98,99,100,101,102,103,104,105,106,107],"gs1-digital-link","urn-format","epc-uri","epc","weburi","gs1-standard","gs1","sscc","gtin","giai","grai","gdti","lgtin","sgtin","gln","gcp",{"title":109,"path":110,"stem":111,"children":112,"description":114,"icon":115,"tags":116},"Event Hash Generator","\u002Fdocs\u002Fevent-hash-generator","docs\u002F06.event-hash-generator\u002Findex",[113],{"title":109,"path":110,"stem":111,"description":114,"icon":115,"tags":116},"OpenEPCIS solution to generate unique event hash for EPCIS XML or JSON\u002FJSON-LD document or event list.","heroicons-outline:finger-print",[16,117,59,60,61,62,21,118,119,120,68,69],"event-hash","event","hash","generator",{"title":122,"path":123,"stem":124,"children":125,"page":-1,"description":127,"icon":128,"tags":129},"Test Data Generator","\u002Fdocs\u002Ftest-data-generator","docs\u002F07.test-data-generator\u002Findex",[126,130],{"title":122,"path":123,"stem":124,"description":127,"icon":128,"tags":129},"OpenEPCIS solution to generate a large set of EPCIS test data events for all use cases\u002Fsupply chain requirements.","heroicons-outline:cog",[16,117,59,60,61,62,21,118,119,120,68,69],{"title":131,"path":132,"stem":133,"children":134,"description":127,"icon":136,"tags":137},"EPCIS Implementation Guidelines","\u002Fdocs\u002Ftest-data-generator\u002Fgs1-epcis-implementation-guidelines","docs\u002F07.test-data-generator\u002F01.gs1-epcis-implementation-guidelines\u002Findex",[135],{"title":131,"path":132,"stem":133,"description":127,"icon":136,"tags":137},"heroicons-outline:badge-check",[16,59,60,138,21,139,140,141,35,142,143,144,145],"testing","test-data-generator","design","design-template","process-automation","compliance","supply-chain-management","load-tests",{"title":147,"path":148,"stem":149,"children":150,"description":152,"icon":153,"tags":154},"Test Resource Management","\u002Fdocs\u002Ftest-resource-management","docs\u002F08.test-resource-management\u002Findex",[151],{"title":147,"path":148,"stem":149,"description":152,"icon":153,"tags":154},"Collection of EPCIS 1.2\u002F2.0 documents\u002Fevents in XML\u002FJSON\u002FJSON-LD formats, intended for various testing purposes","heroicons-outline:archive-box",[16,59,60,138,21,155,35,142,143,144,145],"performance-tests",{"title":157,"path":158,"stem":159,"children":160,"description":162,"icon":163,"tags":164},"Vocabulary Management","\u002Fdocs\u002Fvocabulary-management","docs\u002F09.vocabulary-management\u002Findex",[161],{"title":157,"path":158,"stem":159,"description":162,"icon":163,"tags":164},"Collection of standardized constants and strings for EPCIS event data.","heroicons-outline:book-open",[16,165,15,166,21,167,35,168,143,144,169],"constants","centralization","standardization","vocabulary","data-dictionary",{"title":171,"path":172,"stem":173,"children":174,"description":176,"icon":177,"tags":178},"Dependency Management","\u002Fdocs\u002Fdependency-management","docs\u002F10.dependency-management\u002Findex",[175],{"title":171,"path":172,"stem":173,"description":176,"icon":177,"tags":178},"Centralized Maven Bill of Materials (BOM) for all the OpenEPCIS modules.","heroicons-outline:folder",[179,15,180,181,182,183,184,31,185,186,187,188,189,190,191,192],"maven-bom","dependency-management","java-dependencies","pom","software-dependencies","version-control","open-source-java","build-management","modular-software","dependency-resolution","java-libraries","maven-project","centralized-dependencies","dependency-consistency",{"title":194,"path":195,"stem":196,"children":197,"page":-1,"description":199,"icon":200,"tags":201},"Digital Product Passport","\u002Fdocs\u002Fdigital-product-passport","docs\u002F11.digital-product-passport\u002Findex",[198,207,218,249,282,308,321,330,338,348],{"title":194,"path":195,"stem":196,"description":199,"icon":200,"tags":201},"Introduction to Digital Product Passport and how EPCIS enables product traceability for DPP compliance.","heroicons-outline:identification",[202,203,204,31,205,35,206],"digital-product-passport","dpp","eu-regulation","sustainability","circular-economy",{"title":208,"path":209,"stem":210,"children":211,"description":213,"icon":214,"tags":215},"ESPR Framework","\u002Fdocs\u002Fdigital-product-passport\u002Fespr-framework","docs\u002F11.digital-product-passport\u002F00.espr-framework\u002Findex",[212],{"title":208,"path":209,"stem":210,"description":213,"icon":214,"tags":215},"Guide to the EU Ecodesign for Sustainable Products Regulation (ESPR) 2024\u002F1781 and how OpenEPCIS supports Digital Product Passport requirements.","heroicons-outline:shield-check",[216,217,205,203,204],"espr","ecodesign",{"title":219,"path":220,"stem":221,"children":222,"page":-1,"description":224,"icon":225,"tags":226},"Battery DPP","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002Findex",[223,229,234,240],{"title":219,"path":220,"stem":221,"description":224,"icon":225,"tags":226},"GS1-native implementation of EU Battery Regulation 2023\u002F1542 Digital Product Passport using EPCIS 2.0","heroicons:battery-100",[227,228,203,31,98,35,205],"battery","eu-battery-regulation",{"title":230,"path":231,"stem":232,"description":233,"icon":163},"Implementation Guide","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F01.implementation-guide","Step-by-step guide for implementing a GS1-native Battery Digital Product Passport with OpenEPCIS extensions",{"title":235,"path":236,"stem":237,"description":238,"icon":239},"Event Types","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fevent-types","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F02.event-types","Complete reference for all EPCIS event types and sensor measurements in the Battery DPP","heroicons-outline:collection",{"title":241,"path":242,"stem":243,"description":244,"icon":13,"tags":245},"Complete Examples","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F05.complete-examples","Reference Battery Digital Product Passport examples mapped to EU Battery Regulation 2023\u002F1542 Annex XIII",[227,246,247,60,248],"examples","annex-xiii","carbon-footprint",{"title":250,"path":251,"stem":252,"children":253,"page":-1,"description":255,"icon":256,"tags":257},"EUDR","\u002Fdocs\u002Fdigital-product-passport\u002Feudr","docs\u002F11.digital-product-passport\u002F02.eudr\u002Findex",[254,261,266,270,275],{"title":250,"path":251,"stem":252,"description":255,"icon":256,"tags":257},"GS1-native implementation of EU Deforestation Regulation 2023\u002F1115 compliance using EPCIS 2.0","heroicons-outline:globe-europe-africa",[258,259,260,203,31,98,35,205],"eudr","deforestation","timber",{"title":230,"path":262,"stem":263,"description":264,"icon":265},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F02.eudr\u002F01.implementation-guide","Step-by-step guide for implementing EU Deforestation Regulation compliance using GS1 standards",null,{"title":235,"path":267,"stem":268,"description":269,"icon":265},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fevent-types","docs\u002F11.digital-product-passport\u002F02.eudr\u002F02.event-types","EPCIS event types for EU Deforestation Regulation compliance",{"title":271,"path":272,"stem":273,"description":274,"icon":265},"URL Patterns","\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Furl-patterns","docs\u002F11.digital-product-passport\u002F02.eudr\u002F03.url-patterns","GS1 Digital Link URL patterns for EUDR implementations",{"title":241,"path":276,"stem":277,"description":278,"icon":13,"tags":279},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F02.eudr\u002F04.complete-examples","Reference EUDR examples — timber product passport, derived product, regulatory notification, harvesting \u002F origin-declaration \u002F processing \u002F supply-chain-transfer \u002F exemption events",[258,246,260,280,281],"due-diligence","geolocation",{"title":283,"path":284,"stem":285,"children":286,"page":-1,"description":288,"icon":289,"tags":290},"Textile DPP","\u002Fdocs\u002Fdigital-product-passport\u002Ftextile","docs\u002F11.digital-product-passport\u002F03.textile\u002Findex",[287,295,302],{"title":283,"path":284,"stem":285,"description":288,"icon":289,"tags":290},"Digital Product Passport vocabulary for textiles and apparel under the EU Sustainable Textiles Strategy and ESPR 2024\u002F1781.","heroicons-outline:sparkles",[291,292,293,203,205,294],"textile","apparel","footwear","fibre-composition",{"title":230,"path":296,"stem":297,"description":298,"icon":299,"tags":300},"\u002Fdocs\u002Fdigital-product-passport\u002Ftextile\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F03.textile\u002F01.implementation-guide","How to assemble a Textile Digital Product Passport against the published openepcis-dpp-ready textile vocabulary","heroicons-outline:scissors",[291,292,293,301],"implementation",{"title":241,"path":303,"stem":304,"description":305,"icon":13,"tags":306},"\u002Fdocs\u002Fdigital-product-passport\u002Ftextile\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F03.textile\u002F02.complete-examples","Reference Textile Digital Product Passport documents covering apparel and footwear",[291,246,292,293,307,60],"fiber-composition",{"title":309,"path":310,"stem":311,"children":312,"description":314,"icon":57,"tags":315},"Interoperability","\u002Fdocs\u002Fdigital-product-passport\u002Finteroperability","docs\u002F11.digital-product-passport\u002F04.interoperability\u002Findex",[313],{"title":309,"path":310,"stem":311,"description":314,"icon":57,"tags":315},"Guide to OpenEPCIS DPP interoperability with GS1, UNTP, CIRPASS2, and ESPR standards.",[316,317,98,318,216,319,320],"interoperability","untp","cirpass2","standards","alignment",{"title":322,"path":323,"stem":324,"description":325,"icon":29,"tags":326},"DPP Resolution Flow","\u002Fdocs\u002Fdigital-product-passport\u002Fdpp-resolution-flow","docs\u002F11.digital-product-passport\u002F05.dpp-resolution-flow","How OpenEPCIS combined GS1 Digital Link, the IETF linkset format and content negotiation into one DPP resolution flow",[327,92,328,329],"walkthrough","linkset","content-negotiation",{"title":331,"path":332,"stem":333,"description":334,"icon":335,"tags":336},"Resolver Setup","\u002Fdocs\u002Fdigital-product-passport\u002Fresolver-setup","docs\u002F11.digital-product-passport\u002F06.resolver-setup","How to expose your DPP behind a GS1 Digital Link resolver","heroicons-outline:server",[337,92,328],"resolver",{"title":339,"path":340,"stem":341,"description":342,"icon":343,"tags":344},"Multi-Component Example","\u002Fdocs\u002Fdigital-product-passport\u002Fmulti-component-example","docs\u002F11.digital-product-passport\u002F07.multi-component-example","How a composite product references separately-passported components via standard GS1 Digital Link and EPCIS aggregation","heroicons-outline:puzzle-piece",[345,346,347,318],"example","components","aggregation",{"title":349,"path":350,"stem":351,"children":352,"page":-1,"description":354,"icon":355,"tags":356},"Electronics DPP","\u002Fdocs\u002Fdigital-product-passport\u002Felectronics","docs\u002F11.digital-product-passport\u002F08.electronics\u002Findex",[353,362,367],{"title":349,"path":350,"stem":351,"description":354,"icon":355,"tags":356},"Digital Product Passport vocabulary for electronic devices under ESPR, the French Repairability Index, EU Right to Repair and WEEE.","heroicons-outline:device-phone-mobile",[357,358,359,360,361],"electronics","repairability","weee","energy-label","right-to-repair",{"title":230,"path":363,"stem":364,"description":365,"icon":163,"tags":366},"\u002Fdocs\u002Fdigital-product-passport\u002Felectronics\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F08.electronics\u002F01.implementation-guide","How to assemble an Electronics Digital Product Passport against the published openepcis-dpp-ready electronics vocabulary",[357,301,358,359,360],{"title":241,"path":368,"stem":369,"description":370,"icon":13,"tags":371},"\u002Fdocs\u002Fdigital-product-passport\u002Felectronics\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F08.electronics\u002F02.complete-examples","Reference Electronics Digital Product Passport documents covering smartphone, laptop, display and server",[357,246,372,373,60],"smartphone","laptop",{"title":375,"path":376,"stem":377,"children":378,"page":-1,"description":380,"icon":381},"OpenEPCIS Overview","\u002Fdocs\u002Fplatform-overview","docs\u002F14.platform-overview\u002Findex",[379,382,388,394,400],{"title":375,"path":376,"stem":377,"description":380,"icon":381},"A GS1-conformant supply-chain data platform — Resolver, Masterdata, EPCIS Events — in open source and business editions.","lucide:layout-dashboard",{"title":383,"path":384,"stem":385,"description":386,"icon":387},"Architecture","\u002Fdocs\u002Fplatform-overview\u002Farchitecture","docs\u002F14.platform-overview\u002F01.architecture","How OpenEPCIS handles identity, isolation, events, and GS1 conformance — the four things that distinguish the platform.","lucide:cpu",{"title":389,"path":390,"stem":391,"description":392,"icon":393},"Feature Matrix","\u002Fdocs\u002Fplatform-overview\u002Ffeature-matrix","docs\u002F14.platform-overview\u002F02.feature-matrix","OpenEPCIS capabilities by edition, aligned to the relevant GS1 standards.","lucide:check-square",{"title":395,"path":396,"stem":397,"description":398,"icon":399},"Roadmap","\u002Fdocs\u002Fplatform-overview\u002Froadmap","docs\u002F14.platform-overview\u002F03.roadmap","Three horizons — Now, Next, Later. Skeleton awaiting user-confirmed dates.","lucide:map",{"title":401,"path":402,"stem":403,"children":404,"page":-1,"description":406,"icon":407},"Modules","\u002Fdocs\u002Fplatform-overview\u002Fmodules","docs\u002F14.platform-overview\u002Fmodules\u002Findex",[405,408,414,420,426,432,438,444],{"title":401,"path":402,"stem":403,"description":406,"icon":407},"Seven module families that organise the OpenEPCIS platform — Resolver, Masterdata, EPCIS Events, Formats & Validation, Integration, Testdata, Platform.","lucide:layers",{"title":409,"path":410,"stem":411,"description":412,"icon":413},"GS1 Conformant Resolver","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fresolver","docs\u002F14.platform-overview\u002Fmodules\u002F01.resolver","Resolves GS1 Digital Link URIs to product information, masterdata, EPCIS endpoints, and twelve more standard link types.","lucide:link-2",{"title":415,"path":416,"stem":417,"description":418,"icon":419},"GS1 Web Vocabulary & Masterdata","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fmasterdata","docs\u002F14.platform-overview\u002Fmodules\u002F02.masterdata","Web Vocabulary models, masterdata-to-resolver REST pattern, GS1 Germany Activate Plus \u002F GEPIR sync, and the event-driven masterdata bus.","lucide:database",{"title":421,"path":422,"stem":423,"description":424,"icon":425},"EPCIS Events — Capture, Query, Subscriptions","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fepcis-events","docs\u002F14.platform-overview\u002Fmodules\u002F03.epcis-events","EPCIS 2.0 REST and SOAP, live streaming subscriptions, resilient pagination, OpenSearch event store.","lucide:activity",{"title":427,"path":428,"stem":429,"description":430,"icon":431},"Formats, Validation & Identity","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fformats","docs\u002F14.platform-overview\u002Fmodules\u002F04.formats","XML ↔ JSON-LD conversion, multi-layer validation, identifier translation, idempotent event hashing.","lucide:file-check",{"title":433,"path":434,"stem":435,"description":436,"icon":437},"Integration & Gateways","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fintegration","docs\u002F14.platform-overview\u002Fmodules\u002F05.integration","Cloud storage, file service, natural-language AI assistant.","lucide:plug",{"title":439,"path":440,"stem":441,"description":442,"icon":443},"Testdata & Developer Tooling","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Ftestdata","docs\u002F14.platform-overview\u002Fmodules\u002F06.testdata","Synthetic EPCIS test event generation, reference event collections, conformance test suite, SDKs.","lucide:wrench",{"title":445,"path":446,"stem":447,"description":448,"icon":449},"Platform, Build & Observability","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fplatform","docs\u002F14.platform-overview\u002Fmodules\u002F07.platform","How OpenEPCIS is built, deployed, and observed.","lucide:server",{"title":451,"path":452,"stem":453,"children":454,"description":456,"icon":29,"tags":457},"Vision","\u002Fdocs\u002Fvision","docs\u002F15.vision\u002Findex",[455],{"title":451,"path":452,"stem":453,"description":456,"icon":29,"tags":457},"How UNTP, DIDs, Verifiable Credentials, and EPCIS work together to create unified product identity infrastructure for the connected supply chain.",[458,459,460,461,317,462,463,464],"vision","digital-twin","did","verifiable-credentials","rfid","industry-4-0","web-3-0",[],[467,1042],{"id":468,"title":469,"author":470,"body":471,"date":1017,"description":480,"extension":1018,"hero":1019,"icon":1020,"meta":1021,"navigation":1032,"originalLanguage":1033,"path":1034,"seo":1035,"sitemap":1036,"stem":1037,"tags":1038,"__hash__":1041,"lang":1033},"blogEN\u002Fblog\u002F02.blockchain-traceability.md","Fascinating in Theory. It Just Doesn't Work in Practice.","Sven Böckelmann",{"type":472,"value":473,"toc":1000},"minimark",[474,481,484,487,492,503,508,511,514,517,521,524,533,537,544,547,556,560,566,569,584,593,602,605,609,618,622,625,628,632,638,641,644,653,680,683,687,690,693,696,711,714,717,720,724,739,745,748,752,756,759,768,772,781,785,788,791,794,797,800,804,810,820,825,833,838,858,863,871,876,884,889,897,902,916,921,941,946,954,959,973,978,986,991],[475,476,477],"p",{},[478,479,480],"em",{},"Why blockchain is the wrong answer to traceability, and why it refuses to die anyway.",[475,482,483],{},"There is a Pavlovian reflex in our industry. Someone says \"traceability,\" and the next sentence says \"blockchain.\" Track and trace, supply chain, Digital Product Passport, and out comes the ledger. Or whatever this season's word for it happens to be. Same procedure as every year. Fascinating, no question. It just doesn't work.",[475,485,486],{},"I want to explain why the technology is the wrong choice for this job, why it keeps coming back like something undead, and to check honestly whether I have a blind spot. If there were a reason that made blockchain indispensable for traceability, I would want to know it.",[488,489,491],"h2",{"id":490},"the-one-question-almost-nobody-asks","The one question almost nobody asks",[475,493,494,495,502],{},"In 2018, Karl Wüst of ETH Zurich and Arthur Gervais of Imperial College London published ",[496,497,501],"a",{"href":498,"rel":499},"https:\u002F\u002Fwww.law.berkeley.edu\u002Fwp-content\u002Fuploads\u002F2018\u002F08\u002FDo-you-need-a-Blockchain-Karl-Wust-and-Arthur-Gervais.pdf",[500],"nofollow","a decision diagram"," that fits the entire debate onto a single page. Do you need a blockchain? Only when four things come together: you need to store state, there are multiple writers, there is no always-online trusted third party available, and the writers do not trust one another.",[504,505],"diagram-image",{"alt":506,"src":507},"Wüst & Gervais decision tree: a blockchain is only warranted when you need to store state, have multiple writers, have no always-online trusted third party, and the writers do not trust one another.","\u002Fdiagrams\u002Fblog-do-you-need-a-blockchain",[475,509,510],{},"The paper puts it cleanly. If a trusted third party is available that does not need to be permanently online, it can establish a known group of writers and function as a certificate authority. Classic PKI is enough.",[475,512,513],{},"Hold that against a real supply chain. The participants are known, with GS1 identifiers, contracts, regulators, certifiers, customs authorities, trade registries, and inspection bodies. These are precisely the trusted authorities whose absence would justify a blockchain in the first place. The core condition fails. The diagram's answer is clear: no blockchain.",[475,515,516],{},"Blockchain solves a trust problem between anonymous, mutually distrusting parties with no referee. A regulated supply chain has known parties under contract and oversight. The match is wrong from the start.",[488,518,520],{"id":519},"the-consortium-that-wasnt","The consortium that wasn't",[475,522,523],{},"The usual rescue is to say that public blockchain doesn't fit, but a permissioned consortium chain does. This is where the argument gets quietly absurd. A permissioned blockchain run by one operator with a hand-picked set of nodes is a distributed database wearing a costume. Once the writers are known and bound by rules, the consensus ceremony adds no security that a signed database with access control doesn't already provide.",[475,525,526,527,532],{},"TradeLens is the textbook case. It ",[496,528,531],{"href":529,"rel":530},"https:\u002F\u002Fpiernext.portdebarcelona.cat\u002Fen\u002Ftechnology\u002Ftradelens-the-blockchain-platform-for-maritime-logistics",[500],"ran on Hyperledger Fabric",", Maersk controlled the platform, and its competitors stayed out for exactly that reason. The chain did not solve the trust problem, because the chain was the trust problem. When one operator effectively controls the ledger, calling it a blockchain is marketing language.",[488,534,536],{"id":535},"the-immutability-of-a-lie","The immutability of a lie",[475,538,539],{},[540,541],"img",{"alt":542,"src":543},"A crumpled sheet of paper stamped with a red X, sealed inside a locked glass case, immutable but still wrong","\u002Fimg\u002Fblog\u002Fblockchain-garbage-in.webp",[475,545,546],{},"Suppose you ignore all of that. Then comes the argument that cannot be waved away. A blockchain guarantees that data cannot be changed after it is written. It says nothing about whether the data was true when it was written.",[475,548,549,550,555],{},"The temperature of a cold chain is measured by whoever is holding the goods at that moment. Whether the mango really comes from the region listed in the record, the chain cannot know. It knows only what someone entered into it. Garbage in, garbage out, and at the end you have a tamper-proof copy of a false claim. The World Economic Forum ",[496,551,554],{"href":552,"rel":553},"https:\u002F\u002Fwidgets.weforum.org\u002Fblockchain-toolkit\u002Fdata-integrity\u002F",[500],"says so in its own blockchain toolkit",": if the data is not accurate to begin with, making it immutable on a blockchain provides no benefit.",[488,557,559],{"id":558},"the-bodies-in-the-basement","The bodies in the basement",[475,561,562],{},[540,563],{"alt":564,"src":565},"A dim data centre of switched-off server racks and unplugged cables, with abandoned cardboard boxes on the floor","\u002Fimg\u002Fblog\u002Fblockchain-failures.webp",[475,567,568],{},"Theory is one thing. Look at the record.",[475,570,571,572,577,578,583],{},"TradeLens, the flagship from IBM and Maersk, launched in August 2018. By 2020 it had more than 175 organizations and data from over 600 ports. Shutdown was ",[496,573,576],{"href":574,"rel":575},"https:\u002F\u002Fwww.maersk.com\u002Fnews\u002Farticles\u002F2022\u002F11\u002F29\u002Fmaersk-and-ibm-to-discontinue-tradelens",[500],"announced in November 2022",", and the platform was offline by the end of Q1 2023. Maersk said it had not reached commercial viability. Lars Jensen of Vespucci Maritime ",[496,579,582],{"href":580,"rel":581},"https:\u002F\u002Fwww.supplychaindive.com\u002Fnews\u002FMaersk-IBM-shut-down-TradeLens\u002F637580\u002F",[500],"put the lesson plainly on LinkedIn",": what determined the fate of TradeLens was commercial usage, and the sophistication of the technology was beside the point.",[475,585,586,587,592],{},"IBM Food Trust and the ",[496,588,591],{"href":589,"rel":590},"https:\u002F\u002Fwww.lfdecentralizedtrust.org\u002Fcase-studies\u002Fwalmart-case-study",[500],"famous mango test",", nearly seven days of manual traceback reduced to 2.2 seconds with blockchain. The number has done the rounds for years. It came from a single pilot at a single retailer, and any EPCIS database with GS1 keys delivers the same speedup, without a consensus mechanism.",[475,594,595,596,601],{},"Everledger, the diamond pioneer, took $20M from a Tencent-led round in 2019. A ",[496,597,600],{"href":598,"rel":599},"https:\u002F\u002Fwww.ledgerinsights.com\u002Feverledger-bankruptcy-esg-blockchain-traceability\u002F",[500],"follow-on deal in late 2022 fell apart"," when the conditional balance never arrived. By 2023 the company had wound down, its Australian subsidiary in administration and the UK entity in liquidation.",[475,603,604],{},"The pattern repeats. Big launch, grant money, pilots, then silence. The technology was well built. The job was the wrong one for it.",[488,606,608],{"id":607},"the-gdpr-problem","The GDPR problem",[475,610,611,612,617],{},"Immutability sounds like a virtue until personal data enters the picture. Article 17 GDPR, the right to erasure. Article 16, the right to rectification. A blockchain is built on purpose so that later changes are hard or impossible. The ",[496,613,616],{"href":614,"rel":615},"https:\u002F\u002Fwww.edpb.europa.eu\u002Fsystem\u002Ffiles\u002F2025-04\u002Fedpb_guidelines_202502_blockchain_en.pdf",[500],"EDPB Guidelines 02\u002F2025"," spell out the structural conflict and tell controllers to keep personal data off-chain, with only hashes or references on the chain. The same guidelines caution that even those hashes can themselves be personal data, so the chain never fully escapes the regulation. Which brings us to the next point.",[488,619,621],{"id":620},"if-the-real-data-sits-beside-the-chain-what-is-the-chain-for","If the real data sits beside the chain, what is the chain for?",[475,623,624],{},"The honest answer to scaling is Merkle batching. Only hashes go on the chain, and the data lives in a system beside it that holds it, signs it, and serves queries. Once that off-chain system is doing all the work, EPCIS 2.0 plus signed credentials covers everything, and the chain adds nothing that a signed, timestamped data structure does not already provide.",[475,626,627],{},"For high-value single items the overhead may pay off. For everyday consumer goods, billions of items, thin margins, and constant churn through returns, repair, refurbishment, and recycling, it does not. Permissioned chains hit the throughput numbers by collapsing into a centrally-operated database that happens to be running Fabric underneath. The economics never carry for thin-margin mass goods. A realistic estimate is around 25 dollars per container per journey, about one percent of average container transport cost. Tolerable for container freight. Absurd for a single pair of jeans on a shelf.",[488,629,631],{"id":630},"what-actually-works","What actually works",[475,633,634],{},[540,635],{"alt":636,"src":637},"A parcel with a QR-code label linked to a wax-sealed certificate marked with a green check","\u002Fimg\u002Fblog\u002Fblockchain-what-works.webp",[475,639,640],{},"The alternative exists, it is standardized, and it runs in production today.",[475,642,643],{},"Verifiable Credentials let a known issuer make a signed, machine-readable statement about a product. A verifier checks it locally, offline, with no global consensus and no transaction cost. Selective disclosure through SD-JWT protects confidential business data. Issuer identity resolves through ledger-free DID methods such as did:web or did:key. If you want a verifiable history, did:webvh delivers one, again without a ledger.",[475,645,646,647,652],{},"Beneath that sits the real infrastructure. GS1 EPCIS 2.0 as the standardized event model for the what, when, where, and why. GS1 Digital Link, which connects the physical product to its passport through a QR code, the same code for the checkout and for the consumer. GS1 Web Vocabulary and JSON-LD for the semantics. The ",[496,648,651],{"href":649,"rel":650},"https:\u002F\u002Funtp.unece.org\u002Fdocs\u002Fnext\u002Fspecification\u002FDigitalTraceabilityEvents\u002F",[500],"UN Transparency Protocol from UNECE"," issues all of its credentials as W3C Verifiable Credentials and describes GS1 EPCIS 2.0 as a mature, widely deployed standard.",[475,654,655,656,661,662,667,668,673,674,679],{},"Regulation points the same way. The EUDI wallet under eIDAS 2.0 builds its trust model on X.509 certificates and classical certificate authorities. DIDs and blockchain are not mandated; the ",[496,657,660],{"href":658,"rel":659},"https:\u002F\u002Fgithub.com\u002Feu-digital-identity-wallet\u002Feudi-doc-architecture-and-reference-framework\u002Fissues\u002F278",[500],"formal request to include DIDs in the ARF"," had to be filed by the Decentralized Identity Foundation, the Digital Credentials Consortium, and the Trust Over IP Foundation, which is itself the clearest signal that they remain optional. Microsoft ",[496,663,666],{"href":664,"rel":665},"https:\u002F\u002Fgithub.com\u002FMicrosoftDocs\u002Fentra-docs\u002Fblob\u002Fmain\u002Fdocs\u002Fverified-id\u002Fverifiable-credentials-faq.md",[500],"removed did:ion from Entra Verified ID in December 2023",", with did:web as the recommended default. On 27 May 2026, ",[496,669,672],{"href":670,"rel":671},"https:\u002F\u002Fstandards.cencenelec.eu\u002Fdyn\u002Fwww\u002Ff?p=205:7:0::::FSP_ORG_ID:3342699",[500],"CEN and CENELEC published the first EN standards for the EU DPP",", the EN 182xx series from technical committee JTC 24, written to be system-agnostic and vendor-independent. GS1 itself, in ",[496,675,678],{"href":676,"rel":677},"https:\u002F\u002Fgs1.eu\u002Fwp-content\u002Fuploads\u002F2024\u002F12\u002FGS1-Standards-Enabling-DPP.pdf",[500],"GS1 Standards enabling the EU digital product passport",", recommends Verifiable Credentials for integrity and treats blockchain as just one option, \"entirely a choice for industry.\"",[475,681,682],{},"The technology is settled. The standards are published. The implementations are deployed. There is no gap that a chain is needed to fill. And none of it is a blockchain, however often the label gets pinned to signed credentials by vendors who know the word still moves budget.",[488,684,686],{"id":685},"where-blockchain-genuinely-earns-its-place","Where blockchain genuinely earns its place",[475,688,689],{},"I do not want to make this too easy on myself. Good practice for traceability is the previous section, full stop. But there are niches, well outside it, where the chain is at least defensible, and anyone who talks them away leaves an opening. So here is the honest accounting of that thin edge.",[475,691,692],{},"Genuinely adversarial settings with no trusted authority at all. This is the Wüst and Gervais condition exactly, and in regulated supply chains the authority exists.",[475,694,695],{},"Censorship resistance and the absence of a single point of control. Real and relevant in sanctions evasion. For a consumer product passport, censorship resistance is not a design goal, and the manufacturer is meant to be the authoritative source.",[475,697,698,699,704,705,710],{},"Timestamping and proof of existence through hash anchoring. The most common residual claim, and the thinnest. RFC 3161 timestamping under eIDAS, with audited time-stamping authorities operating to ",[496,700,703],{"href":701,"rel":702},"https:\u002F\u002Fwww.etsi.org\u002Fdeliver\u002Fetsi_en\u002F319400_319499\u002F319421\u002F01.03.01_60\u002Fen_319421v010301p.pdf",[500],"ETSI EN 319 421"," for policy and security requirements and ",[496,706,709],{"href":707,"rel":708},"https:\u002F\u002Fwww.etsi.org\u002Fdeliver\u002Fetsi_en\u002F319400_319499\u002F319422\u002F01.01.01_60\u002Fen_319422v010101p.pdf",[500],"ETSI EN 319 422"," for the protocol and token profile, delivers a qualified timestamp with a legal presumption of accuracy and integrity, and only the hash leaves the client. Append-only public logs such as Certificate Transparency and Sigstore Rekor give equivalent tamper-evident existence proofs where public visibility is the design goal. All of it at internet scale today, without a consensus ledger.",[475,712,713],{},"Tokenization of high-value assets is where the case looks strongest. De Beers Tracr is running, with more than five million rough diamonds registered at source, around two-thirds of De Beers' production by value, and GIA announced a 30% stake in May 2026. It is a real deployment, and the definition of a niche, where the per-item value carries the overhead. Even here the chain is thinner than it looks. The records that matter are written and vouched for by De Beers, so the trust still rests on De Beers' own ledger. By the same argument that sank the consortium chains, a single authoritative writer makes the consensus ceremony optional. The everyday goods of the mass DPP are nowhere near this value anyway, so the example supports the thesis more than it weakens it.",[475,715,716],{},"Automated settlement and supply chain finance. A financial use case where information lives on the chain itself, with no outside reality to second-guess. Traceability is a separate problem with a separate answer.",[475,718,719],{},"After honest review, the blind spot is real and small, and it sits outside the area in question. None of these niches makes blockchain necessary for mass traceability, for the passport of everyday goods, or for the circular economy.",[488,721,723],{"id":722},"and-then-theres-iot","And then there's IoT",[475,725,726,727,732,733,738],{},"The same reflex has a sibling. Put a sensor in everything, the pitch goes, and the supply chain turns transparent on its own. Sensors are genuinely useful where a product's condition can change in transit, a vaccine warming or a crate taking a knock, but a reading is only a measurement, and only as honest as whoever placed the device. It is also nothing new. ",[496,728,731],{"href":729,"rel":730},"https:\u002F\u002Fwww.gs1.org\u002Fstandards\u002Fepcis",[500],"GS1 EPCIS 2.0"," added a dimension for exactly this, the \"how\" of an event, so a temperature or humidity reading rides inside the same standardised event as the what, when and where, ",[496,734,737],{"href":735,"rel":736},"https:\u002F\u002Fwww.iso.org\u002Fstandard\u002F85557.html",[500],"ratified as ISO\u002FIEC 19987:2024",". Sensors are one more kind of data flowing into the boring stack, which absorbed them years ago.",[475,740,741],{},[540,742],{"alt":743,"src":744},"A shipping box with an attached sensor showing its condition as a pulse line","\u002Fimg\u002Fblog\u002Fiot-sensing.webp",[475,746,747],{},"So should the sensor data go on a blockchain? This is where the two fashions meet, and the meeting makes both worse. Immutability does nothing for a reading whose honesty depends on where the probe was clipped. It just freezes a possibly false number in place forever. A cold chain also produces a constant stream of readings, the heaviest and most repetitive data imaginable, which is the worst possible fit for an append-only ledger that every node has to store and replicate. Put personal or commercially sensitive data in that stream and the erasure problem from earlier comes straight back. Sign the reading and attach it to an EPCIS event, and you get an integrity guarantee that stands up in court without asking a thousand machines to keep a copy of last Tuesday's fridge temperature.",[504,749],{"alt":750,"src":751},"A sensor reading passes through a gateway into a GS1 EPCIS 2.0 event carrying a sensor element, which is then wrapped in a signed credential. IoT is a data source for the existing stack rather than a separate ledger.","\u002Fdiagrams\u002Fblog-iot-feeds-epcis",[488,753,755],{"id":754},"so-why-wont-it-die","So why won't it die?",[475,757,758],{},"Because a legitimate wish gets equated, by reflex, with one technology. The word itself has stretched until it covers anything cryptographic, the same drift now playing out with AI, where every product that touches a file becomes AI-powered and auditors, regulators, and procurement teams wave it through because the language is fuzzy enough to allow it. People want immutability, transparency, and trust, and they say \"blockchain,\" even though signed data structures, append-only logs, and PKI deliver exactly that without the consensus overhead. Add consulting and platform revenue and a healthy dose of fear of missing out.",[475,760,761,762,767],{},"And there is the quiet engine. Blockchain and traceability have fused in the minds of the people who fund and steer the work. The EU Blockchain Observatory gave the Digital Product Passport its own report, ",[496,763,766],{"href":764,"rel":765},"https:\u002F\u002Fblockchain-observatory.ec.europa.eu\u002Fpublications\u002Fdigital-product-passport-blockchain-based-perspective_en",[500],"a blockchain-based perspective",", folding even verifiable credentials and DIDs into the blockchain story, while conceding that no regulation prescribes a chain. Want the grant? Propose the chain, whether or not it is the right tool. The output is real: papers, prototypes, conference slots. The deployments are not. The research records it soberly: many publications, very little production use.",[488,769,771],{"id":770},"where-the-chain-truly-belongs","Where the chain truly belongs",[475,773,774,775,780],{},"There is one place the chain genuinely shines, and it has nothing to do with any of this: money. When your own currency is melting and the government behind it is the cause, a token that moves value out of its reach stops being a toy and becomes a lifeline. ",[496,776,779],{"href":777,"rel":778},"https:\u002F\u002Fwww.chainalysis.com\u002Fblog\u002F2025-global-crypto-adoption-index\u002F",[500],"The most grassroots adoption"," sits in emerging markets and runs largely on stablecoins, people reaching for the dollar over crypto rails because their own money will not hold. High-risk but real, and a story about money, with nothing to teach the passport of a pair of jeans.",[488,782,784],{"id":783},"bottom-line","Bottom line",[475,786,787],{},"Traceability needs verifiable, signed statements from known issuers, checkable locally, selectively disclosable, and erasable. Verifiable Credentials, DIDs, and GS1 EPCIS 2.0 deliver all of that in full.",[475,789,790],{},"Blockchain addresses a trust problem that regulated supply chains do not have. The economics do not carry for thin-margin mass goods. Where personal data is involved, it collides with Article 17 GDPR. Where one operator controls the ledger, calling it a blockchain is marketing language. And it never establishes the truth of what was recorded. The chain only preserves it.",[475,792,793],{},"One test would change my mind. Show me a production system, not a pilot, that closes the gap between physical reality and the recorded data without an off-chain trust anchor, stays GDPR compliant without offloading the real data, and costs less per event for thin-margin mass goods than credentials and EPCIS. Until then it holds: fascinating in theory, and it just doesn't work in practice.",[475,795,796],{},"So when are we finally going to drop the blockchain nonsense?",[798,799],"hr",{},[488,801,803],{"id":802},"sources","Sources",[475,805,806],{},[807,808,809],"strong",{},"Foundational paper",[811,812,813],"ul",{},[814,815,816,817],"li",{},"Karl Wüst and Arthur Gervais, \"Do you need a Blockchain?\", CVCBT 2018: ",[496,818,498],{"href":498,"rel":819},[500],[475,821,822],{},[807,823,824],{},"Data integrity",[811,826,827],{},[814,828,829,830],{},"World Economic Forum, Blockchain Toolkit, Data Integrity: ",[496,831,552],{"href":552,"rel":832},[500],[475,834,835],{},[807,836,837],{},"TradeLens",[811,839,840,846,852],{},[814,841,842,843],{},"TradeLens architecture (IBM Blockchain Platform on Hyperledger Fabric), Port de Barcelona PierNext: ",[496,844,529],{"href":529,"rel":845},[500],[814,847,848,849],{},"Maersk press release on TradeLens discontinuation, 29 Nov 2022: ",[496,850,574],{"href":574,"rel":851},[500],[814,853,854,855],{},"Supply Chain Dive coverage with Lars Jensen comment: ",[496,856,580],{"href":580,"rel":857},[500],[475,859,860],{},[807,861,862],{},"IBM Food Trust \u002F Walmart mango pilot",[811,864,865],{},[814,866,867,868],{},"Linux Foundation Decentralized Trust, Walmart case study: ",[496,869,589],{"href":589,"rel":870},[500],[475,872,873],{},[807,874,875],{},"Everledger",[811,877,878],{},[814,879,880,881],{},"Ledger Insights on Everledger collapse: ",[496,882,598],{"href":598,"rel":883},[500],[475,885,886],{},[807,887,888],{},"GDPR",[811,890,891],{},[814,892,893,894],{},"EDPB Guidelines 02\u002F2025 on processing of personal data through blockchain technologies: ",[496,895,614],{"href":614,"rel":896},[500],[475,898,899],{},[807,900,901],{},"Alternative: standards and architecture",[811,903,904,910],{},[814,905,906,907],{},"UN Transparency Protocol, Digital Traceability Events (UNECE): ",[496,908,649],{"href":649,"rel":909},[500],[814,911,912,913],{},"GS1, \"GS1 Standards enabling the EU digital product passport\": ",[496,914,676],{"href":676,"rel":915},[500],[475,917,918],{},[807,919,920],{},"Regulation and direction of travel",[811,922,923,929,935],{},[814,924,925,926],{},"EUDI ARF, Issue #278 (request to include DIDs in the ARF): ",[496,927,658],{"href":658,"rel":928},[500],[814,930,931,932],{},"Microsoft Entra Verified ID FAQ (did:ion deprecation): ",[496,933,664],{"href":664,"rel":934},[500],[814,936,937,938],{},"CEN-CLC\u002FJTC 24, EN 182xx series for the EU Digital Product Passport (published 27 May 2026): ",[496,939,670],{"href":670,"rel":940},[500],[475,942,943],{},[807,944,945],{},"Why the reflex persists",[811,947,948],{},[814,949,950,951],{},"EU Blockchain Observatory & Forum, \"Digital Product Passport, a Blockchain-based Perspective\" (DG CNECT, 3 May 2024): ",[496,952,764],{"href":764,"rel":953},[500],[475,955,956],{},[807,957,958],{},"IoT and sensor data",[811,960,961,967],{},[814,962,963,964],{},"GS1 EPCIS 2.0 (EPC Information Services), including sensor data: ",[496,965,729],{"href":729,"rel":966},[500],[814,968,969,970],{},"ISO\u002FIEC 19987:2024 (EPCIS): ",[496,971,735],{"href":735,"rel":972},[500],[475,974,975],{},[807,976,977],{},"Money and currency instability",[811,979,980],{},[814,981,982,983],{},"Chainalysis, 2025 Global Crypto Adoption Index (grassroots adoption in emerging markets, largely stablecoins for dollar access and inflation hedging): ",[496,984,777],{"href":777,"rel":985},[500],[475,987,988],{},[807,989,990],{},"De Beers Tracr (high-value niche example)",[811,992,993],{},[814,994,995,996],{},"Rapaport on GIA's 30% Tracr stake: ",[496,997,998],{"href":998,"rel":999},"https:\u002F\u002Frapaport.com\u002Fnews\u002Fgia-acquires-30-stake-in-de-beers-tracr-platform\u002F",[500],{"title":1001,"searchDepth":1002,"depth":1002,"links":1003},"",2,[1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016],{"id":490,"depth":1002,"text":491},{"id":519,"depth":1002,"text":520},{"id":535,"depth":1002,"text":536},{"id":558,"depth":1002,"text":559},{"id":607,"depth":1002,"text":608},{"id":620,"depth":1002,"text":621},{"id":630,"depth":1002,"text":631},{"id":685,"depth":1002,"text":686},{"id":722,"depth":1002,"text":723},{"id":754,"depth":1002,"text":755},{"id":770,"depth":1002,"text":771},{"id":783,"depth":1002,"text":784},{"id":802,"depth":1002,"text":803},"2026-06-19T00:00:00.000Z","md","\u002Fimg\u002Fblog\u002Fblockchain-hero.webp","heroicons-outline:newspaper",{"head":1022,"readingTime":1027},{"meta":1023},[1024],{"name":1025,"content":1026},"keywords","Blockchain, Traceability, DPP, EPCIS 2.0, Verifiable Credentials, DID, GDPR, TradeLens, PKI, GS1 Digital Link, IoT, sensor data, cold chain",{"text":1028,"minutes":1029,"time":1030,"words":1031},"14 min read",13.38,802800,2676,true,"en","\u002Fblog\u002Fblockchain-traceability",{"title":469,"description":480},{"loc":1034},"blog\u002F02.blockchain-traceability",[1039,35,203,31,461,98,34,1040],"blockchain","iot","6gzP4fWbKnbG-_mrId0Vc7DG_nywqTOSUZ3tKZ4RNs8",{"id":1043,"title":1044,"author":470,"body":1045,"date":3113,"description":3114,"extension":1018,"hero":3115,"icon":1020,"meta":3116,"navigation":1032,"originalLanguage":265,"path":3126,"seo":3127,"sitemap":3128,"stem":3129,"tags":3130,"__hash__":3136,"lang":1033},"blogEN\u002Fblog\u002F01.dpp-stack-for-agents.md","The Web-based DPP doesn't need new infrastructure",{"type":472,"value":1046,"toc":3099},[1047,1052,1055,1058,1065,1072,1078,1082,1088,1091,1094,1097,1103,1106,1109,1256,1259,1262,1266,1269,1288,1296,1299,1312,1318,1321,1348,1355,1511,1518,1524,1534,1539,1542,1548,1562,1582,1593,1596,1602,1606,1617,1632,1635,1841,1848,1851,1860,1866,1870,1880,1883,1888,1903,2213,2224,2227,2230,2236,2240,2251,2254,2259,2262,2504,2511,2514,2521,2524,2527,2531,2537,2576,2579,2582,2594,2598,2601,2607,2614,2620,2647,2650,2701,2708,2711,2714,2718,2726,2760,2763,2819,2837,2841,2850,2853,2975,2981,2984,2990,2994,2997,3000,3003,3006,3009,3050,3060,3063,3065,3070,3079,3090,3095],[1048,1049,1051],"h1",{"id":1050},"the-web-based-dpp-doesnt-need-new-infrastructure-three-gs1-standards-already-cover-the-agent-facing-layer","The Web-based DPP doesn't need new infrastructure — three GS1 standards already cover the agent-facing layer",[475,1053,1054],{},"Walk into any DPP discussion in 2026 and you'll hear the same anxieties: regulatory deadlines, fragmented data, will-AI-eat-this. The conversations swirl around platforms, blockchains, walled gardens, \"trust frameworks\" — as if we were starting from zero.",[475,1056,1057],{},"We're not.",[475,1059,1060,1061,1064],{},"CEN\u002FCENELEC JTC 24 has ratified the ",[807,1062,1063],{},"EN 18221 ff."," series for the Digital Product Passport. Eight standards covering identifiers, carriers, exchange protocols, persistence, APIs and interoperability. They are not aspirations. They are formal European norms, voted through, and ready to implement.",[475,1066,1067,1068,1071],{},"Three of them, in particular, form the stack that makes DPPs actually work for the customers who matter most: ",[807,1069,1070],{},"machines",".",[475,1073,1074,1075,1071],{},"This article unpacks all three, and spends real time on the one piece of the stack that most platform pitches treat as an afterthought but is actually the load-bearing wall: ",[807,1076,1077],{},"GS1 Digital Link",[488,1079,1081],{"id":1080},"why-machines-are-now-the-customer","Why machines are now the customer",[475,1083,1084],{},[540,1085],{"alt":1086,"src":1087},"Friendly robot agent waving hello","\u002Fimg\u002Fblog\u002F28598875_solid.webp",[475,1089,1090],{},"At GS1 Exchange in Cologne I made a claim that surprised a few people in the room (which has actually been obvious to me for more than a decade): the most important consumer of Digital Product Passport data won't be a human on a smartphone. It will be a machine, an agent.",[475,1092,1093],{},"By \"agent\" I mean the AI shopping assistants major retailers are quietly piloting. The agentic-commerce systems Salesforce, McKinsey and Deloitte have all published research on. The autonomous purchasing agents that look at a textile, a battery, a packaged food — and have to decide, in one shot, whether to buy it, route it, recall it, or trust it.",[475,1095,1096],{},"These agents do not read marketing copy. Show them this:",[1098,1099,1100],"blockquote",{},[475,1101,1102],{},"\"A wardrobe essential, reimagined. Crafted from NarraNatureTex™, our signature heritage fibre for a soft, lived-in hand-feel…\"",[475,1104,1105],{},"…and ask \"what is the material?\" An LLM will guess. A purchasing agent that guesses costs money.",[475,1107,1108],{},"Show them this:",[1110,1111,1114],"pre",{"className":1112,"code":1113,"language":59,"meta":1001,"style":1001},"language-json shiki shiki-themes material-theme-lighter github-light github-dark monokai","\"gs1:textileMaterialDescription\": {\n  \"en\": \"Cotton\",\n  \"de\": \"Baumwolle\",\n  \"fr\": \"Coton\",\n  \"es\": \"Algodón\",\n  \"nl\": \"Katoen\"\n}\n",[1115,1116,1117,1140,1167,1188,1209,1230,1250],"code",{"__ignoreMap":1001},[1118,1119,1122,1126,1130,1132,1136],"span",{"class":1120,"line":1121},"line",1,[1118,1123,1125],{"class":1124},"siCPE","\"",[1118,1127,1129],{"class":1128},"sLACW","gs1:textileMaterialDescription",[1118,1131,1125],{"class":1124},[1118,1133,1135],{"class":1134},"ss--_",": ",[1118,1137,1139],{"class":1138},"swvn1","{\n",[1118,1141,1142,1146,1149,1151,1154,1158,1162,1164],{"class":1120,"line":1002},[1118,1143,1145],{"class":1144},"saDeg","  \"",[1118,1147,1033],{"class":1148},"sEff5",[1118,1150,1125],{"class":1144},[1118,1152,1153],{"class":1138},":",[1118,1155,1157],{"class":1156},"sh1VR"," \"",[1118,1159,1161],{"class":1160},"sINAO","Cotton",[1118,1163,1125],{"class":1156},[1118,1165,1166],{"class":1138},",\n",[1118,1168,1170,1172,1175,1177,1179,1181,1184,1186],{"class":1120,"line":1169},3,[1118,1171,1145],{"class":1144},[1118,1173,1174],{"class":1148},"de",[1118,1176,1125],{"class":1144},[1118,1178,1153],{"class":1138},[1118,1180,1157],{"class":1156},[1118,1182,1183],{"class":1160},"Baumwolle",[1118,1185,1125],{"class":1156},[1118,1187,1166],{"class":1138},[1118,1189,1191,1193,1196,1198,1200,1202,1205,1207],{"class":1120,"line":1190},4,[1118,1192,1145],{"class":1144},[1118,1194,1195],{"class":1148},"fr",[1118,1197,1125],{"class":1144},[1118,1199,1153],{"class":1138},[1118,1201,1157],{"class":1156},[1118,1203,1204],{"class":1160},"Coton",[1118,1206,1125],{"class":1156},[1118,1208,1166],{"class":1138},[1118,1210,1212,1214,1217,1219,1221,1223,1226,1228],{"class":1120,"line":1211},5,[1118,1213,1145],{"class":1144},[1118,1215,1216],{"class":1148},"es",[1118,1218,1125],{"class":1144},[1118,1220,1153],{"class":1138},[1118,1222,1157],{"class":1156},[1118,1224,1225],{"class":1160},"Algodón",[1118,1227,1125],{"class":1156},[1118,1229,1166],{"class":1138},[1118,1231,1233,1235,1238,1240,1242,1244,1247],{"class":1120,"line":1232},6,[1118,1234,1145],{"class":1144},[1118,1236,1237],{"class":1148},"nl",[1118,1239,1125],{"class":1144},[1118,1241,1153],{"class":1138},[1118,1243,1157],{"class":1156},[1118,1245,1246],{"class":1160},"Katoen",[1118,1248,1249],{"class":1156},"\"\n",[1118,1251,1253],{"class":1120,"line":1252},7,[1118,1254,1255],{"class":1138},"}\n",[475,1257,1258],{},"…and the answer is unambiguous, multilingual, type-safe, queryable. The agent doesn't guess. It knows.",[475,1260,1261],{},"That's not a UX detail. It's the difference between data an agent can act on and data it has to guess at — and it scales from one product to a billion, in the same shape.",[488,1263,1265],{"id":1264},"the-breakthrough-youve-already-been-using-gs1-digital-link","The breakthrough you've already been using: GS1 Digital Link",[475,1267,1268],{},"Before we get to the three standards, we have to talk about the URL syntax that makes the rest of the stack possible.",[475,1270,1271,1272,1275,1276,1279,1280,1283,1284,1287],{},"For thirty-plus years GS1 identifiers lived inside barcodes and EDI messages. The ",[1115,1273,1274],{},"(01)"," GTIN, the ",[1115,1277,1278],{},"(21)"," serial, the ",[1115,1281,1282],{},"(10)"," batch, the ",[1115,1285,1286],{},"(17)"," expiry — Application Identifiers, all parsable, all unambiguous, all alien to the web. To put them on the web you needed an EPC URN:",[1110,1289,1294],{"className":1290,"code":1292,"language":1293},[1291],"language-text","urn:epc:id:sgtin:4068977.934335.19odefMoeoIbBwfuFZa5\n","text",[1115,1295,1292],{"__ignoreMap":1001},[475,1297,1298],{},"Technically correct. Practically opaque. Not dereferenceable. Not crawlable. Not a URL.",[475,1300,1301,1307,1308,1311],{},[496,1302,1305],{"href":1303,"rel":1304},"https:\u002F\u002Fref.gs1.org\u002Fstandards\u002Fdigital-link\u002F",[500],[807,1306,1077],{}," does something almost embarrassingly obvious in retrospect: it expresses the same identifier as a ",[478,1309,1310],{},"real"," URL.",[1110,1313,1316],{"className":1314,"code":1315,"language":1293},[1291],"https:\u002F\u002Fid.example.com\u002F01\u002F04068977934335\u002F21\u002F19odefMoeoIbBwfuFZa5\n",[1115,1317,1315],{"__ignoreMap":1001},[475,1319,1320],{},"Read it once and the structure tells you everything:",[811,1322,1323,1329,1339],{},[814,1324,1325,1328],{},[1115,1326,1327],{},"https:\u002F\u002Fid.example.com"," — a host, resolvable by every browser, every cURL, every fetch in every language since 1995",[814,1330,1331,1334,1335,1338],{},[1115,1332,1333],{},"\u002F01\u002F04068977934335"," — Application Identifier ",[1115,1336,1337],{},"01"," is GTIN; the value follows",[814,1340,1341,1334,1344,1347],{},[1115,1342,1343],{},"\u002F21\u002F19odefMoeoIbBwfuFZa5",[1115,1345,1346],{},"21"," is the serial",[475,1349,1350,1351,1354],{},"That's it. ",[807,1352,1353],{},"Path segments alternate AI and value."," Any GS1 identifier — and there are dozens — slots into the same shape:",[1356,1357,1358,1374],"table",{},[1359,1360,1361],"thead",{},[1362,1363,1364,1368,1371],"tr",{},[1365,1366,1367],"th",{},"Identifier",[1365,1369,1370],{},"Application Identifier",[1365,1372,1373],{},"Digital Link path",[1375,1376,1377,1391,1406,1421,1436,1451,1466,1481,1496],"tbody",{},[1362,1378,1379,1383,1387],{},[1380,1381,1382],"td",{},"GTIN (trade item)",[1380,1384,1385],{},[1115,1386,1274],{},[1380,1388,1389],{},[1115,1390,1333],{},[1362,1392,1393,1396,1401],{},[1380,1394,1395],{},"GTIN + serial (SGTIN)",[1380,1397,1398],{},[1115,1399,1400],{},"(01)(21)",[1380,1402,1403],{},[1115,1404,1405],{},"\u002F01\u002F04068977934335\u002F21\u002FSN-001",[1362,1407,1408,1411,1416],{},[1380,1409,1410],{},"GTIN + batch",[1380,1412,1413],{},[1115,1414,1415],{},"(01)(10)",[1380,1417,1418],{},[1115,1419,1420],{},"\u002F01\u002F04068977934335\u002F10\u002FLOT-A42",[1362,1422,1423,1426,1431],{},[1380,1424,1425],{},"SSCC (logistic unit)",[1380,1427,1428],{},[1115,1429,1430],{},"(00)",[1380,1432,1433],{},[1115,1434,1435],{},"\u002F00\u002F304068977000000017",[1362,1437,1438,1441,1446],{},[1380,1439,1440],{},"GLN (location)",[1380,1442,1443],{},[1115,1444,1445],{},"(414)",[1380,1447,1448],{},[1115,1449,1450],{},"\u002F414\u002F4068977000000",[1362,1452,1453,1456,1461],{},[1380,1454,1455],{},"GLN + extension",[1380,1457,1458],{},[1115,1459,1460],{},"(414)(254)",[1380,1462,1463],{},[1115,1464,1465],{},"\u002F414\u002F4068977000000\u002F254\u002Fdock-7",[1362,1467,1468,1471,1476],{},[1380,1469,1470],{},"GRAI (returnable asset)",[1380,1472,1473],{},[1115,1474,1475],{},"(8003)",[1380,1477,1478],{},[1115,1479,1480],{},"\u002F8003\u002F04068977000000A42",[1362,1482,1483,1486,1491],{},[1380,1484,1485],{},"GIAI (individual asset)",[1380,1487,1488],{},[1115,1489,1490],{},"(8004)",[1380,1492,1493],{},[1115,1494,1495],{},"\u002F8004\u002F4068977-FORK-17",[1362,1497,1498,1501,1506],{},[1380,1499,1500],{},"GDTI (document)",[1380,1502,1503],{},[1115,1504,1505],{},"(253)",[1380,1507,1508],{},[1115,1509,1510],{},"\u002F253\u002F4068977000000DOC42",[475,1512,1513,1514,1517],{},"Non-ID key qualifiers — expiry, weight, best-before, country of origin — sit in the ",[807,1515,1516],{},"query string",", where qualifiers belong on the web:",[1110,1519,1522],{"className":1520,"code":1521,"language":1293},[1291],"https:\u002F\u002Fid.example.com\u002F01\u002F04068977934335\u002F21\u002FSN-001?17=261231&3103=001750\n",[1115,1523,1521],{"__ignoreMap":1001},[475,1525,1526,1529,1530,1533],{},[1115,1527,1528],{},"(17)=261231"," is \"expires 2026-12-31\", ",[1115,1531,1532],{},"(3103)=001750"," is \"1.750 kg\". Same Application Identifiers as the barcode. Same values. Just expressed in the syntax the web already speaks.",[1535,1536,1538],"h3",{"id":1537},"why-this-matters-more-than-it-looks","Why this matters more than it looks",[475,1540,1541],{},"Three things fall out of this design that no proprietary URL shortener can replicate:",[475,1543,1544,1547],{},[807,1545,1546],{},"1. Bidirectional mapping is mechanical."," A Digital Link URL maps to an EPC URN and back without semantic loss. The two are isomorphic — same identifier, two encodings, both standardised. Legacy EPCIS systems speak URN; web-native systems speak Digital Link; the bridge is a regex, not a vendor.",[475,1549,1550,1557,1558,1561],{},[807,1551,1552,1553,1556],{},"2. The same string is the QR target ",[478,1554,1555],{},"and"," the API endpoint."," A camera reads the QR, the browser opens the URL, the agent does an HTTP GET on the URL — and it's all the same string. No \"look up the GTIN, then look up where its data lives, then…\". The identifier ",[478,1559,1560],{},"is"," the locator.",[475,1563,1564,1567,1568,1571,1572,1571,1575,1571,1578,1581],{},[807,1565,1566],{},"3. Every HTTP tool ever written works on it."," ",[1115,1569,1570],{},"curl",", ",[1115,1573,1574],{},"wget",[1115,1576,1577],{},"fetch()",[1115,1579,1580],{},"requests.get()",", an Apache log line, a CDN cache key, an OpenAPI path, a load balancer rule. None of them needed a single line of GS1-aware code to handle a Digital Link URL. That is not a small thing — it is the entire reason the standard scales.",[475,1583,1584,1585,1588,1589,1592],{},"It is, in the original sense of the word, ",[807,1586,1587],{},"genius and obvious",": take an identifier scheme that already used hierarchical, prefix-stable, AI-tagged segments, and notice that this is ",[478,1590,1591],{},"exactly"," what URL paths are for. The barcode had been a URL all along. GS1 Digital Link just admits it.",[475,1594,1595],{},"This single design choice is what makes the next three standards work as a stack instead of as three disconnected specs.",[475,1597,1598],{},[540,1599],{"alt":1600,"src":1601},"Robot holding a knowledge graph — the ontology in one picture","\u002Fimg\u002Fblog\u002F1253774953.webp",[488,1603,1605],{"id":1604},"standard-1-gs1-web-vocabulary-the-language-agents-can-actually-read","Standard 1 — GS1 Web Vocabulary: the language agents can actually read",[475,1607,1608,1609,1616],{},"EN 18223 covers system interoperability, and at its heart sits the ",[807,1610,1611],{},[496,1612,1615],{"href":1613,"rel":1614},"https:\u002F\u002Fref.gs1.org\u002Fvoc\u002F",[500],"GS1 Web Vocabulary",": an ontology of GS1 concepts published as JSON-LD, aligned with schema.org, validatable with SHACL, queryable with SPARQL.",[475,1618,1619,1620,1571,1623,1571,1625,1571,1628,1631],{},"This is the part most platform pitches gloss over. Vocabulary isn't just labels — it's a knowledge graph. ",[1115,1621,1622],{},"gs1:Clothing",[1115,1624,1129],{},[1115,1626,1627],{},"gs1:countryOfOrigin",[1115,1629,1630],{},"gs1:sizeCodes"," — every one is a node with defined semantics, regulatory anchoring, and a clear path to Linked Data.",[475,1633,1634],{},"A short example of what an agent actually receives:",[1110,1636,1638],{"className":1112,"code":1637,"language":59,"meta":1001,"style":1001},"{\n  \"@context\": \"https:\u002F\u002Fref.openepcis.io\u002Fextensions\u002Feu\u002Ftextile\u002Fcontext.jsonld\",\n  \"id\": \"https:\u002F\u002Fid.example.com\u002F01\u002F04068977934335\",\n  \"type\": \"gs1:Clothing\",\n  \"gs1:textileMaterialDescription\": {\n    \"en\": \"Cotton\",\n    \"de\": \"Baumwolle\"\n  },\n  \"gs1:countryOfOrigin\": \"PT\",\n  \"eudr:dueDiligenceStatement\": {\n    \"id\": \"https:\u002F\u002Feudr.example.com\u002Fdds\u002FREF-2026-00042\",\n    \"type\": \"eudr:DueDiligenceStatement\"\n  }\n}\n",[1115,1639,1640,1644,1664,1684,1703,1716,1736,1752,1758,1778,1792,1812,1830,1836],{"__ignoreMap":1001},[1118,1641,1642],{"class":1120,"line":1121},[1118,1643,1139],{"class":1138},[1118,1645,1646,1648,1651,1653,1655,1657,1660,1662],{"class":1120,"line":1002},[1118,1647,1145],{"class":1144},[1118,1649,1650],{"class":1148},"@context",[1118,1652,1125],{"class":1144},[1118,1654,1153],{"class":1138},[1118,1656,1157],{"class":1156},[1118,1658,1659],{"class":1160},"https:\u002F\u002Fref.openepcis.io\u002Fextensions\u002Feu\u002Ftextile\u002Fcontext.jsonld",[1118,1661,1125],{"class":1156},[1118,1663,1166],{"class":1138},[1118,1665,1666,1668,1671,1673,1675,1677,1680,1682],{"class":1120,"line":1169},[1118,1667,1145],{"class":1144},[1118,1669,1670],{"class":1148},"id",[1118,1672,1125],{"class":1144},[1118,1674,1153],{"class":1138},[1118,1676,1157],{"class":1156},[1118,1678,1679],{"class":1160},"https:\u002F\u002Fid.example.com\u002F01\u002F04068977934335",[1118,1681,1125],{"class":1156},[1118,1683,1166],{"class":1138},[1118,1685,1686,1688,1691,1693,1695,1697,1699,1701],{"class":1120,"line":1190},[1118,1687,1145],{"class":1144},[1118,1689,1690],{"class":1148},"type",[1118,1692,1125],{"class":1144},[1118,1694,1153],{"class":1138},[1118,1696,1157],{"class":1156},[1118,1698,1622],{"class":1160},[1118,1700,1125],{"class":1156},[1118,1702,1166],{"class":1138},[1118,1704,1705,1707,1709,1711,1713],{"class":1120,"line":1211},[1118,1706,1145],{"class":1144},[1118,1708,1129],{"class":1148},[1118,1710,1125],{"class":1144},[1118,1712,1153],{"class":1138},[1118,1714,1715],{"class":1138}," {\n",[1118,1717,1718,1721,1724,1726,1728,1730,1732,1734],{"class":1120,"line":1232},[1118,1719,1720],{"class":1144},"    \"",[1118,1722,1033],{"class":1723},"s_MOj",[1118,1725,1125],{"class":1144},[1118,1727,1153],{"class":1138},[1118,1729,1157],{"class":1156},[1118,1731,1161],{"class":1160},[1118,1733,1125],{"class":1156},[1118,1735,1166],{"class":1138},[1118,1737,1738,1740,1742,1744,1746,1748,1750],{"class":1120,"line":1252},[1118,1739,1720],{"class":1144},[1118,1741,1174],{"class":1723},[1118,1743,1125],{"class":1144},[1118,1745,1153],{"class":1138},[1118,1747,1157],{"class":1156},[1118,1749,1183],{"class":1160},[1118,1751,1249],{"class":1156},[1118,1753,1755],{"class":1120,"line":1754},8,[1118,1756,1757],{"class":1138},"  },\n",[1118,1759,1761,1763,1765,1767,1769,1771,1774,1776],{"class":1120,"line":1760},9,[1118,1762,1145],{"class":1144},[1118,1764,1627],{"class":1148},[1118,1766,1125],{"class":1144},[1118,1768,1153],{"class":1138},[1118,1770,1157],{"class":1156},[1118,1772,1773],{"class":1160},"PT",[1118,1775,1125],{"class":1156},[1118,1777,1166],{"class":1138},[1118,1779,1781,1783,1786,1788,1790],{"class":1120,"line":1780},10,[1118,1782,1145],{"class":1144},[1118,1784,1785],{"class":1148},"eudr:dueDiligenceStatement",[1118,1787,1125],{"class":1144},[1118,1789,1153],{"class":1138},[1118,1791,1715],{"class":1138},[1118,1793,1795,1797,1799,1801,1803,1805,1808,1810],{"class":1120,"line":1794},11,[1118,1796,1720],{"class":1144},[1118,1798,1670],{"class":1723},[1118,1800,1125],{"class":1144},[1118,1802,1153],{"class":1138},[1118,1804,1157],{"class":1156},[1118,1806,1807],{"class":1160},"https:\u002F\u002Feudr.example.com\u002Fdds\u002FREF-2026-00042",[1118,1809,1125],{"class":1156},[1118,1811,1166],{"class":1138},[1118,1813,1815,1817,1819,1821,1823,1825,1828],{"class":1120,"line":1814},12,[1118,1816,1720],{"class":1144},[1118,1818,1690],{"class":1723},[1118,1820,1125],{"class":1144},[1118,1822,1153],{"class":1138},[1118,1824,1157],{"class":1156},[1118,1826,1827],{"class":1160},"eudr:DueDiligenceStatement",[1118,1829,1249],{"class":1156},[1118,1831,1833],{"class":1120,"line":1832},13,[1118,1834,1835],{"class":1138},"  }\n",[1118,1837,1839],{"class":1120,"line":1838},14,[1118,1840,1255],{"class":1138},[475,1842,1843,1844,1847],{},"When an AI agent sees this, it doesn't have to translate marketing prose into intent. The semantics ",[478,1845,1846],{},"are"," the intent — which unlocks the downstream behaviour everyone wants from a DPP: authenticity checks, recall handling, sustainability scoring, customs decisions, automated buying.",[475,1849,1850],{},"Without an ontology, every brand reinvents its own data model and every agent has to relearn. With GS1 Web Vocabulary, the agent learns the language once — and reads every brand on the planet that conforms.",[475,1852,1853,1854,1859],{},"We've been building on top of it at OpenEPCIS, and you can browse the result live at ",[496,1855,1858],{"href":1856,"rel":1857},"https:\u002F\u002Fref.openepcis.io",[500],"ref.openepcis.io",". More on that below.",[475,1861,1862],{},[540,1863],{"alt":1864,"src":1865},"Line-art robot mascot holding a barcode card connected by dotted spokes to a central hub","\u002Fimg\u002Fblog\u002F2080698950.webp",[488,1867,1869],{"id":1868},"standard-2-gs1-conformant-resolver-identity-that-resolves-to-endpoints","Standard 2 — GS1 Conformant Resolver: identity that resolves to endpoints",[475,1871,1872,1873,1879],{},"EN 18216 covers data exchange, and the canonical answer is the ",[807,1874,1875],{},[496,1876,409],{"href":1877,"rel":1878},"https:\u002F\u002Fref.gs1.org\u002Fstandards\u002Fresolver\u002F",[500]," paired with GS1 Digital Link.",[475,1881,1882],{},"Take the Digital Link URL from earlier:",[1110,1884,1886],{"className":1885,"code":1315,"language":1293},[1291],[1115,1887,1315],{"__ignoreMap":1001},[475,1889,1890,1891,1894,1895,1898,1899,1902],{},"That URL is more than a QR target. It is a ",[807,1892,1893],{},"federated discovery mechanism",". Hit it with an ",[1115,1896,1897],{},"Accept: application\u002Flinkset+json"," header and you get back a structured ",[807,1900,1901],{},"link set"," — a list of typed endpoints the agent can interpret without any prior agreement with the brand:",[1110,1904,1906],{"className":1112,"code":1905,"language":59,"meta":1001,"style":1001},"{\n  \"linkset\": [{\n    \"anchor\": \"https:\u002F\u002Fid.example.com\u002F01\u002F04068977934335\u002F21\u002F19odefMoeoIbBwfuFZa5\",\n    \"https:\u002F\u002Fgs1.org\u002Fvoc\u002Fpip\": [\n      { \"href\": \"https:\u002F\u002Fexample.com\u002Fproducts\u002Fsweater-001\", \"type\": \"text\u002Fhtml\", \"hreflang\": [\"en\",\"de\"] }\n    ],\n    \"https:\u002F\u002Fgs1.org\u002Fvoc\u002FrecyclingInfo\": [\n      { \"href\": \"https:\u002F\u002Fexample.com\u002Frecycle\u002Ftextile\u002Fcotton\", \"type\": \"text\u002Fhtml\" }\n    ],\n    \"https:\u002F\u002Fgs1.org\u002Fvoc\u002Fepcis\": [\n      { \"href\": \"https:\u002F\u002Fepcis.example.com\u002Fevents?eq.epc=...\", \"type\": \"application\u002Fld+json\" }\n    ],\n    \"https:\u002F\u002Feudr.example.com\u002Fvoc\u002FdueDiligence\": [\n      { \"href\": \"https:\u002F\u002Feudr.example.com\u002Fdds\u002FREF-2026-00042\", \"type\": \"application\u002Fld+json\" }\n    ]\n  }]\n}\n",[1115,1907,1908,1912,1925,1945,1959,2033,2038,2051,2088,2092,2105,2143,2147,2160,2196,2202,2208],{"__ignoreMap":1001},[1118,1909,1910],{"class":1120,"line":1121},[1118,1911,1139],{"class":1138},[1118,1913,1914,1916,1918,1920,1922],{"class":1120,"line":1002},[1118,1915,1145],{"class":1144},[1118,1917,328],{"class":1148},[1118,1919,1125],{"class":1144},[1118,1921,1153],{"class":1138},[1118,1923,1924],{"class":1138}," [{\n",[1118,1926,1927,1929,1932,1934,1936,1938,1941,1943],{"class":1120,"line":1169},[1118,1928,1720],{"class":1144},[1118,1930,1931],{"class":1723},"anchor",[1118,1933,1125],{"class":1144},[1118,1935,1153],{"class":1138},[1118,1937,1157],{"class":1156},[1118,1939,1940],{"class":1160},"https:\u002F\u002Fid.example.com\u002F01\u002F04068977934335\u002F21\u002F19odefMoeoIbBwfuFZa5",[1118,1942,1125],{"class":1156},[1118,1944,1166],{"class":1138},[1118,1946,1947,1949,1952,1954,1956],{"class":1120,"line":1190},[1118,1948,1720],{"class":1144},[1118,1950,1951],{"class":1723},"https:\u002F\u002Fgs1.org\u002Fvoc\u002Fpip",[1118,1953,1125],{"class":1144},[1118,1955,1153],{"class":1138},[1118,1957,1958],{"class":1138}," [\n",[1118,1960,1961,1964,1966,1970,1972,1974,1976,1979,1981,1984,1986,1988,1990,1992,1994,1997,1999,2001,2003,2006,2008,2010,2013,2015,2017,2019,2021,2023,2025,2027,2030],{"class":1120,"line":1211},[1118,1962,1963],{"class":1138},"      {",[1118,1965,1157],{"class":1144},[1118,1967,1969],{"class":1968},"sTC9v","href",[1118,1971,1125],{"class":1144},[1118,1973,1153],{"class":1138},[1118,1975,1157],{"class":1156},[1118,1977,1978],{"class":1160},"https:\u002F\u002Fexample.com\u002Fproducts\u002Fsweater-001",[1118,1980,1125],{"class":1156},[1118,1982,1983],{"class":1138},",",[1118,1985,1157],{"class":1144},[1118,1987,1690],{"class":1968},[1118,1989,1125],{"class":1144},[1118,1991,1153],{"class":1138},[1118,1993,1157],{"class":1156},[1118,1995,1996],{"class":1160},"text\u002Fhtml",[1118,1998,1125],{"class":1156},[1118,2000,1983],{"class":1138},[1118,2002,1157],{"class":1144},[1118,2004,2005],{"class":1968},"hreflang",[1118,2007,1125],{"class":1144},[1118,2009,1153],{"class":1138},[1118,2011,2012],{"class":1138}," [",[1118,2014,1125],{"class":1156},[1118,2016,1033],{"class":1160},[1118,2018,1125],{"class":1156},[1118,2020,1983],{"class":1138},[1118,2022,1125],{"class":1156},[1118,2024,1174],{"class":1160},[1118,2026,1125],{"class":1156},[1118,2028,2029],{"class":1138},"]",[1118,2031,2032],{"class":1138}," }\n",[1118,2034,2035],{"class":1120,"line":1232},[1118,2036,2037],{"class":1138},"    ],\n",[1118,2039,2040,2042,2045,2047,2049],{"class":1120,"line":1252},[1118,2041,1720],{"class":1144},[1118,2043,2044],{"class":1723},"https:\u002F\u002Fgs1.org\u002Fvoc\u002FrecyclingInfo",[1118,2046,1125],{"class":1144},[1118,2048,1153],{"class":1138},[1118,2050,1958],{"class":1138},[1118,2052,2053,2055,2057,2059,2061,2063,2065,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086],{"class":1120,"line":1754},[1118,2054,1963],{"class":1138},[1118,2056,1157],{"class":1144},[1118,2058,1969],{"class":1968},[1118,2060,1125],{"class":1144},[1118,2062,1153],{"class":1138},[1118,2064,1157],{"class":1156},[1118,2066,2067],{"class":1160},"https:\u002F\u002Fexample.com\u002Frecycle\u002Ftextile\u002Fcotton",[1118,2069,1125],{"class":1156},[1118,2071,1983],{"class":1138},[1118,2073,1157],{"class":1144},[1118,2075,1690],{"class":1968},[1118,2077,1125],{"class":1144},[1118,2079,1153],{"class":1138},[1118,2081,1157],{"class":1156},[1118,2083,1996],{"class":1160},[1118,2085,1125],{"class":1156},[1118,2087,2032],{"class":1138},[1118,2089,2090],{"class":1120,"line":1760},[1118,2091,2037],{"class":1138},[1118,2093,2094,2096,2099,2101,2103],{"class":1120,"line":1780},[1118,2095,1720],{"class":1144},[1118,2097,2098],{"class":1723},"https:\u002F\u002Fgs1.org\u002Fvoc\u002Fepcis",[1118,2100,1125],{"class":1144},[1118,2102,1153],{"class":1138},[1118,2104,1958],{"class":1138},[1118,2106,2107,2109,2111,2113,2115,2117,2119,2122,2124,2126,2128,2130,2132,2134,2136,2139,2141],{"class":1120,"line":1794},[1118,2108,1963],{"class":1138},[1118,2110,1157],{"class":1144},[1118,2112,1969],{"class":1968},[1118,2114,1125],{"class":1144},[1118,2116,1153],{"class":1138},[1118,2118,1157],{"class":1156},[1118,2120,2121],{"class":1160},"https:\u002F\u002Fepcis.example.com\u002Fevents?eq.epc=...",[1118,2123,1125],{"class":1156},[1118,2125,1983],{"class":1138},[1118,2127,1157],{"class":1144},[1118,2129,1690],{"class":1968},[1118,2131,1125],{"class":1144},[1118,2133,1153],{"class":1138},[1118,2135,1157],{"class":1156},[1118,2137,2138],{"class":1160},"application\u002Fld+json",[1118,2140,1125],{"class":1156},[1118,2142,2032],{"class":1138},[1118,2144,2145],{"class":1120,"line":1814},[1118,2146,2037],{"class":1138},[1118,2148,2149,2151,2154,2156,2158],{"class":1120,"line":1832},[1118,2150,1720],{"class":1144},[1118,2152,2153],{"class":1723},"https:\u002F\u002Feudr.example.com\u002Fvoc\u002FdueDiligence",[1118,2155,1125],{"class":1144},[1118,2157,1153],{"class":1138},[1118,2159,1958],{"class":1138},[1118,2161,2162,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194],{"class":1120,"line":1838},[1118,2163,1963],{"class":1138},[1118,2165,1157],{"class":1144},[1118,2167,1969],{"class":1968},[1118,2169,1125],{"class":1144},[1118,2171,1153],{"class":1138},[1118,2173,1157],{"class":1156},[1118,2175,1807],{"class":1160},[1118,2177,1125],{"class":1156},[1118,2179,1983],{"class":1138},[1118,2181,1157],{"class":1144},[1118,2183,1690],{"class":1968},[1118,2185,1125],{"class":1144},[1118,2187,1153],{"class":1138},[1118,2189,1157],{"class":1156},[1118,2191,2138],{"class":1160},[1118,2193,1125],{"class":1156},[1118,2195,2032],{"class":1138},[1118,2197,2199],{"class":1120,"line":2198},15,[1118,2200,2201],{"class":1138},"    ]\n",[1118,2203,2205],{"class":1120,"line":2204},16,[1118,2206,2207],{"class":1138},"  }]\n",[1118,2209,2211],{"class":1120,"line":2210},17,[1118,2212,1255],{"class":1138},[475,2214,2215,2216,2219,2220,2223],{},"Each link relation tells the agent ",[478,2217,2218],{},"what kind of resource"," it is pointing at. Product information page. Recycling guidance. EPCIS event history. Compliance certificate. Standardised across every brand's resolver — that's what ",[478,2221,2222],{},"conformant"," means.",[475,2225,2226],{},"This is what traditional URL shorteners and walled gardens cannot replicate. An agent that learned to talk to one resolver can talk to all of them. A barcode that talks to a resolver becomes the front door of a DPP — no app, no platform lock-in, no proprietary SDK.",[475,2228,2229],{},"And — quietly — the same URL serves humans too. A browser following it without the JSON Accept header gets redirected to the right localised product page. One identifier. One URL. Two audiences. Same standard.",[475,2231,2232],{},[540,2233],{"alt":2234,"src":2235},"Robot scanning a barcoded parcel — What, When, Where, Why, How","\u002Fimg\u002Fblog\u002F522668867.webp",[488,2237,2239],{"id":2238},"standard-3-epcis-20-the-verified-history","Standard 3 — EPCIS 2.0: the verified history",[475,2241,2242,2243,2250],{},"EN 18221 and EN 18222 cover storage, persistence and APIs, and ",[807,2244,2245],{},[496,2246,2249],{"href":2247,"rel":2248},"https:\u002F\u002Fref.gs1.org\u002Fstandards\u002Fepcis\u002F",[500],"EPCIS 2.0"," is the implementation that makes them concrete.",[475,2252,2253],{},"EPCIS answers the five questions every supply-chain participant — and every AI agent — has to answer when they hand something on:",[475,2255,2256],{},[807,2257,2258],{},"What. When. Where. Why. How.",[475,2260,2261],{},"A simplified event:",[1110,2263,2265],{"className":1112,"code":2264,"language":59,"meta":1001,"style":1001},"{\n  \"@context\": [\"https:\u002F\u002Fref.gs1.org\u002Fstandards\u002Fepcis\u002Fepcis-context.jsonld\"],\n  \"type\": \"ObjectEvent\",\n  \"eventTime\": \"2026-04-29T08:14:00Z\",\n  \"eventTimeZoneOffset\": \"+02:00\",\n  \"epcList\": [\n    \"https:\u002F\u002Fid.example.com\u002F01\u002F04068977934335\u002F21\u002F19odefMoeoIbBwfuFZa5\"\n  ],\n  \"action\": \"OBSERVE\",\n  \"bizStep\": \"shipping\",\n  \"disposition\": \"in_transit\",\n  \"readPoint\":   { \"id\": \"https:\u002F\u002Fid.example.com\u002F414\u002F4068977000000\" },\n  \"bizLocation\": { \"id\": \"https:\u002F\u002Fid.example.com\u002F414\u002F4068977000000\" }\n}\n",[1115,2266,2267,2271,2293,2312,2332,2352,2365,2373,2378,2398,2418,2438,2470,2500],{"__ignoreMap":1001},[1118,2268,2269],{"class":1120,"line":1121},[1118,2270,1139],{"class":1138},[1118,2272,2273,2275,2277,2279,2281,2283,2285,2288,2290],{"class":1120,"line":1002},[1118,2274,1145],{"class":1144},[1118,2276,1650],{"class":1148},[1118,2278,1125],{"class":1144},[1118,2280,1153],{"class":1138},[1118,2282,2012],{"class":1138},[1118,2284,1125],{"class":1156},[1118,2286,2287],{"class":1160},"https:\u002F\u002Fref.gs1.org\u002Fstandards\u002Fepcis\u002Fepcis-context.jsonld",[1118,2289,1125],{"class":1156},[1118,2291,2292],{"class":1138},"],\n",[1118,2294,2295,2297,2299,2301,2303,2305,2308,2310],{"class":1120,"line":1169},[1118,2296,1145],{"class":1144},[1118,2298,1690],{"class":1148},[1118,2300,1125],{"class":1144},[1118,2302,1153],{"class":1138},[1118,2304,1157],{"class":1156},[1118,2306,2307],{"class":1160},"ObjectEvent",[1118,2309,1125],{"class":1156},[1118,2311,1166],{"class":1138},[1118,2313,2314,2316,2319,2321,2323,2325,2328,2330],{"class":1120,"line":1190},[1118,2315,1145],{"class":1144},[1118,2317,2318],{"class":1148},"eventTime",[1118,2320,1125],{"class":1144},[1118,2322,1153],{"class":1138},[1118,2324,1157],{"class":1156},[1118,2326,2327],{"class":1160},"2026-04-29T08:14:00Z",[1118,2329,1125],{"class":1156},[1118,2331,1166],{"class":1138},[1118,2333,2334,2336,2339,2341,2343,2345,2348,2350],{"class":1120,"line":1211},[1118,2335,1145],{"class":1144},[1118,2337,2338],{"class":1148},"eventTimeZoneOffset",[1118,2340,1125],{"class":1144},[1118,2342,1153],{"class":1138},[1118,2344,1157],{"class":1156},[1118,2346,2347],{"class":1160},"+02:00",[1118,2349,1125],{"class":1156},[1118,2351,1166],{"class":1138},[1118,2353,2354,2356,2359,2361,2363],{"class":1120,"line":1232},[1118,2355,1145],{"class":1144},[1118,2357,2358],{"class":1148},"epcList",[1118,2360,1125],{"class":1144},[1118,2362,1153],{"class":1138},[1118,2364,1958],{"class":1138},[1118,2366,2367,2369,2371],{"class":1120,"line":1252},[1118,2368,1720],{"class":1156},[1118,2370,1940],{"class":1160},[1118,2372,1249],{"class":1156},[1118,2374,2375],{"class":1120,"line":1754},[1118,2376,2377],{"class":1138},"  ],\n",[1118,2379,2380,2382,2385,2387,2389,2391,2394,2396],{"class":1120,"line":1760},[1118,2381,1145],{"class":1144},[1118,2383,2384],{"class":1148},"action",[1118,2386,1125],{"class":1144},[1118,2388,1153],{"class":1138},[1118,2390,1157],{"class":1156},[1118,2392,2393],{"class":1160},"OBSERVE",[1118,2395,1125],{"class":1156},[1118,2397,1166],{"class":1138},[1118,2399,2400,2402,2405,2407,2409,2411,2414,2416],{"class":1120,"line":1780},[1118,2401,1145],{"class":1144},[1118,2403,2404],{"class":1148},"bizStep",[1118,2406,1125],{"class":1144},[1118,2408,1153],{"class":1138},[1118,2410,1157],{"class":1156},[1118,2412,2413],{"class":1160},"shipping",[1118,2415,1125],{"class":1156},[1118,2417,1166],{"class":1138},[1118,2419,2420,2422,2425,2427,2429,2431,2434,2436],{"class":1120,"line":1794},[1118,2421,1145],{"class":1144},[1118,2423,2424],{"class":1148},"disposition",[1118,2426,1125],{"class":1144},[1118,2428,1153],{"class":1138},[1118,2430,1157],{"class":1156},[1118,2432,2433],{"class":1160},"in_transit",[1118,2435,1125],{"class":1156},[1118,2437,1166],{"class":1138},[1118,2439,2440,2442,2445,2447,2449,2452,2454,2456,2458,2460,2462,2465,2467],{"class":1120,"line":1814},[1118,2441,1145],{"class":1144},[1118,2443,2444],{"class":1148},"readPoint",[1118,2446,1125],{"class":1144},[1118,2448,1153],{"class":1138},[1118,2450,2451],{"class":1138},"   {",[1118,2453,1157],{"class":1144},[1118,2455,1670],{"class":1723},[1118,2457,1125],{"class":1144},[1118,2459,1153],{"class":1138},[1118,2461,1157],{"class":1156},[1118,2463,2464],{"class":1160},"https:\u002F\u002Fid.example.com\u002F414\u002F4068977000000",[1118,2466,1125],{"class":1156},[1118,2468,2469],{"class":1138}," },\n",[1118,2471,2472,2474,2477,2479,2481,2484,2486,2488,2490,2492,2494,2496,2498],{"class":1120,"line":1832},[1118,2473,1145],{"class":1144},[1118,2475,2476],{"class":1148},"bizLocation",[1118,2478,1125],{"class":1144},[1118,2480,1153],{"class":1138},[1118,2482,2483],{"class":1138}," {",[1118,2485,1157],{"class":1144},[1118,2487,1670],{"class":1723},[1118,2489,1125],{"class":1144},[1118,2491,1153],{"class":1138},[1118,2493,1157],{"class":1156},[1118,2495,2464],{"class":1160},[1118,2497,1125],{"class":1156},[1118,2499,2032],{"class":1138},[1118,2501,2502],{"class":1120,"line":1838},[1118,2503,1255],{"class":1138},[475,2505,2506,2507,2510],{},"Notice what every identifier in there has in common: they're all ",[807,2508,2509],{},"Digital Link URLs",". The same syntax that drove the barcode and the resolver now identifies the EPC, the read point, and the business location inside the event. One identifier scheme, top to bottom. Drop the EPC URL into a browser and you arrive at the same product. Drop it into the resolver and you get the link set. Drop it into EPCIS and you get the history. Same string, three different reads.",[475,2512,2513],{},"Each event is a JSON-LD document tied to a GTIN or serialised identity, time-stamped, geo-located, business-step labelled, and — as EN 18246 lands — cryptographically signed via W3C Verifiable Credentials.",[475,2515,2516,2517,2520],{},"Worth saying loudly: ",[807,2518,2519],{},"this is not a forecast."," EPCIS events have been driving supply-chain decisions for more than a decade — best-before predictions, FEFO routing, spoilage prevention, real money saved. The events are real, the repositories are real, the standard works.",[475,2522,2523],{},"What is new is the consumer of those events. Yesterday it was a temperature-monitoring service. Today it is an agentic purchasing system asking \"is this batch authentic, compliant, fresh, ethically sourced — yes or no?\"",[475,2525,2526],{},"Same events. New audience. Same answer: a verified, queryable, JSON-LD repository of what actually happened to this product.",[488,2528,2530],{"id":2529},"how-the-three-standards-lock-together","How the three standards lock together",[475,2532,2533,2534,1071],{},"Treated separately, these standards each look like a niche concern. Treated together — and bound by Digital Link — they describe a single, coherent architecture: the ",[478,2535,2536],{},"Web DPP Stack",[2538,2539,2540,2552,2560,2568],"ol",{},[814,2541,2542,2544,2545,2548,2549,2551],{},[807,2543,1077],{}," — the ",[478,2546,2547],{},"identity layer",": a web-native URL that ",[807,2550,1560],{}," the identifier",[814,2553,2554,2544,2556,2559],{},[807,2555,1615],{},[478,2557,2558],{},"semantic layer",": what the data means",[814,2561,2562,2544,2564,2567],{},[807,2563,409],{},[478,2565,2566],{},"discovery layer",": where the data lives",[814,2569,2570,2544,2572,2575],{},[807,2571,2249],{},[478,2573,2574],{},"temporal layer",": the verified history of what happened",[475,2577,2578],{},"Each layer needs the others. Without Digital Link, there is no shared addressing scheme — every layer would invent its own and the stack would be three boxes connected by glue code. Without the Vocabulary, the resolver returns opaque URLs. Without the resolver, the vocabulary has no distribution mechanism. Without EPCIS, you get static snapshots with no provenance.",[475,2580,2581],{},"Put them together and you get a Digital Product Passport machines can read, trust, and act on — at scale.",[1098,2583,2584],{},[475,2585,2586,2589,2590,2593],{},[807,2587,2588],{},"A note on EDI and GDSN."," None of this replaces what already works. EDI and GDSN do the heavy lifting between trading partners today and they are not going anywhere. But both assume bilateral onboarding and signed agreements — they were never meant to be frictionless. The standards above add ",[807,2591,2592],{},"W3C-standards-based, role-based access for public and regulatory consumers"," on top of that foundation, for the strangers who increasingly need to read your product data: agents, customs, recall systems, regulators.",[488,2595,2597],{"id":2596},"the-real-work-mapping-legacy-data-into-the-regulated-space","The real work: mapping legacy data into the regulated space",[475,2599,2600],{},"Here is the part nobody puts on a conference slide. Your product data does not currently live in a JSON-LD graph aligned to GS1 Web Vocabulary. It lives in an ERP, in a PIM, in an EDI feed, in the GDSN data pool, or in a spreadsheet a procurement team has been editing since the beginning of time — maybe even still on paper. Neither the regulator nor the agent cares about any of that; they want the answer in the language of the regulation.",[475,2602,2603],{},[540,2604],{"alt":2605,"src":2606},"Overworked robot agent struggling with papers on desk","\u002Fimg\u002Fblog\u002F1501183894.webp",[475,2608,2609,2610,2613],{},"That gap — between the legacy schema you have and the regulated, semantic, machine-readable schema you ",[478,2611,2612],{},"need"," — is the actual DPP project, and nobody who ships a product escapes it.",[475,2615,2616,2617,1071],{},"It is also where ",[807,2618,2619],{},"JSON-LD and the semantic web stack earn their keep",[475,2621,2622,2623,2626,2627,2630,2631,2634,2635,1567,2638,1567,2641,1567,2643,2646],{},"JSON-LD lets the ",[478,2624,2625],{},"same"," document carry the field your developer wrote and the meaning the regulator demands. SHACL validates it. SPARQL queries it. ",[1115,2628,2629],{},"owl:equivalentClass"," and ",[1115,2632,2633],{},"skos:exactMatch"," declare that ",[478,2636,2637],{},"your",[1115,2639,2640],{},"material_code = \"CO\"",[478,2642,1560],{},[1115,2644,2645],{},"gs1:cottonFibre",", without rewriting your source systems. The graph is the contract, not yet another bespoke integration.",[475,2648,2649],{},"Don't mistake \"no rewriting\" for \"no work\". Mapping a real product portfolio onto a regulated ontology is its own engineering programme. It involves:",[811,2651,2652,2661,2671,2677,2683,2689,2695],{},[814,2653,2654,2657,2658,2660],{},[807,2655,2656],{},"Regulatory interpretation"," — which classes and properties apply to ",[478,2659,2637],{}," product, under which directive, with which evidence requirements (textile composition declarations, battery passport carbon footprint, EUDR plot geolocation, FSMA 204 critical tracking events).",[814,2662,2663,2666,2667,2670],{},[807,2664,2665],{},"Schema reconciliation"," — your internal codes mapped against GS1 Web Vocabulary, the EU SEMIC Core Vocabularies and schema.org. Most of the work is deciding what ",[478,2668,2669],{},"isn't"," a 1:1 match and what to do about it.",[814,2672,2673,2676],{},[807,2674,2675],{},"Master-data hygiene"," — GTIN allocation policy, GLN cleanup, serialisation and batch numbering, party identifiers. The mapping is only as honest as the underlying master data.",[814,2678,2679,2682],{},[807,2680,2681],{},"Capture infrastructure"," — where do EPCIS events actually come from? ERP, MES, WMS, scanners, IoT? Every emitter is its own integration project.",[814,2684,2685,2688],{},[807,2686,2687],{},"Resolver hosting and link-set governance"," — who owns the link relations, who updates them, who's accountable when a recall URL goes stale.",[814,2690,2691,2694],{},[807,2692,2693],{},"Label, packaging and physical output"," — Digital Link URLs only matter once the QR or RFID actually carries them on the shelf.",[814,2696,2697,2700],{},[807,2698,2699],{},"Change management"," — regulations move, vocabularies evolve, your portfolio changes. The mapping is a living artefact, not a one-off.",[475,2702,2703,2704,2707],{},"Doing this ",[478,2705,2706],{},"once"," on a semantic foundation is the win — every downstream consumer (agent, customs officer, recall system, regulator) reads the same canonical truth, instead of you maintaining N bespoke integrations forever. Doing it on top of a proprietary platform locks you in, locks the regulator out, and locks the agent out too.",[475,2709,2710],{},"This is the technology choice that makes the rest of the stack possible. Without a semantic web foundation, every connector is a one-off; with it, every connector is a contribution to a shared graph.",[475,2712,2713],{},"This is the work we focus on at OpenEPCIS: building the mapping layer so a single JSON-LD document can answer the regulator, the customs system and the customer's agent without three separate integrations.",[488,2715,2717],{"id":2716},"openepcis-dpp-ready-the-mapping-layer-in-code","OpenEPCIS DPP-Ready: the mapping layer in code",[475,2719,2720,2725],{},[496,2721,2724],{"href":2722,"rel":2723},"https:\u002F\u002Fgithub.com\u002Fopenepcis\u002Fopenepcis-dpp-ready",[500],"OpenEPCIS DPP-Ready"," is our Apache-2.0 contribution to the mapping work above. Not a platform, not a product — but the result of a multi-year, full-time effort by our team to read every relevant regulation, ratified European norm and current draft, reconcile their concepts against GS1 Web Vocabulary, the EU SEMIC Core Vocabularies and schema.org, and ship the alignment as code that other organisations can pull in instead of repeating the same exercise in isolation. What you get:",[811,2727,2728,2735,2745,2752],{},[814,2729,2730,2731,2734],{},"An ",[807,2732,2733],{},"ontology library"," of currently 120+ classes and 430+ properties, published as TTL and JSON-LD",[814,2736,2737,2740,2741,2630,2743],{},[807,2738,2739],{},"Cross-vocabulary alignment"," between GS1, the EU SEMIC Core Vocabularies and schema.org, expressed in ",[1115,2742,2629],{},[1115,2744,2633],{},[814,2746,2747,2748,2751],{},"A ",[807,2749,2750],{},"validator"," covering eight regulations today: Battery, EUDR, Textile, Electronics, CPR, PPWR, Detergents and FSMA 204",[814,2753,2754,2755],{},"A live browseable ontology at ",[807,2756,2757],{},[496,2758,1858],{"href":1856,"rel":2759},[500],[475,2761,2762],{},"A few design choices worth flagging:",[1356,2764,2765,2775],{},[1359,2766,2767],{},[1362,2768,2769,2772],{},[1365,2770,2771],{},"What it does",[1365,2773,2774],{},"Why we built it that way",[1375,2776,2777,2788,2799,2811],{},[1362,2778,2779,2785],{},[1380,2780,2781,2782],{},"Dereferenceable ontologies at ",[1115,2783,2784],{},"https:\u002F\u002Fref.openepcis.io\u002Fextensions\u002F...",[1380,2786,2787],{},"Every class and property gets a stable, HTTP-resolvable URI",[1362,2789,2790,2793],{},[1380,2791,2792],{},"JSON-LD contexts shipped alongside the ontology",[1380,2794,2795,2796,2798],{},"No bespoke context wiring per integration — point at ",[1115,2797,1650],{}," and go",[1362,2800,2801,2804],{},[1380,2802,2803],{},"EPCIS 2.0 extension architecture",[1380,2805,2806,2807,2810],{},"Regulation-specific behaviour activated via the ",[1115,2808,2809],{},"GS1-Extensions"," header",[1362,2812,2813,2816],{},[1380,2814,2815],{},"Cross-standard alignment",[1380,2817,2818],{},"Anchors out to UNTP, CIRPASS-2 and CEN\u002FCENELEC JTC 24 instead of forking",[475,2820,2821,2822,2825,2826,2829,2830,2829,2833,2836],{},"The guiding rule: walk down the stack and use the ",[478,2823,2824],{},"most authoritative"," vocabulary that already covers your concept. Within Layer 1 we check ",[807,2827,2828],{},"GS1",", then ",[807,2831,2832],{},"SEMIC",[807,2834,2835],{},"schema.org",", and only mint a new IRI when none of the three has it. Less novelty is the goal, not more.",[488,2838,2840],{"id":2839},"a-tour-of-refopenepcisio","A tour of ref.openepcis.io",[475,2842,2843,2844,2849],{},"We've just made ",[807,2845,2846],{},[496,2847,1858],{"href":1856,"rel":2848},[500]," publicly browseable — a dereferenceable vocabulary site for the DPP ontologies we maintain.",[475,2851,2852],{},"The structure mirrors the regulation landscape:",[1356,2854,2855,2865],{},[1359,2856,2857],{},[1362,2858,2859,2862],{},[1365,2860,2861],{},"URL",[1365,2863,2864],{},"What lives there",[1375,2866,2867,2879,2891,2903,2915,2927,2939,2951,2963],{},[1362,2868,2869,2876],{},[1380,2870,2871],{},[496,2872,2875],{"href":2873,"rel":2874},"https:\u002F\u002Fref.openepcis.io\u002Fextensions\u002Fcommon\u002Fcore\u002F",[500],"ref.openepcis.io\u002Fextensions\u002Fcommon\u002Fcore\u002F",[1380,2877,2878],{},"Cross-cutting classes and properties shared across regulations — units, parties, references, certificates",[1362,2880,2881,2888],{},[1380,2882,2883],{},[496,2884,2887],{"href":2885,"rel":2886},"https:\u002F\u002Fref.openepcis.io\u002Fextensions\u002Feu\u002Fbattery\u002F",[500],"ref.openepcis.io\u002Fextensions\u002Feu\u002Fbattery\u002F",[1380,2889,2890],{},"EU Battery Regulation: chemistry, capacity, recycled content, carbon footprint",[1362,2892,2893,2900],{},[1380,2894,2895],{},[496,2896,2899],{"href":2897,"rel":2898},"https:\u002F\u002Fref.openepcis.io\u002Fextensions\u002Feu\u002Ftextile\u002F",[500],"ref.openepcis.io\u002Fextensions\u002Feu\u002Ftextile\u002F",[1380,2901,2902],{},"EU Textile Regulation: fibre composition, country of origin, care, microfibre release",[1362,2904,2905,2912],{},[1380,2906,2907],{},[496,2908,2911],{"href":2909,"rel":2910},"https:\u002F\u002Fref.openepcis.io\u002Fextensions\u002Feu\u002Feudr\u002F",[500],"ref.openepcis.io\u002Fextensions\u002Feu\u002Feudr\u002F",[1380,2913,2914],{},"EU Deforestation Regulation: due-diligence statements, geolocation of plots, commodity types",[1362,2916,2917,2924],{},[1380,2918,2919],{},[496,2920,2923],{"href":2921,"rel":2922},"https:\u002F\u002Fref.openepcis.io\u002Fextensions\u002Feu\u002Felectronics\u002F",[500],"ref.openepcis.io\u002Fextensions\u002Feu\u002Felectronics\u002F",[1380,2925,2926],{},"Energy efficiency, repair index, spare-part availability",[1362,2928,2929,2936],{},[1380,2930,2931],{},[496,2932,2935],{"href":2933,"rel":2934},"https:\u002F\u002Fref.openepcis.io\u002Fextensions\u002Feu\u002Fppwr\u002F",[500],"ref.openepcis.io\u002Fextensions\u002Feu\u002Fppwr\u002F",[1380,2937,2938],{},"Packaging and Packaging Waste Regulation",[1362,2940,2941,2948],{},[1380,2942,2943],{},[496,2944,2947],{"href":2945,"rel":2946},"https:\u002F\u002Fref.openepcis.io\u002Fextensions\u002Feu\u002Fcpr\u002F",[500],"ref.openepcis.io\u002Fextensions\u002Feu\u002Fcpr\u002F",[1380,2949,2950],{},"Construction Products Regulation",[1362,2952,2953,2960],{},[1380,2954,2955],{},[496,2956,2959],{"href":2957,"rel":2958},"https:\u002F\u002Fref.openepcis.io\u002Fextensions\u002Feu\u002Fdetergents\u002F",[500],"ref.openepcis.io\u002Fextensions\u002Feu\u002Fdetergents\u002F",[1380,2961,2962],{},"Detergents Regulation",[1362,2964,2965,2972],{},[1380,2966,2967],{},[496,2968,2971],{"href":2969,"rel":2970},"https:\u002F\u002Fref.openepcis.io\u002Fextensions\u002Fus\u002Ffsma204\u002F",[500],"ref.openepcis.io\u002Fextensions\u002Fus\u002Ffsma204\u002F",[1380,2973,2974],{},"FSMA Section 204 (US food traceability)",[475,2976,2977,2978,2980],{},"Every page is generated from the TTL in the GitHub repository. The TTL is canonical; the website is just a view onto it. Each class and property has its own resolvable URI you can copy-paste into a JSON-LD ",[1115,2979,1650],{},", validate against with SHACL, query with SPARQL, or hand to an LLM that already knows how to read RDF.",[475,2982,2983],{},"The point is mundane and important: a standard you can resolve in a browser, copy-paste a JSON-LD context from, and validate against — instead of a PDF that ages on a shared drive.",[475,2985,2986],{},[540,2987],{"alt":2988,"src":2989},"Robot agent with RDF and SHACL tools for leveraging the semantic web with JSON-LD","\u002Fimg\u002Fblog\u002F2521463370.webp",[488,2991,2993],{"id":2992},"what-this-means-for-your-dpp-roadmap","What this means for your DPP roadmap",[475,2995,2996],{},"Much of the DPP conversation is still framed as a platform choice. It mostly isn't one. The standards are documented, ratified, and there is working open-source code — ours and others' — that implements them today.",[475,2998,2999],{},"Eight ratified European standards. Three of them load-bearing for the agentic era, sitting on top of the EDI and GDSN rails the industry already trusts. None of them research projects waiting to be invented. And all of them held together by a single design decision — that a GS1 identifier is just a URL — that the rest of the web has been quietly waiting for since 1995.",[475,3001,3002],{},"GS1 Digital Link + GS1 Web Vocabulary + GS1 Conformant Resolver + EPCIS 2.0 — the identity, semantic, discovery and temporal layers — are what turn a regulated data file into something a machine can actually consume.",[475,3004,3005],{},"If your products carry a GTIN, you are already in this ecosystem. The DPP question is no longer whether to use these standards — it is how to map your existing data into them. The consumer at the other end is increasingly an agent, and an agent needs the data in a language it can read.",[475,3007,3008],{},"A practical sequence:",[2538,3010,3011,3017,3029,3038,3044],{},[814,3012,3013,3016],{},[807,3014,3015],{},"Pick one regulation that already applies to one of your products"," — Textile, Battery, EUDR, FSMA 204, whichever bites first. Scope it to a single product family, not the whole portfolio.",[814,3018,3019,3025,3026,3028],{},[807,3020,3021,3022,1071],{},"Map that product family onto the corresponding ontology at ",[496,3023,1858],{"href":1856,"rel":3024},[500]," Field-by-field. Expect this to surface gaps in your master data — that ",[478,3027,1560],{}," the work, not an obstacle to it.",[814,3030,3031,1567,3034,3037],{},[807,3032,3033],{},"Issue Digital Link URLs for those products.",[1115,3035,3036],{},"\u002F01\u002F\u003Cgtin>\u002F21\u002F\u003Cserial>"," is enough on paper; getting your serialisation, label printing, packaging line and ERP to actually emit those URLs is a real, cross-functional project that touches operations, not just IT.",[814,3039,3040,3043],{},[807,3041,3042],{},"Stand up a resolver"," that returns a link set per identifier. A static file per product is a valid first version, but the link relations and the documents they point at — product information page, recycling guidance, recall procedure, due diligence statement — are content that has to be authored, owned and kept current.",[814,3045,3046,3049],{},[807,3047,3048],{},"Wire EPCIS event emission into the lifecycle moments that matter"," — manufacture, ship, receive, sell, recall. This is capture infrastructure: ERP, MES, WMS, scanners, IoT — each one its own integration.",[475,3051,3052,3053,3056,3057,3059],{},"None of these steps requires a platform purchase or a research project, and that is the genuinely good news. But none of them is a weekend's work either. Steps 2, 3 and 5 are typically months of engineering and operational change for any organisation past prototype scale, and that's ",[478,3054,3055],{},"with"," OpenEPCIS DPP-Ready and the GS1 standards doing the heavy intellectual lifting underneath. The value of having ratified standards and a public ontology is not that the work disappears — it's that you do it ",[478,3058,2706],{},", on shared foundations, and every regulator, customs system and AI agent on the receiving end reads the same canonical answer.",[475,3061,3062],{},"That is the realistic shape of a DPP programme: bounded engineering on shared standards, instead of unbounded platform R&D.",[798,3064],{},[475,3066,3067],{},[540,3068],{"alt":470,"src":3069},"\u002Fimg\u002Fblog\u002Ffoto_sven_quadrat.webp",[475,3071,3072],{},[478,3073,3074,3075,3078],{},"Sven Böckelmann is Tech Lead at benelog and a contributor to OpenEPCIS — an Apache-2.0 implementation of GS1 Web and Visibility standards. Browse the live DPP ontology at ",[496,3076,1858],{"href":1856,"rel":3077},[500],". The companion short-form version of this article is on LinkedIn.",[475,3080,3081],{},[478,3082,3083,3084,3089],{},"A note on the images: yes, they're AI-generated too — first sketched with Gemini, then refined locally in Draw Things with ",[496,3085,3088],{"href":3086,"rel":3087},"https:\u002F\u002Fgithub.com\u002Fblack-forest-labs\u002Fflux2",[500],"FLUX.2 [klein]",". Hope they weren't too distracting — felt fitting for an article about agents reading product data. ;-)",[475,3091,3092],{},[807,3093,3094],{},"#DigitalProductPassport #GS1 #EPCIS #DigitalLink #AgenticAI #LinkedData #SupplyChain #Ontology #JSONLD",[3096,3097,3098],"style",{},"html pre.shiki code .siCPE, html code.shiki .siCPE{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .ss--_, html code.shiki .ss--_{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .swvn1, html code.shiki .swvn1{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .saDeg, html code.shiki .saDeg{--shiki-light:#39ADB5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sEff5, html code.shiki .sEff5{--shiki-light:#9C3EDA;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sh1VR, html code.shiki .sh1VR{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#CFCFC2}html pre.shiki code .sINAO, html code.shiki .sINAO{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#CFCFC2}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .s_MOj, html code.shiki .s_MOj{--shiki-light:#E2931D;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sTC9v, html code.shiki .sTC9v{--shiki-light:#F76D47;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}",{"title":1001,"searchDepth":1002,"depth":1002,"links":3100},[3101,3102,3105,3106,3107,3108,3109,3110,3111,3112],{"id":1080,"depth":1002,"text":1081},{"id":1264,"depth":1002,"text":1265,"children":3103},[3104],{"id":1537,"depth":1169,"text":1538},{"id":1604,"depth":1002,"text":1605},{"id":1868,"depth":1002,"text":1869},{"id":2238,"depth":1002,"text":2239},{"id":2529,"depth":1002,"text":2530},{"id":2596,"depth":1002,"text":2597},{"id":2716,"depth":1002,"text":2717},{"id":2839,"depth":1002,"text":2840},{"id":2992,"depth":1002,"text":2993},"2026-05-12T00:00:00.000Z","Three GS1 standards — Digital Link, Web Vocabulary, Conformant Resolver — plus EPCIS 2.0 already cover the agent-facing layer of the Digital Product Passport.","\u002Fimg\u002Fblog\u002F3808829389.webp",{"head":3117,"readingTime":3121},{"meta":3118},[3119],{"name":1025,"content":3120},"Digital Product Passport, GS1, EPCIS, Digital Link, Agentic AI, Linked Data, Ontology, JSON-LD, Supply Chain",{"text":3122,"minutes":3123,"time":3124,"words":3125},"17 min read",16.31,978600,3262,"\u002Fblog\u002Fdpp-stack-for-agents",{"title":1044,"description":3114},{"loc":3126},"blog\u002F01.dpp-stack-for-agents",[203,98,31,3131,3132,3133,3134,3135],"digital-link","agentic-ai","linked-data","ontology","jsonld","RiXeygGcWd6mqNsQHSQKBdpwVLWHOPEqcjg2ZxNhbE8",1782689016240]