Skip to content

Quick Start

This is the implementer quick start for Universal Manifest v0.1.

Read:

  • Getting Started → Concepts
  • Specification → v0.1

Key takeaways you need:

  • A Universal Manifest is a JSON(-LD) document with a stable identifier (@id / UMID), a subject, and a TTL (issuedAt/expiresAt).
  • Consumers must ignore unknown fields safely (forward compatibility).
  • The manifest is an envelope: it can contain embedded shards and/or pointers to canonical data elsewhere.

2) Implement the minimum viable consumer (v0.1)

Section titled “2) Implement the minimum viable consumer (v0.1)”

Your consumer should:

  1. Require core fields: @context, @id, @type, manifestVersion, subject, issuedAt, expiresAt
  2. Enforce TTL (“freshness for use”):
    • reject for use if now > expiresAt
    • (recommended) reject if issuedAt > expiresAt
  3. Treat unknown fields as ignorable
  4. Read only the parts you understand:
    • shards (composable fragments)
    • pointers (links to canonical sources)
    • claims, consents, devices (optional sections)

3) Validate against artifacts and fixtures

Section titled “3) Validate against artifacts and fixtures”
  • JSON-LD context: /ns/universal-manifest/v0.1/schema.jsonld
  • Structural schema: /ns/universal-manifest/v0.1/schema.json
  • Discovery (non-normative): /.well-known/universal-manifest.json

Start with:

  • Getting Started → Stub Manifests (near-real examples)
  • Conformance → v0.1 (what a consumer MUST do to claim support)

Open the harness:

  • /harness/

If you are testing a resolver implementation too, read:

  • Conformance → Resolver (myum.net)