This document defines requirements and use cases for representing supply chain events as Verifiable Credentials, enabling interoperable and cryptographically verifiable data exchange across organizational boundaries. It establishes the problem space, shared terminology, motivating scenarios, and twenty functional and five non-functional requirements that will guide the development of the VSC Core Data Model and related specifications.
The VSC framework maps [[EPCIS]] event semantics onto [[VC-DATA-MODEL]] representations, using [[DID-CORE]] for actor identity binding. It incorporates three normative vocabularies — the WCO Harmonized System (HS) for commodity classification, ICC INCOTERMS® for commercial terms, and UCP 600 for trade finance instruments — enabling a single VSC credential to serve as a self-contained trade document that answers what the product is, where commercial responsibility transfers, and how payment is governed. The approach is grounded in published W3C, GS1, WCO, ICC, ISO, IETF, and regulatory standards and aligns with established community work including the [[TRACEABILITY-V1]] vocabulary and [[UNTP]].
Two architectural frameworks extend the core model: the VSC Event Matrix — a five-dimensional cross-domain verification schema with forward-compatible extensibility and integrated machine learning feature extraction — and the VSC Regulatory Rule Compiler — a machine-executable compliance engine that compiles trade regulations into deterministic verification functions over the matrix dimensions. Together they enable a single verification architecture to process any trade event from any domain, governed by any standard, without domain-specific code.
This document is intended for:
This document is a Community Group Draft produced by the Verifiable Supply Chain Community Group. It has not been endorsed by the W3C membership and is not a W3C Standard. It may be updated, replaced, or made obsolete at any time.
Feedback is welcome. The preferred mechanism is to open a GitHub issue. For general discussion, see the public mailing list. See Contributing for full contributor guidance.
Global supply chains are among the most complex information systems humans operate. They span hundreds of organizations, dozens of jurisdictions, and thousands of individual product movements per day. Despite this complexity, the underlying data infrastructure remains fragmented: proprietary formats, bilateral EDI agreements, and centralized intermediary platforms are the norm rather than the exception.
The GS1 [[EPCIS]] standard, widely adopted across retail, healthcare, and logistics, provides a common vocabulary for supply chain events — captures of who did what to which item, where, and when. However, EPCIS defines what to record, not how to prove it. A receiving party cannot cryptographically verify that an EPCIS record was created by an authorized party, has not been tampered with, or corresponds to any real-world act of authority.
Simultaneously, the W3C Verifiable Credentials Data Model and [[DID-CORE]] provide a mature, widely deployed infrastructure for cryptographically signed, decentralized identity. These technologies have been adopted in digital credentials for education, healthcare records, and government identity, but have not yet been systematically applied to supply chain event data.
Regulatory pressure is accelerating the need. The US [[DSCSA]] mandates electronic, interoperable tracing of prescription drug products across the entire pharmaceutical distribution chain. The EU [[EUDR]] requires due diligence documentation for commodities associated with deforestation. The EU [[EU-BEV]] requires battery passport data covering the full material supply chain. India's Drugs Rules, 1945 mandate QR codes on top 300 formulation brands and all APIs. These regulations require auditable, tamper-evident records — a property EPCIS alone cannot provide.
The Verifiable Supply Chain (VSC) framework addresses this gap by defining how [[EPCIS]] events can be represented as [[VC-DATA-MODEL]] credentials, binding event data to the issuing party's [[DID-CORE]] identifier and enabling cryptographic verification across organizational boundaries without requiring a shared central database. Beyond event integrity, VSC incorporates three normative vocabularies that transform credentials into self-contained trade documents: the WCO Harmonized System for commodity classification, ICC INCOTERMS® for commercial terms and risk allocation, and UCP 600 for trade finance instrument binding. Together with the VSC Event Matrix and Regulatory Rule Compiler, the framework provides a complete verification operating system for global trade.
Current supply chain data systems exhibit three structural deficiencies that VSC is designed to address:
VSC addresses the deficiencies identified in Problem Statement by:
VSC does not require distributed ledger technology. DID methods
backed by web infrastructure (e.g., did:web) are
explicitly supported and are expected to be the dominant deployment
pattern for enterprise supply chains. Ledger-based DID methods
MAY be used but are not privileged.
Requirement identifiers take the form
REQ-Xn where
X is F (functional) or
NF (non-functional) and n is a two-digit
sequence number. Every requirement includes a rationale grounded in
published standards or regulations, a specific testability statement
to guide conformance test development, and normative references.
Use case identifiers take the form UC-n.
Each use case cross-references the requirements it motivates.
Defined terms appear in bold style and are linked on first use in each section.
This document is organized into five parts:
The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in [[RFC2119]] and [[RFC8174]] when, and only when, they appear in all capitals, as shown here.
This document defines conformance requirements for VSC Specifications—technical specifications that claim alignment with the VSC vision and architecture. A conformant VSC Specification MUST satisfy all normative requirements in Requirements.
Conformance to this document is assessed at two levels:
This document defines conformance for specifications, not for software implementations. Implementation conformance classes (VSC Issuer, VSC Verifier) will be defined in the VSC Technical Specification.
The following terms are used throughout this specification. Terms defined in [[VC-DATA-MODEL]] and [[DID-CORE]] are imported by reference where noted.
shipping, receiving,
manufacturing) that describes the step in the
business process at which an EPCIS Event occurred.
in_transit, recalled,
destroyed) describing the condition or status of
an EPC or product class at the time of an EPCIS Event.
hsClassification object, containing
at minimum a 6-digit HS code and the applicable WCO nomenclature
version year. HS classification enables automated tariff
determination, Rules of Origin verification, and regulatory
screening across 200+ jurisdictions without translation.
incotermsClassification object,
containing at minimum a three-letter INCOTERMS® rule code, the
applicable ICC edition year, and the named place. INCOTERMS®
classification enables automated risk and responsibility
determination for commercial disputes.
tradeFinance object, specifying the instrument type
(LC, DC, OA, or AP), issuing bank, and documentary requirements.
Trade finance binding enables automated documentary compliance
verification under UCP 600.
VSC operates as a five-layer architecture. Each layer addresses a distinct dimension of verifiability, and together they transform a physical supply chain event into a self-contained, cryptographically provable trade document:
did:web is expected
to be the dominant enterprise deployment pattern.
VSC defines three primary roles, aligned with [[VC-DATA-MODEL]] Section 1.3. In supply chain deployments these roles are typically held by different organizations, though a single organization may act in multiple roles across different transactions.
[[EPCIS]] v2.0 defines five event types. VSC requires a normative credential schema for each. Every event type can carry the three normative vocabulary bindings (HS Classification, INCOTERMS® Classification, and Trade Finance Instrument) as optional credential subject extensions:
| EPCIS Event Type | Typical Business Use | VSC Credential Schema (placeholder) | Normative Vocabularies Applicable |
|---|---|---|---|
ObjectEvent | Commissioning, observation, shipping, receiving of items | VscObjectEventCredential | HS, INCOTERMS®, Trade Finance |
AggregationEvent | Packing items into a container; disaggregating a pallet | VscAggregationEventCredential | HS |
TransformationEvent | Manufacturing: input materials consumed, output products created | VscTransformationEventCredential | HS (input/output), INCOTERMS® |
TransactionEvent | Linking events to business transactions (orders, invoices) | VscTransactionEventCredential | INCOTERMS®, Trade Finance |
AssociationEvent | Associating sub-objects with a parent object | VscAssociationEventCredential | HS |
The schema names in the table above are placeholders. Normative schema identifiers and JSON-LD context URIs will be defined in the VSC Core Data Model specification. The "Normative Vocabularies Applicable" column indicates which vocabulary bindings are relevant to each event type; all are optional and populated only when the business context requires them.
The core objects in VSC are:
issuer is the asserting
Supply Chain Actor's DID. The credentialSubject
contains the EPCIS Event fields and may include the
hsClassification, incotermsClassification,
and tradeFinance objects. The credential carries a
credentialStatus endpoint for revocation checks and a
termsOfUse reference to the governing
Trust Framework.
The VSC framework operates as a five-layer architecture. The diagram below shows how physical events, cryptographic integrity, organizational identity, governance and trust, and sector-specific regulatory overlays converge into a unified, verifiable supply chain system. Animated flow lines represent continuous, tamper-evident data transmission between actors and trust infrastructure.
Figure 1 — VSC Architecture: Five-layer convergence of physical events (EPCIS), cryptographic integrity (VC Data Model), organizational identity (DID Core), trust anchor governance (Trust Framework), and sector-specific regulatory overlays. Animated flow lines indicate continuous, verifiable data exchange across the supply chain.
Verification may fail if the DID cannot be resolved, the signature is invalid, the credential has been revoked, or the issuer is not in the required issuer registry. Verifier behavior in each failure case is defined in Requirements. Additional failure modes for HS misclassification, INCOTERMS® version mismatch, documentary discrepancies, and regulatory rule violations are defined in their respective normative sections and use cases.
Figure 2 — The Complete VSC Journey: From a physical event occurring in the real world, through EPCIS capture, Verifiable Credential issuance, enrichment with three normative vocabularies, assembly into the Event Matrix, verification through the Universal Pattern, to final trusted outcome. Every arrow represents a living, cryptographically secured process.
Figure 2 — The Complete VSC Journey: From raw chemical ingredients through API manufacturing, formulation with QR code application, distribution through cold chain logistics with IoT temperature monitoring, customs clearance, automated LC settlement, and final pharmacy verification. Each circular node represents a cryptographically signed event. The right sidebar shows how a single credential accumulates data — EPCIS, VC proof, HS Code, INCOTERMS®, Trade Finance, IoT logs, Event Matrix, and final verified outcome — as it moves through the supply chain.
The Harmonized Commodity Description and Coding System (HS), maintained by the World Customs Organization (WCO), is the universal economic language for international trade. Over 200 countries and economies use HS codes as the basis for customs tariffs, trade statistics, rules of origin, and trade negotiations. The HS classifies approximately 5,000 commodity groups at the 6-digit level, with each country extending to 8, 10, or more digits for national tariff schedules.
VSC adopts HS codes as a normative commodity classification vocabulary that operates alongside [[EPCIS]] event semantics. While EPCIS describes what happened to an item, HS codes describe what the item is in a universally recognized taxonomy. This dual-vocabulary approach ensures that VSC credentials are immediately machine-readable by any customs authority, trade platform, or regulatory system worldwide without requiring translation or mapping.
| HS Level | Digits | Example | VSC Usage |
|---|---|---|---|
| Chapter | 2 | 30 — Pharmaceutical products | Sector identification for trust frameworks |
| Heading | 4 | 3004 — Medicaments (dosed, for retail) | Product category for verification rules and Rules of Origin CTC tests |
| Subheading (WCO) | 6 | 3004.90 — Other medicaments | Universal trade classification (200+ countries) |
| National tariff line | 8–12 | 3004.90.11 — Specific formulation | Country-specific duty and regulation mapping |
Every VSC event credential that describes a product, commodity, or trade
item SHOULD include the applicable HS
classification. The HS classification MUST be
expressed using the hsClassification object with the
following structure:
hsCodehsCodeVersionhsCode is present. This field is critical for cross-version interoperability: a credential classified under HS 2017 may not be directly comparable to HS 2022 classifications without version disambiguation.hsCodeNationalhsCodeJurisdictionhsCodeNational applies to. REQUIRED if hsCodeNational is present.hsDescriptionExample JSON-LD representation:
{
"credentialSubject": {
"id": "urn:epc:id:sgtin:8901234.56789.0",
"type": "TradeItem",
"hsClassification": {
"hsCode": "3004.90",
"hsCodeVersion": "2022",
"hsCodeNational": "3004.90.11",
"hsCodeJurisdiction": "IN",
"hsDescription": "Medicaments consisting of mixed or unmixed products for therapeutic or prophylactic uses, put up in measured doses or in forms or packings for retail sale"
}
}
}
The WCO revises the HS nomenclature every five years (most recently 2022,
next revision 2027). VSC implementations SHOULD support multiple HS versions
and the hsCodeVersion field enables verifiers to apply the
correct classification rules for the nomenclature version in effect at the
time the credential was issued.
In HS nomenclature, parts and accessories often fall under different headings than finished goods. For example, an active pharmaceutical ingredient (API) classified under HS 2933.39 (heterocyclic compounds) becomes a medicament under HS 3004.90 after formulation. This transformation of classification is a critical signal for Rules of Origin determination, customs valuation, and regulatory compliance.
When a VSC TransformationEvent is issued, the credential MAY include:
hsClassification of each input material, referenced from the input EPCs' credentials;hsClassification of the resulting output product;Most Free Trade Agreements (FTAs) use Change in Tariff Classification (CTC) as the primary criterion for determining whether a product qualifies as originating from a particular country. The CTC rule specifies the minimum level of HS transformation required: typically a change at the Chapter level (CC — 2 digits), Heading level (CTH — 4 digits), or Subheading level (CTSH — 6 digits).
Because VSC makes HS codes normative within event credentials, a VSC verifier can programmatically prove origin without human intervention:
Automated CTC Verification — Pharmaceutical Example
Automated CTC verification: HS heading changes from 2924 (input API) to 3004 (output medicament), satisfying the CTH rule under most pharmaceutical FTAs.
The VSC verifier performs the following automated CTC check:
HS codes serve as the primary key for automated risk assessment in customs processing. VSC verifiers MAY implement HS-based risk scoring to automatically determine:
VSC verifiers MAY use the HS code in a credential to automatically determine:
EPCIS v2.0 does not natively include an HS code field. VSC defines
HS codes as a normative extension vocabulary within the
ilmd (Instance/Lot Master Data) or as a top-level credential
subject field. This approach:
A VSC Issuer SHOULD include the
hsClassification object in the credential subject of any
event credential that describes a product, commodity, or trade item. When
included, the hsCode and hsCodeVersion fields
MUST be populated. The hsDescription
field SHOULD be populated with the
WCO-recommended description to provide a human-readable validation anchor.
HS codes are used by 200+ countries for customs clearance, tariff
determination, trade statistics, and Rules of Origin. Embedding HS codes
in VSC credentials enables instant regulatory classification without
requiring customs authorities to parse product descriptions or maintain
proprietary code mappings. The hsCodeVersion field addresses
the WCO's five-year revision cycle, ensuring credentials remain verifiable
across nomenclature boundaries.
A conformant issuer MUST produce a valid credential containing:
(a) hsCode with a valid 6-digit HS code;
(b) hsCodeVersion with the applicable WCO nomenclature year;
(c) hsDescription with the WCO-recommended textual
description; and optionally
(d) hsCodeNational and hsCodeJurisdiction
for jurisdiction-specific declarations. A conformant verifier MUST
parse and validate the HS code against the WCO nomenclature for
the stated version.
WCO HS Convention (1983) Articles 3, 4; WCO HS Nomenclature 2022 Edition; WTO Trade Facilitation Agreement Article 10.
A VSC Issuer MAY include input HS classifications and an HS change indicator in TransformationEvent credentials. When included, the input HS classifications MUST reference the HS codes from the input EPCs' credentials, and the output HS classification MUST be present. The HS change indicator MUST specify whether a change occurred at the Chapter (2-digit), Heading (4-digit), or Subheading (6-digit) level.
In HS nomenclature, parts and accessories often fall under different headings than finished goods. A TransformationEvent that captures this classification change provides the data foundation for automated Rules of Origin verification via Change in Tariff Classification (CTC). Most FTAs use CTC as the primary origin criterion, and a verifiable record of HS transformation enables programmatic origin determination without human intervention.
Given a TransformationEvent with input HS "2924.29" (Chapter 29) and output HS "3004.90" (Chapter 30), a conformant verifier MUST detect the chapter-level change and signal "CTC Satisfied at Chapter Level." A TransformationEvent where input and output HS codes are in the same heading MUST signal "No CTC Change."
WCO HS Convention; WTO Agreement on Rules of Origin Article 2; EU-India FTA Rules of Origin Protocol; USMCA Chapter 4 (Rules of Origin); AfCFTA Annex 2 on Rules of Origin.
International trade moves on credit. The Letter of Credit (LC), governed by the ICC Uniform Customs and Practice for Documentary Credits (UCP 600), remains the dominant payment mechanism for cross-border trade, facilitating over USD 2 trillion in annual transactions. An LC is fundamentally a documentary condition: the issuing bank promises to pay the beneficiary (seller) upon presentation of documents that strictly comply with the credit's terms. This is a purely document-based process — the bank deals in documents, not goods (UCP 600 Article 5).
VSC transforms the LC from a manual document-checking exercise into an automated cryptographic verification. Because VSC credentials are tamper-evident, DID-signed, and independently verifiable, they can satisfy the documentary requirements of a Letter of Credit without human document examination. This reduces the LC settlement cycle from 5–10 banking days to seconds, and eliminates the discrepancies that cause 70% of documentary presentations to be rejected on first presentation.
Traditional LC vs. VSC-Automated LC Settlement
VSC reduces Letter of Credit settlement from 5–10 banking days to seconds, eliminates documentary discrepancies, and transforms trade finance from manual document checking to automated cryptographic verification.
A VSC commercial shipment credential MAY
include a tradeFinance object that binds the shipment
to the applicable payment instrument. The trade finance binding
MUST use the following structure:
paymentInstrumentlcNumberissuingBankadvisingBanklcTypelcAmountlcExpiryDatelcDocumentaryRequirementsVscCommercialShipmentCredential with hsClassification and incotermsClassification. REQUIRED for automated LC compliance checking.lcPresentationStatussettlementTriggerincotermsRiskTransferEvent (on board vessel). For DDP, this is the arrival at named place event. RECOMMENDED — enables programmatic payment release.titleTransferConditionExample JSON-LD representation of the trade finance binding:
{
"credentialSubject": {
"id": "urn:epc:id:sscc:8901234.5678901234",
"type": "CommercialShipment",
"hsClassification": { "hsCode": "3004.90", "hsCodeVersion": "2022" },
"incotermsClassification": {
"incotermsRule": "CIF",
"incotermsVersion": "2020",
"incotermsNamedPlace": "Mombasa Port, Kenya",
"incotermsRiskTransferEvent": "urn:epc:id:event:onboard-mumbai-001",
"incotermsInsuranceRequired": true
},
"tradeFinance": {
"paymentInstrument": "LC",
"lcNumber": "LC2026-08921-IN-KE",
"issuingBank": {
"swiftBic": "KCBLKENAXXX",
"did": "did:web:kcbbank.co.ke"
},
"advisingBank": {
"swiftBic": "SBININBBXXX",
"did": "did:web:sbi.co.in"
},
"lcType": "irrevocable",
"lcAmount": { "value": "250000.00", "currency": "USD" },
"lcExpiryDate": "2026-08-15",
"lcDocumentaryRequirements": [
{ "requirement": "Commercial Invoice", "vcType": "VscCommercialShipmentCredential", "satisfied": true },
{ "requirement": "Bill of Lading", "vcType": "VscTransportEventCredential", "satisfied": true },
{ "requirement": "Certificate of Origin", "vcType": "VscOriginCredential", "satisfied": true },
{ "requirement": "Packing List", "vcType": "VscAggregationEventCredential", "satisfied": true },
{ "requirement": "Insurance Certificate", "vcType": "VscInsuranceCredential", "satisfied": true }
],
"lcPresentationStatus": "pending",
"settlementTrigger": "urn:epc:id:event:onboard-mumbai-001",
"titleTransferCondition": "upon_payment"
}
}
}
INCOTERMS® 2020 explicitly state that they do not deal with transfer
of property/title in the goods (ICC Publication No. 723E,
Introduction, paragraph 8). Title transfer is governed by the
underlying sales contract and applicable national law (e.g., CISG
Articles 30–34, UK Sale of Goods Act 1979, US UCC Article 2).
The titleTransferCondition field provides a bridge
between VSC's risk/cost determination (via INCOTERMS®) and the
separate legal mechanism of ownership transfer. When integrated
with a decentralized electronic Bill of Lading (eBL) system based
on DIDs, this field enables automated ownership transfer upon
satisfaction of the stated condition.
Under UCP 600 Article 14, a bank must examine a documentary presentation on the basis of the documents alone to determine whether they appear on their face to constitute a complying presentation. This examination is currently performed manually by trade finance professionals who check each document against the LC terms, the UCP 600 rules, and international standard banking practice (ISBP 745).
VSC transforms this process into automated cryptographic compliance verification:
Automated LC Documentary Compliance — VSC Verification Pipeline
Automated LC documentary compliance: five documentary requirements verified cryptographically in seconds, triggering payment of USD 250,000 — compared to 5–10 banking days under traditional manual checking.
A VSC Issuer MAY include the
tradeFinance object in the credential subject of a
commercial shipment credential. When included, the
paymentInstrument, lcNumber (for LCs),
issuingBank, and lcDocumentaryRequirements
fields MUST be populated. The
settlementTrigger field SHOULD
reference the specific event in the VSC event chain that triggers
payment.
Letters of Credit facilitate over USD 2 trillion in trade annually
under UCP 600. Currently, documentary compliance checking is manual,
taking 5–10 banking days with a 70% first-presentation rejection
rate due to discrepancies. By binding VSC credentials to LC
documentary requirements, compliance can be verified
cryptographically in seconds with zero discrepancies. The
lcDocumentaryRequirements array maps each LC
requirement to a VSC credential type, enabling automated matching
and verification. The settlementTrigger field links
payment to a verifiable event (typically the INCOTERMS® risk
transfer event), enabling programmatic payment release.
A conformant issuer MUST produce a valid commercial shipment
credential containing the tradeFinance object with
all required fields for the stated payment instrument. A
conformant verifier MUST: (a) verify that all
lcDocumentaryRequirements are satisfied by VSC
credentials in the presented VP; (b) for each requirement, confirm
the credential type matches, the DID issuer is authorized, the
proof is valid, and the content satisfies the LC conditions;
(c) signal "Compliant" or "Discrepant" with specific discrepancy
details for each requirement.
ICC UCP 600 Articles 2, 3, 6, 14, 15, 28; ICC ISBP 745; UNCITRAL Model Law on Electronic Transferable Records (MLETR) 2017; eUCP Version 2.0 (2019).
A VSC Verifier MAY implement
automated documentary compliance checking for Letters of Credit
under UCP 600. When implemented, the verifier
MUST check all documentary requirements
specified in the lcDocumentaryRequirements array
against the credentials in the presented VP. If all requirements
are satisfied, the verifier MUST signal
"Compliant Presentation" and MAY trigger
the settlement process. If any requirement is not satisfied, the
verifier MUST signal "Discrepant
Presentation" with specific discrepancy details for each failed
requirement, including the credential ID, the failed condition,
and the applicable UCP 600 article reference.
UCP 600 Article 14(a) requires banks to examine a presentation on the basis of the documents alone. Article 14(b) allows a maximum of five banking days for examination. Article 16 requires banks to give a single notice of refusal stating each discrepancy. VSC automates this entire process: examination is performed cryptographically in seconds, and discrepancies are identified programmatically with specific credential and condition references. This eliminates the 70% first-presentation rejection rate caused by human document checking errors.
Given a VP containing five VSC credentials matching five LC documentary requirements, all with valid proofs and authorized issuers: the verifier MUST signal "Compliant Presentation" within 5 seconds. Given a VP missing the Insurance Certificate requirement for a CIF shipment: the verifier MUST signal "Discrepant Presentation — Missing: Insurance Certificate (UCP 600 Art. 28) — CIF requires insurance credential."
ICC UCP 600 Articles 14–16, 28; ICC ISBP 745 Paragraphs A1–A39; eUCP Version 2.0 Articles e1–e7; UNCITRAL MLETR Articles 8–12.
Every verifiable supply chain interaction can be expressed as a vector in a five-dimensional matrix. Each dimension draws its values from a single, globally standardized vocabulary. The dimensions are orthogonal — changing the value in one dimension does not require changing values in any other. Because the dimensions are independent, the verification logic for each dimension is decoupled from all others. A verifier processes each dimension separately, using only the rules applicable to that dimension's vocabulary.
This orthogonality is what gives the Event Matrix its structural longevity. When a vocabulary standard updates — the WCO revises the HS nomenclature, the ICC releases a new INCOTERMS® edition, a new DID method emerges — only the affected dimension's validation rules change. The verification engine does not need to be rewritten. When a new regulatory requirement emerges that does not fit within the existing five dimensions, a sixth dimension can be added. Verifiers that have not been updated to recognize the new dimension continue to verify the five they know. Verifiers that have been updated verify all six. Neither class of verifier breaks.
This is forward-compatible extensibility: the architecture accepts dimensions it does not yet understand without failure, and new dimensions can be added without modifying the verification logic for existing ones.
The VSC Event Matrix — Five Orthogonal Dimensions
The VSC Event Matrix — Five orthogonal dimensions, each drawing from a single standardized vocabulary, producing combinatorial expressiveness that covers multimodal trade events. The "+Dn" indicator shows that additional dimensions can be added without breaking existing ones.
The Event Matrix is expressed as a compact, colon-delimited vector format for transmission and a structured JSON object for programmatic processing. Both representations are semantically equivalent.
Compact Vector Format:
D1:EVENT D2:ACTOR D3:PRODUCT D4:COMMERCIAL D5:FINANCIAL ──────────── ────────────── ───────────── ────────────── ──────────── ObjectEvent did:mfr:in:001 HS:3004.90:22 EXW:2020:Mumbai OA:open AggregationEv did:whl:ae:002 HS:0901.11:22 FOB:2020:Santos LC:irrevoc TransformEv did:cell:kr:003 HS:8507.60:22 CIF:2020:Dubai DC:sight TransactionEv did:dist:ke:004 HS:8517.13:22 DDP:2020:Nairobi AP:advance AssociationEv did:recy:eu:005 HS:8703.80:22 CPT:2020:Rotter LC:confirmed
Structured JSON Format:
{
"vsc:event": {
"matrix": ["ObjectEvent", "did:mfr:in:001", "HS:3004.90:22", "EXW:2020:Mumbai", "OA:open"],
"dimensions": {
"D1": {"type": "ObjectEvent", "source": "EPCIS", "version": "2.0"},
"D2": {"did": "did:mfr:in:001", "method": "web", "resolved": false},
"D3": {"hsCode": "3004.90", "hsVersion": "2022", "description": "Medicaments...", "national": "3004.90.11", "jurisdiction": "IN"},
"D4": {"incoterms": "EXW", "incotermsVersion": "2020", "namedPlace": "Mumbai", "riskTransferEvent": null, "insuranceRequired": false},
"D5": {"instrument": "OA", "lcNumber": null, "issuingBank": null, "requirements": []}
},
"verification": {
"status": "pending",
"checks": ["D2.resolve", "D2.proof", "D3.hsValidate", "D4.incotermsValidate"],
"results": {},
"score": null
}
}
}
D1 values use abbreviated EPCIS event type names. D2 values are
fully qualified DIDs. D3 values use the format
HS:<6-digit>:<version-year>. D4 values
use the format
<INCOTERMS®>:<version-year>:<named-place>.
D5 values use the format
<instrument>:<subtype>. Unpopulated
dimensions are represented by an empty string in the compact format
and by null fields in the JSON format.
The following table demonstrates how the same five-column matrix expresses events across different industries using different vocabulary values. The verification pattern is identical; only the dimension values change.
| Industry | D1: EVENT | D2: ACTOR | D3: PRODUCT | D4: COMMERCIAL | D5: FINANCIAL |
|---|---|---|---|---|---|
| Pharmaceuticals | ObjectEvent |
did:mfr:in:001 |
HS:3004.90:22 (Vaccines) |
EXW:2020:Mumbai |
OA:open |
| Agriculture | TransformEv |
did:proc:br:002 |
HS:0901.11:22 (Green Coffee) |
FOB:2020:Santos |
LC:irrevoc |
| Electronics | AggregationEv |
did:wh:vn:003 |
HS:8517.13:22 (Smartphones) |
CIF:2020:Dubai |
DC:sight |
| Battery Passport | AssociationEv |
did:recy:eu:004 |
HS:8507.60:22 (Lithium-ion) |
DDP:2020:Nairobi |
AP:advance |
| Cold Chain Logistics | ObjectEvent |
did:log:ae:005 |
HS:3002.15:22 (mRNA vaccines) |
CIF:2020:Mombasa |
LC:confirmed |
| Textiles & Garments | TransactionEv |
did:exp:in:006 |
HS:6204.42:22 (Cotton dresses) |
FOB:2020:Chennai |
OA:open |
In each case, the verifier executes the same verification pattern: resolve D2 DID, verify proof, validate D3 HS code against the declared version, validate D4 INCOTERMS® rule against the declared version, and check D5 documentary requirements if applicable. The verifier does not need pharmaceutical domain knowledge to verify a vaccine shipment, or agricultural domain knowledge to verify a coffee shipment. It needs only the validation rules for each dimension's vocabulary.
Because every event is expressed as a vector in the same matrix, every verifier executes the same pattern regardless of the domain:
This pattern is invariant across use cases. A pharmaceutical shipment under CIF with LC payment executes exactly the same verification steps as a food export under FOB with open account terms. The only difference is which dimensions are populated and which vocabulary values are present. The verifier does not need to understand pharmaceuticals or food — it needs to understand the verification pattern.
The Event Matrix produces structured, labeled data at every verification step. Because each dimension value is drawn from a finite vocabulary, the matrix forms a well-defined feature space suitable for supervised machine learning. Each verified event becomes a training row where the dimension values are features and the verification outcome is the label.
Feature Extraction:
# Each VSC matrix row produces a structured feature vector
features = {
"event_type": "ObjectEvent", # D1
"did_method": "web", # D2: extracted from DID
"hs_chapter": "30", # D3: first 2 digits
"hs_heading": "3004", # D3: first 4 digits
"incoterms_rule": "CIF", # D4
"incoterms_version": "2020", # D4
"payment_instrument": "LC", # D5
"has_lc": True, # D5: derived
"is_cif_cip": True, # D4: derived (insurance check required)
"named_place_region": "Mombasa" # D4: geographic risk factor
}
# Labels produced by verification
labels = {
"status": "accepted", # or "rejected", "flagged"
"score": 0.97, # trust score 0.0–1.0
"anomaly": False # anomaly detection flag
}
ML Use Cases Enabled by the Matrix Structure:
| Model | Input Features | Output | Application |
|---|---|---|---|
| Anomaly Detection | Full matrix row + historical verification patterns | Anomaly score 0.0–1.0 | Flag shipments exhibiting unusual dimension combinations before verification |
| Trust Score Regression | D2 (DID history) + D3 (HS chapter risk) + D4 (INCOTERMS® rule) + D5 (instrument) | Predicted trust score 0.0–1.0 | Pre-verification risk assessment for customs and banks |
| HS Misclassification Detection | D3 (HS code) + D3 (text description) + D1 (event type) | Misclassification probability | Automated customs fraud detection |
| LC Discrepancy Prediction | D5 (documentary requirements) + D2 (issuer history) + D4 (INCOTERMS®) | Discrepancy probability per document | Pre-submission LC compliance checking for exporters |
| Route Risk Scoring | D4 (named place) + D1 (event chain) + historical incident data | Route risk score 0.0–1.0 | Marine insurance underwriting and premium calculation |
After processing a sufficient volume of verified events, the ML models can predict verification outcomes before submission. A shipment with a predicted trust score below a configurable threshold can be flagged for additional scrutiny before the credential is presented to the verifier. This closes the loop from verification to prediction to prevention.
hsCodeVersion.
INCOTERMS® rules carry incotermsVersion. A verifier
encountering a value from an unfamiliar version can either
cross-walk to the current version or flag the credential for
version review. The matrix does not break when vocabularies
evolve.
A VSC Issuer MAY express any supply chain event as a vector in the VSC Event Matrix. When using matrix representation, the issuer MUST populate each dimension with values drawn from the standardized vocabulary registered for that dimension. The issuer MAY omit dimensions that are not applicable to the verification context. A VSC Verifier MUST execute the universal verification pattern against all populated dimensions. The verifier MUST produce a structured verification result including per-dimension status and a composite trust score suitable for downstream ML processing.
The Event Matrix provides a unified grammar for expressing any verifiable supply chain interaction. By decomposing events into orthogonal dimensions with standardized vocabularies, the matrix enables a single verification architecture to process events from any domain without domain-specific code. The orthogonality property ensures that new dimensions can be added without breaking existing verification logic. The structured verification output ensures that every verification decision contributes to the ML training corpus.
Given an event expressed as a five-dimensional vector populated with valid values from each dimension's vocabulary: a conformant verifier MUST execute the universal verification pattern and signal "Verified" with dimension-specific confirmations and a composite trust score. Given an event with an invalid value in any populated dimension: the verifier MUST signal "Rejected" with the specific dimension and the specific validation failure. A verifier encountering an unpopulated dimension MUST skip verification for that dimension without error. A verifier encountering an unrecognized dimension MUST skip verification for that dimension without error.
This specification Sections 5 (Architecture), 8 (Requirements); WCO HS Convention; ICC INCOTERMS® 2020; UCP 600; DID Core; EPCIS 2.0.
The VSC Event Matrix MUST support the addition of new dimensions without requiring modification to existing dimension vocabularies or verification logic. A new dimension MUST be registered with a unique dimension identifier, a standardized vocabulary source, and versioning rules. Existing verifiers MUST process events containing unknown dimensions by verifying only the dimensions they recognize, without signaling an error for unrecognized dimensions. New verifiers MAY verify the additional dimensions and produce dimension-specific confirmations for each.
The forward-compatible extensibility of VSC depends on the matrix being extensible without breaking backward compatibility. When a new regulatory requirement emerges — such as carbon accounting under CBAM, digital product passports under ESPR, or human rights due diligence under CSDDD — it must be expressible as a new dimension without requiring all verifiers to upgrade simultaneously. Verifiers that do not yet support the new dimension must still correctly verify the dimensions they do support. This enables gradual adoption of new regulatory requirements without disrupting existing trade flows.
Given an event expressed as a six-dimensional vector where D6 is an unrecognized dimension: a conformant verifier MUST verify D1–D5 without error and MUST NOT signal an error for the unrecognized D6. A verifier that does recognize D6 MUST verify all six dimensions and signal dimension-specific confirmations for each. The trust score computation MUST include recognized dimensions and MUST exclude unrecognized dimensions.
This specification Section X+3; JSON-LD 1.1 Section 5 (Context Extension); REQ-NF04 (Extensibility); CBAM Regulation (EU) 2023/956; ESPR Regulation (EU) 2024/1781; CSDDD Directive (EU) 2024/1760.
INCOTERMS® (International Commercial Terms), published by the International Chamber of Commerce (ICC), are the universal language of commercial responsibility in international trade. The current version, INCOTERMS® 2020, defines eleven three-letter terms that precisely allocate costs, risks, and responsibilities between buyer and seller at every stage of the shipment journey. These terms are referenced in virtually every commercial invoice, letter of credit, marine insurance policy, and sales contract worldwide.
VSC adopts INCOTERMS® as a normative commercial terms vocabulary that operates alongside HS codes for commodity classification. While HS codes describe what the product is, INCOTERMS® describe where responsibility transfers and who bears the risk at each point. Together, they form the complete commercial identity of a trade transaction.
| Category | Rule | Mode | Risk Transfer Point | VSC Automation |
|---|---|---|---|---|
| Any Mode | EXW — Ex Works | All | Seller's premises | Risk stays with buyer from origin · No transport verification needed by seller |
| Any Mode | FCA — Free Carrier | All | Named place (carrier) | Risk transfers at first carrier · Verify handover event |
| Any Mode | CPT — Carriage Paid To | All | First carrier (risk) / Destination (cost) | Split risk/cost transfer · Verify two separate points |
| Any Mode | CIP — Carriage and Insurance Paid To | All | First carrier (risk) / Destination (cost) | Insurance credential required · Verify coverage level |
| Any Mode | DAP — Delivered at Place | All | Named destination (before unloading) | Verify arrival at named place · Seller risk until arrival |
| Any Mode | DPU — Delivered at Place Unloaded | All | Named destination (after unloading) | Verify unloading completion · Seller risk includes unloading |
| Any Mode | DDP — Delivered Duty Paid | All | Named destination (cleared) | Maximum seller obligation · Verify customs clearance + duty payment |
| Sea/Waterway | FAS — Free Alongside Ship | Sea | Alongside vessel at port | Verify placement alongside vessel · Port event credential |
| Sea/Waterway | FOB — Free On Board | Sea | On board vessel at port | Verify on-board event · Most common sea freight term |
| Sea/Waterway | CFR — Cost and Freight | Sea | On board vessel (risk) / Destination (cost) | Split risk/cost · Verify on-board + freight payment |
| Sea/Waterway | CIF — Cost, Insurance and Freight | Sea | On board vessel (risk) / Destination (cost) | Insurance credential mandatory · Minimum cover ICC (C) 110% |
A supply chain credential system without INCOTERMS can verify what happened but cannot determine who is responsible. Consider this scenario:
This is the difference between knowing what happened and knowing who pays for it. INCOTERMS transform VSC from a tracking system into a commercial liability determination engine.
Every VSC event credential that represents a commercial shipment
SHOULD include the applicable INCOTERMS®
rule. The INCOTERMS® classification MUST
be expressed using the incotermsClassification object
with the following structure:
incotermsRuleincotermsVersionincotermsNamedPlaceincotermsRiskTransferEventincotermsInsuranceRequiredincotermsModeOfTransportExample JSON-LD representation of the INCOTERMS® classification within a VSC credential subject:
{
"credentialSubject": {
"id": "urn:epc:id:sscc:8901234.5678901234",
"type": "CommercialShipment",
"hsClassification": {
"hsCode": "3004.90",
"hsCodeVersion": "2022",
"hsDescription": "Medicaments consisting of mixed products... for retail sale"
},
"incotermsClassification": {
"incotermsRule": "CIF",
"incotermsVersion": "2020",
"incotermsNamedPlace": "Mombasa Port, Kenya",
"incotermsRiskTransferEvent": "urn:epc:id:event:obj-001-onboard-mumbai",
"incotermsInsuranceRequired": true,
"incotermsModeOfTransport": "sea"
}
}
}
The combination of HS code and INCOTERMS® in a single credential provides the complete commercial identity of a trade transaction: HS code defines what is being traded and under what regulatory regime; INCOTERMS® define where commercial responsibility transfers. Together, they enable fully automated customs processing, duty assessment, insurance claims, and commercial dispute resolution — without human interpretation.
Because VSC captures both the INCOTERMS® rule and the complete event chain with timestamps and locations, a VSC verifier can programmatically determine commercial liability for any event in the supply chain:
Automated INCOTERMS Liability Determination — CIF Mumbai to Mombasa
Automated INCOTERMS liability determination: under CIF, risk transfers when goods are placed on board the vessel in Mumbai (marked by the red line), even though the seller pays freight to Mombasa. A temperature excursion during ocean freight is buyer's risk.
The VSC verifier performs the following automated liability determination:
incotermsRule from the shipment credential;incotermsRiskTransferEvent in the event chain;incotermsInsuranceRequired is true (CIF/CIP), verify that an insurance credential is linked and that coverage meets the minimum ICC requirements for the stated INCOTERMS® version;Under INCOTERMS® 2020, CIF and CIP require the seller to provide insurance coverage. The requirements differ:
VSC verifiers MAY validate that insurance
credentials linked to CIF/CIP shipments meet these minimum
requirements by checking the insurance coverage level, insured
value, and the ICC clause reference against the
incotermsVersion declared.
INCOTERMS® 2010 CIP required only ICC (C) minimum cover.
INCOTERMS® 2020 CIP requires ICC (A) all-risk cover. A CIP
shipment under 2010 rules with only ICC (C) cover is compliant;
the same coverage under 2020 rules is non-compliant. The
incotermsVersion field is therefore essential for
correct insurance verification. Always verify the version before
applying coverage requirements.
INCOTERMS® combined with the VSC event chain creates a self-proving evidence package for commercial disputes:
This transforms commercial dispute resolution from a document discovery exercise (weeks to months) into a cryptographic verification exercise (seconds). The evidence is the credential chain itself — tamper-evident, DID-signed, and independently verifiable by any party without access to any party's internal systems.
A VSC Issuer SHOULD include the
incotermsClassification object in the credential subject
of any event credential that represents a commercial shipment. When
included, the incotermsRule,
incotermsVersion, and incotermsNamedPlace
fields MUST be populated. The
incotermsRiskTransferEvent field
SHOULD reference the specific EPCIS event
where risk transfers under the declared rule.
INCOTERMS® are referenced in virtually every international sales contract, commercial invoice, letter of credit, and marine insurance policy. Without INCOTERMS®, a verifiable supply chain can determine what happened but cannot determine who bears commercial responsibility. The INCOTERMS® version field is essential because rules change between editions — notably, INCOTERMS® 2020 CIP requires ICC (A) all-risk insurance while INCOTERMS® 2010 CIP required only ICC (C) minimum cover. The risk transfer event reference enables automated liability determination for damage, delay, and loss.
A conformant issuer MUST produce a valid credential containing:
(a) incotermsRule with a valid three-letter
INCOTERMS® 2020 rule code; (b) incotermsVersion
with the applicable edition year; (c)
incotermsNamedPlace with the geographic location
stipulated in the contract; and (d)
incotermsRiskTransferEvent referencing a valid
event in the chain. A conformant verifier MUST validate the
INCOTERMS® rule against the INCOTERMS® edition stated and MUST
reject rules not defined in that edition. For CIF and CIP, the
verifier SHOULD verify that a linked insurance credential meets
the minimum coverage requirements for the declared version.
ICC INCOTERMS® 2020; ICC Publication No. 723E; UN Convention on Contracts for the International Sale of Goods (CISG) Article 31–34; UCP 600 Articles 19–27.
A VSC Verifier MAY implement automated
liability determination using the INCOTERMS® rule and the event
chain. When implemented, the verifier MUST
compare the timestamp of any adverse event (damage, excursion, delay,
loss) to the incotermsRiskTransferEvent timestamp. If
the adverse event occurred before the risk transfer point, the
verifier MUST signal "Seller bears risk." If after, the verifier
MUST signal "Buyer bears risk." For CIF and CIP shipments, the
verifier MUST indicate whether insurance coverage is available
based on the linked insurance credential.
Commercial disputes over cargo loss and damage cost the global trade industry billions annually in legal fees, survey costs, and delayed settlements. Automated INCOTERMS-based liability determination using cryptographically verifiable event timestamps eliminates ambiguity about when risk transferred and which party bears responsibility. This is particularly critical for temperature-sensitive pharmaceutical shipments where excursion timing relative to the risk transfer point determines whether the manufacturer or the buyer bears the loss.
Given a CIF shipment with risk transfer at "on board Mumbai" (T=0), a temperature excursion at T+24h (ocean transit), and an insurance credential with ICC (C) cover at 110%: the verifier MUST signal "Buyer bears risk · Insurance claim available · ICC (C) cover confirmed at 110%." If no insurance credential is linked to a CIF shipment, the verifier MUST signal "CIF requires insurance · No insurance credential found."
ICC INCOTERMS® 2020 Rules CIF and CIP; Institute Cargo Clauses (A), (B), (C); Marine Insurance Act 1906 (UK); UCP 600 Article 28 (Insurance Documents).
This section describes motivating scenarios for VSC. Each use case includes actors, preconditions, a nominal flow, failure modes, and a mapping to the requirements it motivates. Use cases are non-normative.
Nominal flow:
VscObjectEventCredential, with an extension for geospatial data and the relevant commodity type.Failure modes:
Requirements motivated: REQ-F01, REQ-F02, REQ-F03, REQ-F04, REQ-F07, REQ-NF03.
Part 1 — Actors, Preconditions, and Custody Transfer Flow
Figure 2a — Actors, preconditions, and the four-step custody transfer flow from manufacturer commissioning through wholesale distribution to final pharmacy delivery.
Nominal flow:
commissioning) as a signed VSC credential.shipping) credential for the pallet SSCC, referencing the commissioned item credentials via AggregationEvent.receiving) and issues their own credential referencing the manufacturer's shipping credential by its credential identifier.Part 2 — Pharmacy Verification Gate and Recall Propagation
Figure 2b — Pharmacy verification pipeline (top) and recall revocation propagation flow (bottom).
Figure 4 — VSC Verifiable Presentation (VP) as it would appear to a customs officer, bank, or regulator. The card shows the complete shipment identity: product classification (HS code), commercial terms (INCOTERMS® CIF), trade finance (LC), the four-event custody chain with DID verification for each actor, cold chain temperature log with excursion flagged, and a composite trust score with all verification checks listed.
Failure modes:
Part 3 — Failure Modes, Mitigations, and Requirements Traceability
Figure 2c — Three failure modes with mitigations and the seven requirements motivated by this use case.
Requirements motivated: REQ-F01, REQ-F02, REQ-F03, REQ-F04, REQ-F05, REQ-F08, REQ-NF01.
Part 1 — Actors, Preconditions, and Verifiable Presentation Assembly
Figure 3a — Three trade actors, the customs Trusted Issuer Registry, and how the exporter assembles three credential types into a single Verifiable Presentation for automated clearance.
Part 2 — Automated Clearance Pipeline and Selective Disclosure
Figure 3b — The three-step automated customs clearance pipeline from VP submission through automated verification to clearance decision, with selective disclosure detail showing only required fields revealed.
Nominal flow:
Part 3 — Failure Modes, Mitigations, and Requirements Traceability
Figure 3c — Two failure modes with specific mitigations and the five requirements motivated by the customs clearance use case.
Failure modes:
Requirements motivated: REQ-F05, REQ-F06, REQ-F07, REQ-NF02, REQ-NF03.
Nominal flow:
Failure modes:
Requirements motivated: REQ-F01, REQ-F04, REQ-F06, REQ-NF01, REQ-NF04.
Nominal flow:
revoked status and MUST reject the credential.Nominal flow:
Failure modes:
Requirements motivated: REQ-F05, REQ-F07, REQ-NF02, REQ-NF05.
Part 1 — Indian Pharma Supply Chain Actors and QR Code Mandate Scope
Figure 7a — Indian pharmaceutical supply chain actors, QR Code mandate scope under Drugs Rules 1945 G.S.R. 922(E), and key CDSCO regulatory statistics for FY 2024–25. Source: PIB Release, 24 March 2026 [citation:1].
Part 2 — VSC-Enabled QR Code Verification Flow
Figure 7b — VSC-enabled QR Code verification flow from API supplier through manufacturer to retail pharmacy/consumer. Each QR Code resolves to a VSC credential with DID-based proof of authenticity.
Nominal flow:
Part 3 — Failure Modes, Mitigations, and Requirements Traceability
Figure 7c — Three failure modes with mitigations, and the seven requirements motivated by the Indian pharma track-and-trace use case. Regulatory statistics from CDSCO FY 2024–25 [citation:1].
Failure modes:
Requirements motivated: REQ-F01, REQ-F03, REQ-F04, REQ-F05, REQ-F07, REQ-F08, REQ-NF01.
Nominal flow:
Failure modes:
Requirements motivated: REQ-F01, REQ-F02, REQ-F03, REQ-F04, REQ-F07, REQ-F09, REQ-NF04.
Nominal flow:
Failure modes:
hsDescription field states "Food supplement containing vitamins and minerals." The verifier's classification engine detects the mismatch between the numeric code (pharmaceutical) and the textual description (food supplement, which belongs in HS 2106.90). The verifier flags the credential for manual classification review and suspends duty assessment pending reclassification.hsCodeVersion field and signals a classification review requirement, preventing incorrect duty assessment.Requirements motivated: REQ-F01, REQ-F03, REQ-F05, REQ-F07, REQ-F11, REQ-F12, REQ-NF03, REQ-NF04.
Part 1 — Complete Commercial Picture: HS Code + INCOTERMS® + Event Chain
Figure 10a — The complete commercial picture: one VSC credential combines product identity (HS code), commercial terms (INCOTERMS®), and verifiable journey (event chain) to answer every question a customs authority, insurer, bank, arbitrator, or regulator could ask.
Part 2 — Automated Dispute Resolution: CIF Temperature Excursion
Figure 10b — Automated dispute resolution: a CIF shipment with a temperature excursion during ocean freight. The VSC verifier determines that the excursion occurred after risk transferred to the buyer, and confirms insurance coverage is available — in seconds, not weeks.
Nominal flow:
incotermsRiskTransferEvent in the INCOTERMS® classification.Failure modes:
incotermsVersion field and signals "INCOTERMS® version conflict — contract specifies 2020, credential declares 2010." The buyer and seller must agree on the applicable version before liability can be determined.incotermsInsuranceRequired: true) but no insurance credential is linked. The verifier signals "CIF requires insurance — no insurance credential found. Seller has not fulfilled CIF obligations." The buyer may reject the documents or demand proof of insurance before acceptance.incotermsRiskTransferEvent reference. The verifier cannot programmatically determine when risk transferred and signals "Risk transfer event not specified — manual determination required."Requirements motivated: REQ-F01, REQ-F03, REQ-F11, REQ-F13, REQ-F14, REQ-NF03, REQ-NF04.
Nominal flow:
lcPresentationStatus is updated to "paid" and the titleTransferCondition ("upon_payment") is recorded as satisfied, transferring title to the buyer. The entire process from VP submission to funds credited: approximately 30 seconds.Failure modes:
Requirements motivated: REQ-F01, REQ-F03, REQ-F07, REQ-F11, REQ-F13, REQ-F15, REQ-F16, REQ-NF03.
Figure 4 — The 25 VSC Conformance Gates. Requirements are organized into five horizontal rows: Core Event Architecture (01–05) covers EPCIS mapping, semantics preservation, DID binding, event linking, and selective disclosure. Trust & Authority (06–10) covers batch traceability, issuer authorization, credential status, chain integrity detection, and trust framework references. Normative Vocabulary Bindings (11–16) covers HS code inclusion and transformation, INCOTERMS® binding and automated liability, and trade finance instrument binding with automated LC compliance. Architectural Frameworks (17–20) covers the Event Matrix, dimension extensibility, machine-executable regulatory rules, and rule versioning. Non-Functional Requirements (NF01–NF05) covers scalability, privacy, interoperability, extensibility, and long-term verifiability.
The following requirements are derived from the use cases in §11 Use Cases and from the regulatory and standards landscape described in §1 Introduction. Each requirement is identified by a stable identifier, states the conformance level, provides a rationale grounded in published sources, and includes a testability statement to guide conformance test development.
All VSC-conformant implementations MUST also satisfy the MUST-level requirements of [[VC-DATA-MODEL]]. The requirements below are additional VSC-specific requirements that go beyond the base VC Data Model.
The following table provides a high-level overview of all twenty functional and five non-functional requirements. Each requirement is linked to its detailed specification below and cross-referenced to the use cases that motivate it.
| ID | Title | Level | Conformance Class | Use Cases |
|---|---|---|---|---|
| REQ-F01 | Event-to-Credential Mapping | MUST | Issuer | UC-01–04, UC-07–11 |
| REQ-F02 | Event Semantics Preservation | MUST | Issuer | UC-01, UC-02, UC-08 |
| REQ-F03 | Issuer DID Binding | MUST | Issuer | UC-01–05, UC-07–11 |
| REQ-F04 | Event Linking | SHOULD | Issuer | UC-01–04, UC-07–09 |
| REQ-F05 | Selective Disclosure | MUST | Issuer, Verifier | UC-02, UC-03, UC-06, UC-07, UC-09 |
| REQ-F06 | Batch and Lot Traceability | SHOULD | Issuer | UC-03, UC-04 |
| REQ-F07 | Issuer Authority Verification | MUST | Verifier | UC-01–03, UC-06–11 |
| REQ-F08 | Credential Status and Revocation | MUST | Issuer, Verifier | UC-02, UC-05, UC-07 |
| REQ-F09 | Chain Integrity Detection | SHOULD | Verifier | UC-01, UC-02, UC-04, UC-08 |
| REQ-F10 | Trust Framework Reference | SHOULD | Issuer, Verifier | UC-01–03 |
| REQ-F11 | HS Code Inclusion | SHOULD | Issuer | UC-03, UC-09–11 |
| REQ-F12 | HS Transformation in Manufacturing | MAY | Issuer | UC-04, UC-09 |
| REQ-F13 | INCOTERMS® Inclusion | SHOULD | Issuer | UC-03, UC-10, UC-11 |
| REQ-F14 | Automated INCOTERMS Liability | MAY | Verifier | UC-10 |
| REQ-F15 | Trade Finance Instrument Binding | MAY | Issuer | UC-11 |
| REQ-F16 | Automated LC Compliance | MAY | Verifier | UC-11 |
| REQ-F17 | Event Matrix Representation | MAY | Issuer, Verifier | UC-01–11 |
| REQ-F18 | Dimension Extensibility | MUST | Verifier | All |
| REQ-F19 | Machine-Executable Regulatory Rules | MAY | Verifier | All |
| REQ-F20 | Rule Versioning and Lifecycle | MUST | Verifier | All |
| REQ-NF01 | Scalability | MUST | Issuer, Verifier | UC-02, UC-04, UC-05, UC-07 |
| REQ-NF02 | Privacy Preservation | SHOULD | Issuer, Verifier | UC-03, UC-06 |
| REQ-NF03 | Interoperability | MUST | Issuer, Verifier | UC-01, UC-03, UC-09–11 |
| REQ-NF04 | Extensibility | SHOULD | Issuer | UC-04, UC-08–10 |
| REQ-NF05 | Long-term Verifiability | SHOULD | Verifier | UC-06 |
This section specifies the twenty functional requirements (REQ-F01 through REQ-F20) that govern VSC-conformant implementations. Each requirement includes its conformance level, the conformance class to which it applies, a rationale citing published standards or regulations, and a testability statement suitable for inclusion in a formal conformance test suite.
A VSC Issuer MUST support producing a [[VC-DATA-MODEL]]-conformant Verifiable Credential for each of the five [[EPCIS]] v2.0 event types: ObjectEvent, AggregationEvent, TransformationEvent, TransactionEvent, and AssociationEvent. The mapping applied MUST conform to the normative Event-to-Credential Mapping defined in the VSC Core Data Model specification.
EPCIS v2.0 [[EPCIS]] defines five event types covering the full range of supply chain observations. Requiring support for all five ensures that VSC can represent any supply chain event without loss of semantics. The GS1 [[GS1-CBV]] provides the controlled vocabulary used within these events.
A test vector set MUST be published containing at least one syntactically and semantically valid EPCIS event document for each of the five event types. A conformant issuer MUST produce a valid, verifiable Verifiable Credential for each test vector that: (a) passes [[VC-DATA-MODEL]] validation; (b) preserves all EPCIS fields specified in REQ-F02; and (c) carries a valid [[VC-DATA-INTEGRITY]] proof.
[[EPCIS]] Section 7; [[GS1-CBV]]; [[VC-DATA-MODEL]] Section 4.
The Event-to-Credential Mapping MUST
preserve, without loss or transformation, the following fields from
the source [[EPCIS]] event:
eventTime, eventTimeZoneOffset,
recordTime, eventType,
action, bizStep,
disposition, readPoint,
bizLocation, epcList /
inputEPCList / outputEPCList (as
applicable to the event type), and
quantityList / inputQuantityList /
outputQuantityList (as applicable).
Extension fields (ILMD, sensor elements) MUST
also be preserved where present.
Regulatory requirements under [[DSCSA]] and [[EUDR]] require that the specific event-time, location, and identifier information are auditable and have not been altered. Loss of any of these fields would undermine the legal validity of the credential as a regulatory record. The [[ISO28000]] supply chain security management framework similarly requires complete and accurate event records.
For each test vector in REQ-F01: a conformant parser applied to the resulting credential MUST recover values bit-for-bit identical to the source EPCIS event for each listed field. Automated round-trip tests MUST be defined in the conformance test suite.
[[EPCIS]] Sections 7–9; [[DSCSA]]; [[EUDR]] Article 9; [[ISO28000]].
Every Verifiable Credential representing a Supply Chain Event
MUST include an issuer
value using [[DID-CORE]] syntax. The DID MUST
be resolvable to a DID Document containing the public key material
used to verify the credential's [[VC-DATA-INTEGRITY]] proof.
A VSC Issuer MUST NOT use a bare
HTTP URL or an opaque identifier as the issuer value.
The core security property of VSC is the cryptographic binding between the event assertion and the asserting party's identity. Without a resolvable DID, a verifier cannot retrieve the public key needed to verify the signature, making the credential unverifiable. [[DID-CORE]] provides the standardized mechanism for this binding, supported by existing W3C infrastructure.
Given a VSC event credential: (a) the issuer value
MUST conform to the DID syntax rule defined in [[DID-CORE]]
Section 3.1; (b) resolving the DID via a conformant DID resolver
MUST return a DID Document; and (c) the DID Document MUST contain
a verificationMethod entry whose public key
successfully verifies the credential's proof.
[[DID-CORE]] Sections 3, 7; [[VC-DATA-MODEL]] Section 4.5; [[VC-DATA-INTEGRITY]].
A VSC Issuer SHOULD include, in
event credentials that represent a step in a multi-party custody
chain, a reference to the credential identifier(s) of immediately
preceding events in the chain. References MUST
use the id property of the referenced credential,
expressed as a URI, in the credential subject. A VSC Verifier
SHOULD follow event links to reconstruct
the chain and verify each linked credential.
Custody chain reconstruction is required by [[DSCSA]] (full tracing from manufacturer to dispenser), [[EUDR]] (origin to importer), and [[EU-BEV]] (material to battery). Without event linking, a verifier cannot confirm that consecutive custody transfers are contiguous or that no unauthorized party intervened. The linking pattern is consistent with the linked data approach of [[JSON-LD]].
Given a two-credential chain where credential B references credential A by URI: (a) a conformant verifier MUST resolve and verify credential A when requested; (b) if credential A's ID is altered, the verifier MUST detect the broken link; (c) a verifier MUST signal non-verifiability if a referenced credential cannot be retrieved.
[[DSCSA]]; [[EUDR]] Article 4; [[EU-BEV]] Annex XIII; [[JSON-LD]] Section 3.
A VSC Issuer MUST produce event credentials using a proof format that supports Selective Disclosure. Supported proof formats include [[BBS-2023]] and [[SD-JWT]]. A VSC Verifier MUST be capable of verifying selective disclosure presentations produced by at least one of these proof formats. Selective disclosure presentations MUST NOT allow an adversary to infer unrevealed field values from the presented proof.
Supply chain data contains commercially sensitive information (supplier identities, pricing, production volumes) that participants are not willing to share beyond regulatory minimum disclosure. [[GDPR]] Article 5(1)(c) data minimization principle requires that only necessary data be shared. [[BBS-2023]] and [[SD-JWT]] are standardized selective disclosure mechanisms with W3C and IETF backing respectively.
Given a credential with N fields: (a) a conformant holder MUST be able to produce a presentation revealing any subset of k fields (1 ≤ k < N) while maintaining proof validity; (b) the verifier MUST accept the presentation for the revealed fields; (c) the verifier MUST NOT be able to recover the values of the unrevealed fields from the proof material; (d) a tampered proof MUST be rejected.
[[BBS-2023]]; [[SD-JWT]]; [[GDPR]] Article 5(1)(c); [[VC-DATA-MODEL]] Section 5.9; [[NIST-SP800-53]] SI-12.
A VSC Issuer SHOULD support batch-level and lot-level identifiers (e.g., LGTIN as defined in [[GS1-CBV]]) in event credentials, in addition to serialized-item identifiers (SGTIN, SSCC). Implementations supporting batch traceability MUST ensure that batch identifiers are expressed using GS1 EPCIS quantity element syntax or an equivalent normative vocabulary.
Not all supply chain scenarios track at the per-item serialization level. Bulk commodities (agricultural products, chemicals, minerals) are tracked at batch or lot level. Batch identifiers are mandatory for EUDR due diligence claims and EU battery material traceability. Requiring per-item identifiers would make VSC undeployable for bulk commodity supply chains.
A conformant issuer MUST produce a valid credential carrying an LGTIN quantity element. A conformant verifier MUST parse and validate this element without error.
[[EPCIS]] Section 7.3.3; [[GS1-CBV]] Section 7; [[EUDR]] Article 9(1)(d); [[EU-BEV]] Annex XIII.
A VSC Verifier MUST verify that the credential issuer's DID is authorized to assert events for the claimed business context when an Issuer Registry is referenced in the credential or specified by the verifier's Trust Framework. A verifier MUST NOT accept a credential whose issuer DID does not appear in a required issuer registry. Where no issuer registry is required by the verification context, the verifier SHOULD surface a warning indicating that issuer authority has not been independently confirmed.
Cryptographic proof of integrity (signature verification) is necessary but not sufficient for supply chain verifiability. An attacker can create a validly signed credential from a DID they control for a business step they are not authorized to assert. Checking the issuer against an authoritative registry — analogous to the certificate authority model in TLS — closes this gap. This pattern is aligned with [[NIST-SP800-53]] IA-5 (Authenticator Management) and the authorization model in [[RFC6749]].
Given a credential whose issuer DID is not in the verifier's configured issuer registry: the verifier MUST reject the credential and MUST return an error code distinguishing "issuer not authorized" from "signature invalid." A credential whose issuer IS in the registry MUST be accepted (assuming valid signature and status).
[[NIST-SP800-53]] IA-5; [[RFC6749]] Section 1.1; [[ISO28000]] Section 6.5; [[DSCSA]] Section 582(c).
Every VSC event credential MUST include
a credentialStatus property referencing a
machine-readable status endpoint conformant with
[[VC-DATA-MODEL]] Section 7. A VSC Verifier
MUST check the status of each credential
presented before accepting it. Cached revocation status
information SHOULD NOT be relied upon
for more than 24 hours for high-stakes verification contexts
(pharmaceutical, food safety) and MAY
be cached for up to 7 days in lower-stakes contexts.
Product recalls ([[DSCSA]], EU General Product Safety Regulation) require that invalid credentials be rejected promptly. A revocation mechanism that verifiers cannot check renders recall notifications ineffective. Cache lifetime limits balance performance (avoiding status service overload) against timeliness of revocation propagation, consistent with [[NIST-SP800-53]] SI-7.
(a) A verifier presented with a revoked credential MUST reject
it and return a revoked status indicator.
(b) A verifier with a stale (>24h) cached status for a
high-stakes credential MUST re-fetch the status before accepting
the credential.
(c) A verifier MUST distinguish "revoked" from "status service
unreachable" and SHOULD treat the latter as a verification failure.
[[VC-DATA-MODEL]] Section 7; [[DSCSA]] Section 582(h); [[NIST-SP800-53]] SI-7.
A VSC Verifier SHOULD detect gaps in an Event Chain — specifically, cases where a credential references a predecessor credential that cannot be retrieved, verified, or that has been revoked — and MUST signal non-verifiability of the chain in such cases, with a specific error distinguishing: (a) missing predecessor, (b) invalid predecessor signature, (c) revoked predecessor, and (d) broken link (credential ID does not resolve).
An incomplete event chain may indicate either accidental data loss or a deliberate attempt to obscure an unauthorized custody transfer. Undifferentiated error signaling would prevent operators and regulators from distinguishing these cases. Distinct error codes enable targeted remediation. This is consistent with [[NIST-SP800-53]] AU-12 (Audit Record Generation) and the DSCSA requirement for complete, unbroken tracing.
Given a three-credential chain A→B→C where credential B's predecessor reference is corrupted: the verifier MUST return a "broken link" error specifically identifying B. A chain where B has been revoked MUST return a "revoked predecessor" error. A complete valid chain MUST return success.
[[NIST-SP800-53]] AU-12; [[DSCSA]] Section 582(j); [[ISO28000]] Section 6.4.
A VSC event credential SHOULD include
a machine-readable reference to the Trust Framework under
which it was issued, expressed as a URI in the credential's
termsOfUse or evidence property. A
VSC Verifier SHOULD use this
reference to determine which Issuer Registry to consult
for authority verification (REQ-F07).
Supply chains operate under sector-specific governance frameworks (pharmaceutical, food, automotive, etc.) with different authorization rules. Embedding a trust framework URI in the credential allows verifiers to apply the correct governance rules automatically, enabling cross-sector interoperability without bilateral configuration. This pattern follows the trust framework approach used in the [[PEPPOL]] e-procurement network.
A credential carrying a trust framework URI MUST allow a verifier to dereference the URI and retrieve a machine-readable document listing authorized issuer DIDs. A credential lacking a trust framework URI MUST be accepted with a warning (not rejected) by a verifier that does not require one.
[[VC-DATA-MODEL]] Section 5.12; [[PEPPOL]]; [[TRACEABILITY-INTEROP]] Section 4.
A VSC Issuer SHOULD include the
hsClassification object in the credential subject of
any event credential that describes a product, commodity, or trade
item. When included, the hsCode and
hsCodeVersion fields MUST
be populated. The hsDescription field
SHOULD be populated with the
WCO-recommended description.
HS codes are used by 200+ countries for customs clearance, tariff
determination, trade statistics, and Rules of Origin. Embedding
HS codes in VSC credentials enables instant regulatory
classification without requiring customs authorities to parse
product descriptions or maintain proprietary code mappings. The
hsCodeVersion field addresses the WCO's five-year
revision cycle, ensuring credentials remain verifiable across
nomenclature boundaries.
A conformant issuer MUST produce a valid credential containing:
(a) hsCode with a valid 6-digit HS code;
(b) hsCodeVersion with the applicable WCO nomenclature
year; (c) hsDescription with the WCO-recommended
textual description; and optionally (d) hsCodeNational
and hsCodeJurisdiction for jurisdiction-specific
declarations. A conformant verifier MUST parse and validate the
HS code against the WCO nomenclature for the stated version.
WCO HS Convention (1983) Articles 3, 4; WCO HS Nomenclature 2022 Edition; WTO Trade Facilitation Agreement Article 10.
A VSC Issuer MAY include input HS classifications and an HS change indicator in TransformationEvent credentials. When included, the input HS classifications MUST reference the HS codes from the input EPCs' credentials, and the output HS classification MUST be present. The HS change indicator MUST specify whether a change occurred at the Chapter (2-digit), Heading (4-digit), or Subheading (6-digit) level.
In HS nomenclature, parts and accessories often fall under different headings than finished goods. A TransformationEvent that captures this classification change provides the data foundation for automated Rules of Origin verification via Change in Tariff Classification (CTC). Most FTAs use CTC as the primary origin criterion.
Given a TransformationEvent with input HS "2924.29" (Chapter 29) and output HS "3004.90" (Chapter 30), a conformant verifier MUST detect the chapter-level change and signal "CTC Satisfied at Chapter Level." A TransformationEvent where input and output HS codes are in the same heading MUST signal "No CTC Change."
WCO HS Convention; WTO Agreement on Rules of Origin Article 2; EU-India FTA Rules of Origin Protocol; USMCA Chapter 4.
This section specifies the five non-functional requirements (REQ-NF01 through REQ-NF05) that govern performance, privacy, interoperability, extensibility, and long-term verifiability characteristics of VSC-conformant implementations.
A VSC-conformant implementation MUST be capable of issuing and verifying event credentials at a rate commensurate with enterprise supply chain event volumes. As a benchmark, conformant implementations SHOULD be capable of verifying a ten-credential event chain in under 2 seconds under normal network conditions, and of issuing 1,000 credentials per minute on commodity cloud hardware. These benchmarks are indicative; normative performance requirements will be specified in the conformance test suite.
Large retail and pharmaceutical supply chains generate millions of EPCIS events per day. A verifiable credential system that cannot sustain production event volumes will not be adopted. Battery passport use case (UC-04) requires verification of chains spanning thousands of credentials. The benchmark figures are derived from GS1's published EPCIS throughput guidance and typical cloud instance capabilities as of 2024.
The conformance test suite MUST include a load test that exercises issuance at 1,000 credentials per minute and chain verification of 10 credentials within 2 seconds, recording pass/fail and actual throughput figures.
[[EPCIS]] Appendix D; [[ISO28000]].
VSC implementations SHOULD avoid requiring globally unique, long-lived correlatable identifiers for all participants in all verification contexts. Where pairwise [[DID-CORE]] identifiers are available, implementations SHOULD use them. Credential schemas MUST NOT require the inclusion of personally identifiable information (PII) beyond what is required for the regulatory context in question.
[[GDPR]] Article 25 (Data Protection by Design) requires that data minimization and privacy-by-design be embedded in system design. Supply chain credentials frequently traverse jurisdictional boundaries and may be subject to multiple data protection regimes. Long-lived correlatable identifiers enable tracking of supply chain participant behavior across contexts beyond the intended disclosure.
A conformance test MUST verify that a credential schema does not include mandatory PII fields beyond regulatory minimum. A verifier MUST NOT require a holder to present more fields than the minimum needed for the stated verification purpose.
[[GDPR]] Articles 5, 25; [[NIST-SP800-53]] AR-7; [[VC-DATA-MODEL]] Section 10.
A VSC event credential issued by one conformant implementation MUST be verifiable by any other conformant implementation without prior bilateral configuration. Implementations MUST use the VSC JSON-LD context URI (to be defined in the VSC Core Data Model) and MUST NOT require proprietary extensions for basic credential exchange. Implementations SHOULD conform to the [[TRACEABILITY-INTEROP]] HTTP API profile for credential exchange.
The primary value proposition of VSC is cross-organizational verifiability. Without interoperability, VSC becomes a series of proprietary bilateral integrations — the same problem it is designed to solve. The [[TRACEABILITY-INTEROP]] profile provides a tested, deployed HTTP API standard for credential exchange in supply chain contexts.
The VSC interoperability test suite MUST include an implementation-A-issues / implementation-B-verifies scenario for each of the five credential types. A credential issued by implementation A MUST be verified successfully by implementation B without any bilateral pre-configuration.
[[TRACEABILITY-INTEROP]]; [[VC-DATA-MODEL]] Section 1.3; [[JSON-LD]] Section 5.
The VSC credential schema SHOULD support sector-specific and jurisdiction-specific extension vocabularies without invalidating base credential verification. Extension vocabularies MUST be expressed using [[JSON-LD]] context extension mechanisms. Verifiers that do not understand an extension MUST still be able to verify the base credential.
Supply chain verticals (pharmaceutical, food, automotive, aerospace) have distinct data requirements. A rigid schema would require a separate specification for each vertical. The JSON-LD extension mechanism provides a standards-based, proven approach to extensibility, as demonstrated by [[TRACEABILITY-V1]] and [[UNTP]].
A credential carrying an unknown JSON-LD extension term MUST be parsed and its base fields MUST be verifiable by a conformant verifier that does not have the extension context loaded. Verifier MUST NOT fail on unknown extension terms.
[[JSON-LD]] Sections 5, 9; [[TRACEABILITY-V1]]; [[UNTP]].
VSC-conformant implementations SHOULD support verification of event credentials issued up to 10 years prior. This requires that: (a) issuer DID key history is preserved and accessible, either via the DID Document or a trust-framework-maintained historical key archive; and (b) the cryptographic algorithms used for signing remain secure and supported for the expected credential lifetime.
Regulatory audit requirements in pharmaceutical (FDA, EMA), food safety (FDA FSMA), and financial sectors require records retention of 5–10 years. A credential that cannot be verified after its issuer rotates keys or deactivates its DID provides no audit value. Key history preservation is analogous to the certificate transparency log model in TLS.
A conformance test MUST simulate DID key rotation and verify that a credential signed before rotation can still be verified using the pre-rotation key retrieved from the DID Document history or trust framework archive.
[[DID-CORE]] Section 7.2; [[NIST-SP800-53]] SI-12; [[DSCSA]] Section 582(n).
The security considerations of [[VC-DATA-MODEL]] Section 11 and [[DID-CORE]] Section 10 apply in full. This section identifies supply-chain-specific threats using the [[STRIDE]] threat classification framework and specifies mitigations.
VSC threats are analyzed at the four primary trust boundaries: (1) issuer key material, (2) event credential content, (3) event chain linkage, and (4) issuer registry integrity.
| ID | STRIDE Category | Threat | Severity | Mitigation | Req |
|---|---|---|---|---|---|
| T-01 | Spoofing | Adversary creates a fabricated event credential using a DID they control, not authorized for the business context. | High | Issuer authority verification against an issuer registry (REQ-F07). Trust framework reference in credential (REQ-F10). | REQ-F07, REQ-F10 |
| T-02 | Tampering | Adversary modifies event data (e.g., alters origin coordinates or timestamps) after credential issuance. | High | Cryptographic proof over all credential fields (REQ-F03). Selective disclosure proofs protect unrevealed fields (REQ-F05). | REQ-F03, REQ-F05 |
| T-03 | Repudiation | Issuer denies having issued a specific event credential. | Medium | Non-repudiation is provided by the issuer's DID-bound cryptographic signature. Verifiers SHOULD log verification results. | REQ-F03 |
| T-04 | Information Disclosure | Verifier extracts commercially sensitive supply chain data from a credential beyond what was intended for disclosure. | Medium | Selective disclosure (REQ-F05) ensures unrevealed fields cannot be recovered from proof material. Pairwise DIDs (REQ-NF02) limit correlation. | REQ-F05, REQ-NF02 |
| T-05 | Denial of Service | Adversary floods the credential status service or DID resolution endpoint, preventing legitimate verification. | Medium | Status service SHOULD implement rate limiting and geographic redundancy. Verifiers SHOULD implement caching per REQ-F08 cache lifetime limits. | REQ-F08 |
| T-06 | Elevation of Privilege | Adversary registers a DID in an issuer registry without meeting the registry's eligibility requirements. | High | Issuer registry governance is out of scope for VSC but trust frameworks MUST define eligibility criteria. Credential SHOULD reference the registry (REQ-F10). | REQ-F10 |
A malicious actor may attempt to inject fabricated Supply Chain Events by creating validly signed credentials from an authorized DID for events that never occurred, or from an unauthorized DID. VSC implementations MUST verify issuer identity and authority as specified in REQ-F03 and REQ-F07. Verification SHOULD include checking the issuer's DID against the Issuer Registry referenced in the credential or the verifier's trust framework configuration.
Physical-world corroboration (IoT sensor data, GPS timestamps, third-party inspection certificates referenced as linked credentials) provides additional assurance that event credentials correspond to actual physical events. VSC implementations SHOULD support referencing corroboration evidence as linked credentials in the credential evidence property.
A valid Verifiable Credential for one shipment may be replayed in a presentation for a different shipment, or a credential may be presented outside its intended time window.
Implementations SHOULD include one or more of the following context-binding mechanisms to mitigate replay:
audience or equivalent field identifying the intended verifier DID, preventing use of the credential by a different verifier.validFrom and SHOULD include validUntil values. Verifiers MUST reject credentials outside their validity period.A verifier may receive an Event Chain from which one or more credentials have been omitted — either accidentally (data loss) or deliberately (to conceal an unauthorized custody transfer). VSC-conformant verifiers MUST detect gaps in event chains and signal non-verifiability with specific error codes as defined in REQ-F09. Implementations SHOULD treat a broken chain as a verification failure unless the verification context explicitly permits incomplete chains (e.g., for partial audit queries).
If an issuer's DID private key is compromised, an adversary can issue fraudulent event credentials indistinguishable from legitimate ones. Issuers MUST implement key management practices consistent with [[NIST-SP800-53]] IA-5, including:
The VSC Trust Framework specification SHOULD define sector-specific key management requirements and mandatory incident response procedures for key compromise events.
The privacy considerations of [[VC-DATA-MODEL]] Section 10 apply in full. This section identifies supply-chain-specific privacy risks and recommended mitigations.
Supply chain event credentials frequently contain information that is commercially sensitive: supplier identities, production volumes, pricing signals embedded in batch sizes, and logistics routing. Disclosing this information beyond the minimum required by a verification context:
VSC implementations MUST support selective disclosure (REQ-F05) and SHOULD use pairwise DIDs (REQ-NF02) to minimize information disclosure.
If all credentials issued by a given Supply Chain Actor use the same long-lived DID, a verifier can correlate all events asserted by that actor across time and contexts. This enables surveillance of supply chain participants' business activity beyond the scope of individual verification requests. Implementations SHOULD use pairwise DIDs per trading relationship, or short-lived credential identifiers, to limit cross-context correlation. Zero-knowledge proof mechanisms (e.g., [[BBS-2023]]) SHOULD be preferred for contexts where correlation risk is high.
Some supply chain events may involve personally identifiable information (e.g., the name of a quality inspector, a driver's identity, or patient-level pharmaceutical dispensing data). VSC credential schemas MUST NOT require PII fields beyond the regulatory minimum. Where PII is required by regulation, issuers MUST apply selective disclosure to prevent disclosure of PII to parties who do not require it, consistent with [[GDPR]] Article 25 and analogous data protection frameworks.
This specification does not define a user interface. However, implementations of VSC-conformant systems that expose user interfaces for credential issuance, presentation, or verification SHOULD conform to WCAG 2.1 Level AA guidelines. In particular:
Supply chains are global. VSC implementations must be prepared to handle data from multiple locales and character sets.
Every trade regulation, without exception, is a conditional statement. DSCSA §582 requires product tracing if the product is a prescription drug sold in the United States. EUDR Article 3 requires due diligence if the commodity is listed in Annex I and is placed on the EU market. UCP 600 Article 14 requires documentary compliance within five banking days if the payment instrument is a Letter of Credit. INCOTERMS® 2020 CIF requires insurance at 110% of invoice value if the named place is a port of destination.
These conditions are expressed in legal prose — precise to lawyers, opaque to machines. Each regulation requires a separate interpretation, a separate compliance team, a separate software module. When a regulation changes — a new HS code is added to an annex, a tariff rate is adjusted, a documentary requirement is modified — the software must be updated. When a new regulation emerges — a carbon border adjustment, a digital product passport, a forced labour due diligence — a new software module must be built.
The VSC Regulatory Rule Compiler eliminates this cycle. It treats regulation as executable code over the Event Matrix. Every regulatory requirement is expressed as a deterministic function that accepts a matrix row as input and returns a compliance status as output. The function references only the five standardized dimensions of the matrix. When a regulation changes, only the rule changes — not the verification engine. When a new regulation emerges, a new rule is written — no new software is required.
Figure 5 — The VSC Global Ecosystem: Every standards body, national regulator, industry stakeholder, sector-specific regulation, cross-cutting law, community group, and infrastructure provider that VSC connects into a single verifiable trade operating system. Row 1: Global standards bodies (W3C, GS1, WCO, ICC, WTO, UN/CEFACT, ISO, IETF). Row 2: National regulators across Americas, Europe, Asia-Pacific, Middle East & Africa, and global oversight bodies. Row 3: Industry stakeholders from manufacturers through logistics, financial institutions, customs, regulators, and certification bodies. Row 4: Sector-specific regulations for pharmaceuticals, food & agriculture, electronics & batteries, and aerospace & defense. Row 5: Additional sectors (critical minerals, textiles, chemicals) and cross-cutting laws (GDPR, CSDDD, FCPA, Modern Slavery Act). Row 6: Community groups and infrastructure (W3C VSC CG, UORA, CCG, GS1, OpenPEPPOL, SWIFT).
The VSC Regulatory Rule Compiler — Architecture and Data Flow
The VSC Regulatory Rule Compiler — a three-stage pipeline that ingests regulatory text, compiles it into executable matrix rules, and distributes them to verifiers through a versioned rule registry with full lifecycle management.
Every rule is expressed in a structured format that references only the five standard matrix dimensions. The grammar is designed to be both human-writable and machine-executable, using a syntax familiar to regulatory professionals while producing deterministic verification outcomes.
RULE: <rule_identifier> VERSION: <semantic_version> JURISDICTION: <ISO_3166-1_alpha2> REGULATORY_REFERENCE: <citation> EFFECTIVE_DATE: <ISO_8601_date> DEPRECATES: <previous_rule_identifier | null> WHEN: D1.event_type IN [<event_type_list>] AND D2.did_method IN [<did_method_list>] AND D3.hs_chapter IN [<chapter_list>] AND D3.hs_heading IN [<heading_list>] AND D3.hs_code IN [<hs_code_list>] AND D4.incoterms IN [<incoterms_list>] AND D4.incoterms_version = <version_year> AND D5.payment_instrument IN [<instrument_list>] AND D5.jurisdiction = <ISO_3166-1_alpha2> REQUIRE: DIMENSION: <D1|D2|D3|D4|D5> CHECK: <validation_function> PARAMETERS: <key_value_pairs> ON_FAILURE: <NON_COMPLIANT | CONDITIONAL | FLAG> OUTCOME: COMPLIANT: <action_if_all_requirements_met> NON_COMPLIANT: <action_if_any_requirement_failed> CONDITIONAL: <action_if_conditional_requirements>
Example 1: DSCSA Pharmaceutical Traceability
Example 2: CIF Insurance Compliance Under INCOTERMS® 2020
Example 3: EU Carbon Border Adjustment Mechanism (CBAM)
A VSC Verifier MAY support machine-executable regulatory rules using the VSC Rule Grammar. When supported, the verifier MUST accept rules expressed in the grammar defined in this section. Rules MUST reference only the five standardized matrix dimensions (D1–D5) and any registered extension dimensions. A rule MUST produce one of three deterministic outcomes for any given matrix row: COMPLIANT, NON_COMPLIANT, or CONDITIONAL.
Every trade regulation is expressible as a conditional statement over product classification, actor identity, commercial terms, and financial instruments — precisely the dimensions of the VSC Event Matrix. By compiling regulations into machine-executable rules, the VSC verifier can determine regulatory compliance without domain-specific code. When a regulation changes, only the rule changes — not the verifier. When a new regulation emerges, a new rule is written — no software update is required. The tri-state outcome model reflects regulatory reality: not all compliance failures are hard stops.
Given a verifier configured with DSCSA_Package_Traceability v1.0.0 and an event matrix with D3.hs_chapter="30" and D5.jurisdiction="US": the verifier MUST verify that D1.chain contains all four required event types and that D2.issuer is in the FDA ATP Registry for each event. If both conditions pass, output MUST be COMPLIANT. If any condition fails, output MUST be NON_COMPLIANT with specific failure details. Given the same verifier and an event with D3.hs_chapter="09" (coffee): the rule MUST NOT be triggered and MUST return COMPLIANT (rule scope does not apply).
DSCSA §582; INCOTERMS® 2020 CIF; UCP 600 Article 14; CBAM Regulation (EU) 2023/956; WTO TFA Article 10.
Every VSC regulatory rule MUST carry a semantic version identifier, a regulatory reference citation, an effective date, and an optional deprecation reference to a previous rule version. A VSC Rule Registry MAY maintain the authoritative set of active rules. Verifiers MUST specify which rule versions they apply to each verification. An event verified against a specific rule version MUST be re-verifiable against that same version at any future date for audit purposes.
Regulations change over time — new HS codes are added to annexes, thresholds are adjusted, documentary requirements are modified. Without versioned rules, a verification performed in January 2025 against the then-current rule cannot be audited in December 2025 if the rule has changed. Versioned rules solve this by making the rule itself an immutable artifact referenced by version identifier. The deprecation chain ensures that the provenance of regulatory requirements is fully traceable.
Given a verifier with DSCSA_Package_Traceability v1.0.0 and v1.1.0 (where v1.1.0 deprecates v1.0.0): an event verified against v1.0.0 on 2025-06-15 MUST be re-verifiable against v1.0.0 on 2025-12-15 with identical result. The same event verified against v1.1.0 MAY produce a different result if rule requirements changed. The verifier MUST record which rule version was applied in the verification result.
This specification Section X+4; Semantic Versioning 2.0.0; WTO TFA Article 10.3 (Advance Rulings).
This requirements document identifies the following areas for future normative specification work by the VSC Community Group, listed in expected priority order:
bug (error in existing text), enhancement (new requirement or use case), question (seeking clarification), editorial (typo, formatting).Changes to this document follow the W3C Community Group process. Pull requests require at least one review from an editor before merging. New requirements must include:
New use cases must include all fields in the use case template (scenario description, actors, preconditions, nominal flow, at least one failure mode, and requirement cross-references).
Contributions to W3C Community Group deliverables are subject to the W3C Community Contributor License Agreement (CLA). By submitting a pull request or email contribution, you agree to the terms of the CLA.
Issues tagged
good first issue
on GitHub are suitable for contributors who are new to the
specification. These typically involve:
The editors thank the participants of the Verifiable Supply Chain Community Group for their contributions and feedback. This document has benefited from the prior work of the W3C CCG Traceability Task Force, GS1, and UN/CEFACT UNTP contributors.