Audit receipts
A valid completed Chain can produce a Chain Record / receipt containing structured governance evidence for that workflow. Receipts are designed to make later mutation detectable and to support authenticated and bounded public verification. They are evidence. They are not a claim that Arclasp executed the customer’s real-world tool.What a receipt represents
A receipt can bind together governance context such as:- Chain identity and timing;
- governed event summaries;
- cumulative metrics captured for the Chain;
- policy and approval context;
- receipt number and issuance metadata;
- cryptographic integrity material;
- linkage to supported predecessor receipt state.
Signing and hash linkage
Arclasp uses deterministic structured data, cryptographic hashes, signatures, and receipt linkage to make supported evidence tamper-evident. In practical terms:- changing signed data should invalidate its integrity/signature checks;
- supported predecessor linkage lets verification evaluate receipt-chain continuity;
- verification can report the layers available for the requested artifact.
Tamper-evident, not tamper-proof
“Tamper-evident” means verification is designed to detect evidence mutation. It does not mean:- the surrounding database or infrastructure can never be attacked;
- the receipt proves legal admissibility;
- the receipt automatically establishes compliance;
- the receipt creates legal non-repudiation;
- an uninstrumented customer-side tool definitely executed exactly as described.
Authenticated verification
Authenticated users can verify supported receipt integrity through the v2 verification API:Public verification
Admins can issue an opaque public verification token for eligible evidence. A public viewer uses the tokenized verification surface and receives a bounded projection of verification status rather than private governance payloads or credentials. See Verification.Receipt numbering
Human-readable receipt numbers retain the compatibility format:PR- prefix is a frozen compatibility identifier and should not be globally renamed without a deliberate migration.