Same inputs, same hash
Given the same inputs, canonicalization produces the same bytes and the same hash, so two parties can compare their results.
End-to-end workflow
A NAV update goes through seven stages, from the issuer's documents to the parties that rely on the result. The issuer assembles the evidence, checks it under a named policy, records the policy and the verdict in a receipt, and signs an entry that commits to it. An auditor or investor who receives the bundle can check it without reaching the issuer.
Diagram
Policy is applied on the issuer's side. The structure, integrity, link and authorization checks run offline, on the verifier's own machine. A transparency log and an anchor, both planned, would sit on the public side. Dashed outlines mark planned extensions at the step where each would act; none of them is implemented.
Reading
Issuer inputsDocuments, claims and policy
Business
In the protocol, the issuer is the party that signs the registry entry for a figure, for example the fund or a tokenization platform. The documents come from evidence producers such as the fund administrator or the valuer, who may also act as issuer. The inputs are the source documents, the figures they support, and the policy that defines an acceptable result.
Technical
Inputs are typed: documents, structured claims (each an assertion with an explicit support basis) and a versioned policy.
Policy evaluationPolicy applied, status recorded
Business
The issuer writes and versions its own policy and applies it to its evidence. A claim like "the NAV is X" comes out as a status, with reason codes that say why. Whether the NAV or valuation itself is right stays the reviewer's call.
Technical
Inputs are canonicalized with JCS (RFC 8785) and hashed with SHA-256. The policy then produces a status (pass, warning, review or fail) and versioned reason codes; the registry entry states the same result as a verdict (PASS, WARN, REVIEW or FAIL).
Producer. An installable tool that applies a published policy pack to the evidence and writes the receipt.
Evidence bundleHeld by the issuer
Business
The documents, the inputs and the result are packaged into one portable bundle. It stays with the issuer, who decides whom to share it with.
Technical
The bundle is a directory or ZIP archive holding the canonical inputs, the supporting documents, the policy outcome, a change delta and a manifest of SHA-256 file digests. Every file must be declared in the manifest, and an undeclared file sends the run to review. The Python verifier opens both; the TypeScript verifier reads directories.
Origin. Each document signed by the party that prepared it, such as the administrator or the valuer.
Canonical objectsStandard summaries
Business
An auditor or investor usually asks four things: what passed, what changed, what came before, and what is covered or missing. The protocol defines one standard summary for each, derived from the bundle.
Technical
The schemas define the canonical objects. The review is described by verification_summary, verification_receipt, change_summary, lineage_summary and coverage_summary; the public side by registry_entry, the signed entry, and trust_registry. The registry entry commits to the receipt by its hash.
Registry entryPublic, minimal
Business
The issuer signs a registry entry: a short statement that a verification took place, under which policy and with which result. The entry reveals none of the evidence.
Technical
A registry_entry is a signed projection of the receipt: receipt id, issuer id, manifest and receipt hashes, policy id and version, verdict, reason codes and signature, plus an optional anchor that names its method, system and reference and sits outside the signature. The trust registry lists authorized issuers, their public keys and the asset types and workflows each key may sign for, and authorization is checked against it offline.
Co-signature by a second party. A named party signs a stated sentence about the entry. It is not an audit opinion.
Checks without disclosing the documents. Show one item of a bundle without handing over the rest.
Timeliness. Each update names the one before it, so a check can tell which arrived on time.
VerificationOffline: structure, integrity, link, authorization
Business
Without calling the issuer or any server, an auditor learns whether the bundle is the one the issuer committed to, and whether the issuer's key was allowed to sign that commitment.
Technical
The verifier runs four checks. Structure and integrity read the bundle alone and rebuild the manifest hash. The link check takes the bundle and the registry entry and confirms that one commits to the other. The authorization check verifies the issuer's signature against the trust registry and tells revoked, suspended, expired, not-yet-effective and out-of-scope keys apart, so an authority failure is reported separately from an integrity failure. Transparency and anchoring are reserved and not implemented.
Timeliness, judged over a series. Which updates in a series arrived on time, which late and which are missing.
Transparency log and anchoring. Reserved: an append-only log of entries, its state anchored on a public chain or by timestamp.
Who relies on the resultInvestors, platforms, auditors
Business
An investor about to allocate, a platform listing the asset or an auditor checking each update could use the same receipt as a starting point for their own review, without needing one another's systems.
Technical
The four checks are deterministic: given the same bundle, registry entry, trust registry, pinned trust-root document and evaluation time, they produce the same report.
Items marked planned are designed, not built. Their order is on the status page, under what comes next.
A planned check enters the specification only after an independent review of its cryptography. No such review has taken place yet.
Architecture
The boundary runs between the issuer's own environment and what it shares: the signed registry entry.
An entry commits to the receipt's existence and integrity; the issuer shares the bundle itself only with the reviewers who need to check it.
The history stays private too, in the issuer's summaries: an entry names no earlier entry, so each check crosses the boundary on its own.
Planned
A verifier answers for the party holding the files, at the moment it runs: these documents match this manifest, the manifest matches this entry, and the key that signed was authorized for this asset type and workflow.
It cannot answer a later question: whether this receipt existed before its outcome became convenient. The issuer holds its own evidence, so it could run a policy, dislike the result and commit only to a later run. Nothing in the files would show it.
A transparency log would narrow that question: an entry logged before an outcome was known would show its order, and a log watched from outside would make it harder to show different histories to different readers. It would record nothing about what was checked, and it would not show a run that was never logged.
The four offline checks do not depend on it. The log is planned, after the producer; it is not implemented.
Answers for the party holding the files, at the moment it runs.
Whether this receipt existed before its outcome became convenient.
Commits to a receipt without carrying it.
Would show the order of entries logged before an outcome was known, and nothing about what was checked.
Principles
Download
The diagram and the seven stages, each with its business and technical reading.