Digital Product Passport & GS1 Digital Link
TAG IT resolves standard GS1 Digital Link URLs and issues a W3C Verifiable Credentials 2.0 Digital Product Passport. Both are gated on a physical NFC tap — that gate is the point, and this page explains why.
Verification has two halves, and they need opposite things
Most authentication products blur these together. Keeping them apart is the whole design.
The passport endpoints on this page are the attestation half. An agent cannot call them to manufacture proof that someone held a product, and that is a deliberate limit rather than a missing feature.
GS1 Digital Link resolver
A GS1 Digital Link encodes product identity in the URL itself, using GS1 Application Identifiers. TAG IT resolves the standard form:
https://verify.tagit.network/01/{GTIN-14}/21/{serial}where 01 is the AI for GTIN and 21 is the AI for an item-level serial. GTIN-14 check digits are validated on every request, and a GTIN failing its check digit is flagged rather than silently accepted.
Requested without tap parameters, the resolver confirms the identity encoded in the URL and asks for a tap. It deliberately returns no lifecycle state and no token — because without a tap it has no evidence that anyone is holding the item.
Add a live tap and the same URL resolves to the digital twin:
https://verify.tagit.network/01/{GTIN-14}/21/{serial}?picc={hex}&cmac={hex}picc and cmac are written by the chip at tap time. The chip generates them; nothing else can.
The passport credential
The machine-readable passport is served as a W3C Verifiable Credentials Data Model 2.0 credential, typed both VerifiableCredential and DigitalProductPassport, with a term set aligned to the UN Transparency Protocol vocabulary.
GET /api/dpp/01/{GTIN}/21/{serial}?picc={hex}&cmac={hex}
GET /api/dpp/token/{tokenId}?picc={hex}&cmac={hex}Without the tap parameters both return 400 with {"verified": false, "error": "missing picc or cmac query params"}. There is no unauthenticated path to a passport.
The credential carries product identity and attributes, lifecycle state, the digital-twin reference (chain, contract, token, tag UID), and an evidence entry of type OnChainAnchor binding to the on-chain metadataHash.
What "verifiable" does not yet mean
proof block. A Verifiable Credential without a proof is a machine-readable document, not a self-verifying one. Issuer-DID signing (Ed25519 / SD-JWT) is planned. Until it ships, treat the output as a structured view rather than something you can verify offline.Two further limits worth stating plainly:
- The
metadataHashanchor covers the off-chain product metadata only. It does not cover the server-assembled lifecycle, owner or tap-counter fields. - The JSON-LD
@vocabresolves to a deterministic IRI base for TAG IT terms. A versioned published context and the issuer DID document land alongside signing.
What is independently checkable today is the chain data. Every response carries the contract address and token id, so the lifecycle state can be re-derived directly from Base Sepolia without trusting this API. That is the guarantee we are willing to stand behind now.
Relationship to the EU Digital Product Passport
The ESPR framework will require a Digital Product Passport for regulated categories, reachable from a data carrier on the product and expressed in an interoperable, machine-readable form. The pieces TAG IT already implements — GS1 Digital Link identity in the URL, a W3C VCDM 2.0 credential, an on-chain integrity anchor — are the building blocks that framework is being built on.
We are not claiming ESPR conformance. Delegated acts defining per-category data requirements are still being finalised, and any vendor claiming full compliance against an unfinished specification is overstating it. What we can say precisely: the resolver and credential exist, they are standards-shaped, and they run today on testnet.
The distinctive part is the anti-counterfeiting property. A passport reachable from a printed QR code proves a label exists. A passport gated on an NTAG 424 DNA SUN cryptogram proves the chip is present — and a photocopied label cannot produce one.
What you can call without a chip
Everything on this page needs physical hardware. The assertion half does not:
curl https://verify.tagit.network/api/asset/5Free, keyless, no signup. Returns the lifecycle verdict with a block-pinned chainRef you can re-derive yourself. There is also a read-only MCP server at https://verify.tagit.network/mcp, listed in the official Model Context Protocol registry as network.tagit/nfc-verify.
Both surfaces, and the tap-gated endpoints on this page, are described in a machine-readable OpenAPI 3.1 specification.