Heratio Help Center article. Category: AI & Compliance.

C2PA Content Provenance

Overview

When Heratio's AI services produce or assist with content (suggestions, summaries, translations, transcriptions, NER), Heratio attaches a C2PA 2.1 manifest to that output. The manifest is a cryptographically signed declaration that says "this content was AI-generated (or AI-assisted), by this model, on this date, against this archival description".

Downstream consumers (regulators, publishers, audit teams) can verify the manifest without contacting Heratio - all they need is the public Ed25519 key (published at the operator's ai_inference_key endpoint).

How it works

  1. An AI service produces an artefact (text, image, transcript).
  2. Heratio assembles a C2PA manifest with:
    • a c2pa.actions.v2 assertion describing what happened (ai-generated or ai-assisted, which model, which model version, when, against which archival description)
    • a c2pa.training-mining assertion declaring whether the artefact may be used for downstream AI training (default: notAllowed)
  3. The manifest is signed Ed25519 with the same key the system uses for its EU AI Act Article 12 inference receipt chain.
  4. The signed manifest is written next to the artefact as a sidecar JSON (<artefact>.c2pa.json), or - for JPEGs, when the operator has installed the c2patool CLI - embedded directly in the JPEG as a JUMBF box.
  5. A row is logged in ahg_c2pa_manifest and a digest of the manifest is added to the Article 12 chain, so "all AI activity on this install" is queryable in one place.

Verifying a manifest

Operators (or external auditors) can verify a manifest with:

php artisan c2pa:verify /path/to/artefact.c2pa.json

The command re-hashes every assertion, validates the claim signature, walks the ingredient chain, and prints a pass/fail summary. Tampering (a single byte change in any assertion) fails verification immediately.

EU AI Act alignment

C2PA manifests satisfy Article 50 of the EU AI Act (transparency: machine-readable marking of AI-generated content). The linkage to Heratio's Article 12 inference receipt chain (shared signing key) satisfies the corresponding record-keeping audit trail. The default training-mining stance (notAllowed) protects archival output from being silently scraped into someone else's model.

What gets a manifest

AI service Manifest action
Suggestion / autocomplete ai-generated
Summarise ai-generated
Translate ai-generated
NER (named-entity recognition) ai-generated
HTR transcription ai-generated
Reviewer-revised AI output ai-assisted

Sidecar vs. embedded

By default Heratio writes a sidecar JSON next to the artefact. This works for any file type (text, image, video, etc.). Heratio can also embed the credential directly inside the file so it travels with the document when shared:

  • Images / video (JPEG, PNG, TIFF, MP4) - embedded via the open-source c2patool binary (Content Authenticity Initiative) when it is installed.
  • PDF (#1387) - embedded as a C2PA-associated file inside the PDF via an append-only update. The original bytes are untouched and the document renders identically in every viewer; the credential rides inside as a standard attachment (c2pa.json). Heratio guards this to safe PDFs (unsigned, unencrypted, classic cross-reference) and falls back to a sidecar otherwise - so strip the sidecar and, for PDFs, the binding still survives inside the file.

Specification