Skip to content
Preview (Alpha), release 0.1. No independent cryptographic review of the protocol or its reference verifiers has been done.

Registry entry schema

The field contract of the registry entry object, read from registry_entry.schema.json. The schema file is the normative artifact; this page is a reading of it. Raw schema file at the release tag.

Property of the schema Value
Schema identity ($id) https://schemas.loquitur.dev/v1/registry_entry.schema.json
JSON Schema dialect https://json-schema.org/draft/2020-12/schema
Root type object
Additional properties at the root refused
Required at the root object_type, schema_version, registry_entry_id, receipt_id, issuer_id, issuer_key_id, asset_type, workflow, subject_ref_hash, manifest_hash, receipt_hash, policy_id, policy_version, reason_code_catalog_version, verdict, reason_codes, issued_at, privacy_classification, disclosure_profile

Fields

Field paths are dotted; [] marks the members of an array item. “Required” is stated against the object that holds the field.

Field Type Required Constraints Description
anchor object or null no no additional properties
anchor.anchor_reference string yes minLength 1
anchor.method string yes pattern ^[a-z0-9][a-z0-9_]{0,63}$ The anchoring method: an identifier, a value of the registered vocabulary anchoring_method (verification-vocabularies.md section 5). No check reads it in this version, and an unknown method has no effect on a run (anchor-commitment.md section 6).
anchor.system string yes minLength 1 The system that carries the anchoring record, such as a CAIP-2 chain id for a blockchain transaction, the time-stamping authority for an RFC 3161 token, or the origin of a transparency log. Its lexical form is not fixed in this version (anchor-commitment.md section 6).
anchored_at string or null no pattern ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)Z$
asset_type string yes pattern ^[a-z0-9][a-z0-9_]{0,63}$ An asset type: an identifier, a value of the registered vocabulary asset_type (verification-vocabularies.md section 5). Any well-formed identifier satisfies the contract; whether the reader’s vocabulary holds it is judged after the contract, and an unknown value is a question for review, not a refusal (section 7).
disclosure_profile string yes enum: minimal_public, issuer_controlled_bundle, partner_authorized_bundle
effective_at string or null no pattern ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)Z$
issued_at string yes pattern ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)Z$
issuer_id string yes pattern ^issuer_[A-Za-z0-9_-]{3,128}$
issuer_key_id string yes minLength 1
manifest_hash string yes pattern ^sha256:[a-f0-9]{64}$
object_type string yes const "registry_entry"
policy_id string yes minLength 1
policy_version string yes pattern ^[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9_.-]+)?$
privacy_classification string yes enum: public_commitment
reason_code_catalog_version string yes const "loquitur.reason_codes.v1"
reason_codes array of string yes minItems 1; uniqueItems; items: enum: AUTHORIZATION_ISSUER_KEY_EXPIRED, AUTHORIZATION_ISSUER_KEY_NOT_YET_EFFECTIVE, AUTHORIZATION_ISSUER_KEY_REVOKED, AUTHORIZATION_ISSUER_KEY_SUSPENDED, AUTHORIZATION_ISSUER_NOT_RECOGNISED, AUTHORIZATION_SCOPE_MISMATCH, AUTHORIZATION_SIGNATURE_NOT_VERIFIED, AUTHORIZATION_SIGNING_METHOD_UNSUPPORTED, AUTHORIZATION_TRUST_MATERIAL_OUTSIDE_VALIDITY_WINDOW, AUTHORIZATION_TRUST_REGISTRY_AMBIGUOUS_KEY, AUTHORIZATION_VERIFIED, BUNDLE_EXTRA_FILES, COMPLETENESS_OFFLINE_CHECKS_SKIPPED, COMPLETENESS_OFFLINE_MATERIAL_MISSING, COMPLETENESS_OFFLINE_MISSING_CANONICAL_INPUT, COMPLETENESS_OFFLINE_MISSING_MANIFEST, CONFLICTING_EVIDENCE_DETECTED, FRESHNESS_OK, FRESHNESS_P1_TIMESTAMP_OOW, FRESHNESS_WARNING, INTEGRITY_CHECK_FAILED, INTEGRITY_OFFLINE_CANONICALIZATION_FAILED, INTEGRITY_OFFLINE_ENVELOPE_LINKS_MISMATCH, INTEGRITY_OFFLINE_ENVELOPE_SHA_MISMATCH, INTEGRITY_OFFLINE_EXTRA_FILES_STRICT, INTEGRITY_OFFLINE_FAIL, INTEGRITY_OFFLINE_INPUT_HASH_MISMATCH, INTEGRITY_OFFLINE_MANIFEST_FILE_MISMATCH, INTEGRITY_OFFLINE_MANIFEST_SHA_MISMATCH, INTEGRITY_OFFLINE_SCHEMA_INVALID, INTEGRITY_OK, MARK_ASOF_UNPARSEABLE, MARK_FAR_OUTSIDE_RANGE, MARK_NEAR_BOUNDARY, MARK_OFFSET_FROM_MIDPOINT, MARK_OUTSIDE_RANGE, MARK_STALE, MATERIAL_CHANGE_DETECTED, METHOD_BINDING_MISSING, MISSING_MARK_FIELDS, MISSING_REQUIRED_INPUTS, NEEDS_REVIEW, OFFLINE_CANONICAL_INPUT_MISSING, OFFLINE_INPUT_HASH_NOT_VERIFIED, OFFLINE_MANIFEST_MISSING, OFFLINE_MATERIAL_MISSING, OFFLINE_REPLAY_FAILED, OFFLINE_REPLAY_REVIEW, OFFLINE_REPLAY_SKIPPED, OFFLINE_REPLAY_WARN, P1_TIMESTAMP_OUT_OF_WINDOW, POLICY_BUNDLE_EXTRA_FILES, REQUIRED_CLAIMS_PRESENT, REQUIRED_EVIDENCE_PRESENT, UNSUPPORTED_KEY_CLAIM, VOCABULARY_VALUE_INVALID, VOCABULARY_VALUE_UNKNOWN
receipt_hash string yes pattern ^sha256:[a-f0-9]{64}$
receipt_id string yes pattern ^vr_[A-Za-z0-9_-]{8,128}$
registry_entry_id string yes pattern ^reg_[A-Za-z0-9_-]{8,128}$
schema_version string yes enum: v1
signature one of no Issuer signature, in the signing-envelope v2 shape. This version defines no earlier shape: a signature object without payload_id and payload_version breaks the entry’s contract.
signature, variant 1 null
signature, variant 2 object no additional properties Domain-separated signing-envelope v2 signature metadata.
signature.algorithm string yes pattern ^[a-z0-9][a-z0-9_]{0,63}$ Signature algorithm identifier. Any well-formed identifier is admitted; the verifier’s own allowlist decides, at the signature step, whether it is supported (UNSUPPORTED_SIGNATURE_ALGORITHM).
signature.key_id string yes minLength 1
signature.payload_id string yes const "registry_entry_signing_payload_v2"
signature.payload_version integer yes const 2
signature.signature string yes pattern ^[a-f0-9]{128}$ ECDSA over secp256k1 in IEEE P1363 compact form: r and s concatenated, 64 bytes as 128 lowercase hex characters, low-S enforced. A length bound alone would make the single character “x” a schema-valid secp256k1 signature.
subject_ref_hash string yes pattern ^sha256:[a-f0-9]{64}$
verdict string yes enum: PASS, WARN, REVIEW, FAIL
workflow string yes pattern ^[a-z0-9][a-z0-9_]{0,63}$ A workflow: an identifier, a value of the registered vocabulary workflow (verification-vocabularies.md section 5). Any well-formed identifier satisfies the contract; whether the reader’s vocabulary holds it is judged after the contract, and an unknown value is a question for review, not a refusal (section 7).

Example

The schema carries one example instance under its root keyword example, an annotation that decides nothing about any instance. Read it in the raw schema file.

Project site: loquitur.dev

Source: loquitur-protocol/docs/specification/schemas/registry_entry.schema.json at 3ff7899c0c76. Licence of this page's text: MIT OR Apache-2.0.