Standards & the open reference implementation
Built on open standards, so the proof does not depend on us.
Colophon's identity and credential layer is not a private format. It is a working, open reference implementation of the same standards the world is converging on for digital identity, verifiable credentials, and product passports. An object's accountability record is issued as a W3C Verifiable Credential, bound to a decentralized identifier that anyone can resolve, and signed with a public key you can pull straight from our published DID document. You can verify one of our credentials with off-the-shelf tooling and no access to our database. That independence is the point.
Evidence infrastructure, not certification. Conformance to a standard describes the format of our records. It is not a certificate of authenticity for any product, and it is not a claim of full, final Digital Product Passport compliance.
What Colophon implements
Open standards, each pinned to its published specification.
These are the specifications our identity and credential layer follows. The list below is
the human-readable version of a live, machine-readable report served at
/standards/conformance, which any developer or auditor can read directly.
-
W3C Verifiable Credentials Data Model 2.0
Our accountability record is issued as a Verifiable Credential: the base v2 context, a type that includes
www.w3.org/TR/vc-data-model-2.0VerifiableCredential, a proper issuer, avalidFromdate, and acredentialSubject.idbound to the object's identity. -
Securing Verifiable Credentials using JOSE (VC-JWT)
The credential is secured as a compact VC-JWT: header type
www.w3.org/TR/vc-jose-cosevc+jwt, algorithmEdDSA, and akidequal to the verification method in our DID document, so a verifier knows exactly which key to check. -
did:web decentralized identifier method
The issuer is a
w3c-ccg.github.io/did-method-webdid:webthat resolves to a DID document at/.well-known/did.json. Every object also carries its own resolvable identifier, so credentials can be checked with no access to us at all. -
EdDSA / Ed25519 (RFC 8037)
Signatures are EdDSA over Ed25519, an open, widely implemented signature scheme. The public key is published as an OKP
rfc-editor.org/rfc/rfc8037JsonWebKey2020inside the DID document. -
GS1 Digital Link
Each object carries a GS1 Digital Link URI as its scannable, resolvable data carrier, so a single link doubles as the product's web identity (groundwork form).
gs1.org/standards/gs1-digital-link -
EU Digital Product Passport (ESPR direction)
The passport carries a DPP-aligned block: product identity, a data carrier, the economic operator, material composition, provenance, and a reference to the accountability credential. Field names track the emerging ESPR direction. This is DPP-aligned and DPP-ready, not a claim of full compliance, because the final textile DPP schema is not yet published.
eur-lex.europa.eu/eli/reg/2024/1781/oj
The specification we publish
Lacuna: a published specification for provenance records with declared absence.
The standards above are ones Colophon Record follows. This one we wrote and published.
A colophon is the printer's mark at the end of a book. It states who made the thing, and how. A lacuna is the declared missing portion. It states what is absent. Colophon Record is the instrument. Lacuna is the specification it writes to. One records what is known about an object's making and custody. The other governs how a record says what it does not know.
-
What a provenance record is
A provenance record is custody over time. It is not authentication, which is a claim about an object at a moment.
-
Why absence is declared rather than left blank
The record states what it does not know rather than leaving a field blank, because a declared gap can be audited and a blank cannot be told apart from nobody having looked. A gap in a chain of custody is not a null, a blank field, or a flag. It is a row, of the same kind as every other row, and it must state which kind of absence it is and why.
-
The four states an absence may take
unknowable, the fact cannot be recovered by anyone: stop looking.
not_applicable, the question does not arise for this object: stop asking.
not_yet_obtained, the fact exists and has not been collected: this is work, and it can be closed.
never_required, the question is not proper to ask here: do not ask.Each state licenses a different action. That is the test of the vocabulary: a set whose members produce identical behaviour is one state wearing four names.
-
A specification, not a standard
Section 12 of the document says so itself. It becomes a standard when implemented by someone other than its author, and not before. We publish it so that anyone can build to it without us.
doi.org/10.5281/zenodo.22063353 -
Reference implementation
A verification kit is published separately, with two canonicalization profiles and eleven test vectors, so a reader can reproduce the hashing and chain verification independently.
doi.org/10.5281/zenodo.22083313
Why it is built this way
Independent, verifiable, and ready for the passport era.
- Independent. A record you can only check by asking us is not evidence, it is a promise. Because our credentials are signed against a public key published in an open DID document, anyone can verify them with standard tooling and zero trust in Colophon as a service. The proof outlives any single server, and it outlives us.
- Verifiable by anyone. A regulator, a resale platform, an insurer, or a shopper can resolve one object and check both its identity and its accountability record. No private SDK, no login, no account. The same open specifications a wallet or a government system already speaks.
- DPP-ready. The EU Digital Product Passport is arriving. By shaping our passport to the ESPR direction now, using persistent identity, a data carrier, an economic operator, and material composition, an object registered today is already structured for the passport it will need tomorrow.
The reference, in the open
A credential, an identity document, and a passport export.
These are the real shapes Colophon issues. The credential below is shown decoded (a VC-JWT is this JSON, base64url-encoded and EdDSA-signed). Nothing here is minted, tokenized, or transferable: a credential is a signature over a hash, and the authenticity attestation is a separate record the brand controls.
The Verifiable Credential (decoded VC-JWT payload){
"iss": "did:web:objectsofaffectioncollection.com",
"sub": "did:web:objectsofaffectioncollection.com:object:OBJECT_ID",
"vc": {
"@context": ["https://www.w3.org/ns/credentials/v2"],
"id": "urn:credential:OBJECT_ID:…",
"type": ["VerifiableCredential", "MaterialIntegrityCredential"],
"issuer": "did:web:objectsofaffectioncollection.com",
"validFrom": "2027-01-15T08:00:00Z",
"credentialSubject": {
"id": "did:web:objectsofaffectioncollection.com:object:OBJECT_ID",
"materialIntegrity": { /* retail, make cost, spectacle multiple, material, provenance */ },
"recordHash": "…",
"anchor": { "status": "submitted", "merkleRoot": "…" },
"methodologyRef": "https://objectsofaffectioncollection.com/colophon/methodology"
}
}
} // JOSE header: { "alg": "EdDSA", "typ": "vc+jwt", "kid": "did:web:…#key-1" }{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/jws-2020/v1"
],
"id": "did:web:objectsofaffectioncollection.com",
"verificationMethod": [{
"id": "did:web:objectsofaffectioncollection.com#key-1",
"type": "JsonWebKey2020",
"controller": "did:web:objectsofaffectioncollection.com",
"publicKeyJwk": { "kty": "OKP", "crv": "Ed25519", "alg": "EdDSA", "use": "sig", "x": "…" }
}],
"assertionMethod": ["did:web:objectsofaffectioncollection.com#key-1"],
"authentication": ["did:web:objectsofaffectioncollection.com#key-1"]
}{
"schema": "dpp-aligned/groundwork-0.2",
"note": "DPP-ALIGNED groundwork, not the final official Digital Product Passport schema.",
"productIdentity": { "did": "…", "gs1DigitalLink": "…", "objectId": "…", "name": "…" },
"dataCarrier": { "carrierType": "gs1-digital-link", "uri": "…" },
"economicOperator": { "role": "accountability-data-provider", "identifier": "did:web:…" },
"materialComposition": { "estimated": true, "primaryMaterial": "…" },
"provenance": "…",
"accountabilityCredential": { "type": "MaterialIntegrityCredential", "recordHash": "…", "resolve": "…" },
"authenticityAttestation": { "ref": null, "controlledBy": null }
}Verify one yourself
How anyone can check a Colophon credential.
No account, no SDK, no permission. Four steps with standard tooling.
- Resolve the issuer identity did:web:objectsofaffectioncollection.com to
its DID document at
/.well-known/did.json. - Read the Ed25519 public key from
verificationMethod[0].publicKeyJwk (the OKP
xvalue). - Fetch any object's passport at
/passport/{object_id}and take its vc_jwt. - Verify the VC-JWT's EdDSA signature against that public key. If it verifies, the record is ours and unaltered. If a single figure was changed, it will not.
This page asks our own /standards/conformance endpoint to issue a credential,
verify it against the published DID document, and audit both, right now.
An open reference implementation
A reference the standards can be read through.
The most durable position an institution can hold is to be the working example others check their understanding against. Colophon implements these specifications in the open, serves a live conformance report, and lets anyone verify a credential without trusting us. As the DID, Verifiable Credential, and Digital Product Passport standards settle, this is the reference they can be read through.
Fence. This page reports conformance, meaning our records follow the named specifications. It is not a certification of any product, brand, or claim, and not a statement of full or final Digital Product Passport compliance. Colophon supplies an independently verifiable accountability record. Authenticity is a separate attestation a brand controls. Nothing here is minted, tokenized, or transferable.
Build on the record with the Trust API