Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

c2paReader

Returns the underlying C2PA Reader for the file. Use this for direct access to the C2PA manifest store when you need lower-level control.

Usage

import { VerifiableFile } from "@succinctlabs/zcam1-verify";
 
const verifiable = new VerifiableFile(file);
const result = await verifiable.c2paReader();
 
if (result.isOk()) {
  const reader = result.value;
  const store = reader.manifestStore();
  console.log("Active manifest:", store.active_manifest);
}

Returns

ResultAsync<Reader, Error> - The C2PA Reader instance, or an error if no C2PA metadata is found.

Example

import { VerifiableFile } from "@succinctlabs/zcam1-verify";
 
const input = document.querySelector<HTMLInputElement>("#file-input")!;
 
input.addEventListener("change", async () => {
  const file = input.files?.[0];
  if (!file) return;
 
  const verifiable = new VerifiableFile(file);
  const result = await verifiable.c2paReader();
 
  if (result.isOk()) {
    const store = result.value.manifestStore();
    console.log("Manifests:", Object.keys(store.manifests));
  } else {
    console.error("No C2PA metadata:", result.error.message);
  }
});

Notes

  • The Reader type comes from @contentauth/c2pa-web
  • Returns an error if the file does not contain C2PA metadata
  • Use higher-level methods like verifyBindings() or verifyProof() for standard verification workflows