Manifest validation
Hashproof validates embedded C2PA manifests at parse time and reports a structured validation result. Hybrid ES256 + ML-DSA-65 manifests are accepted; the ML-DSA assertion is verified when it is a real signature.
CRYPTOGRAPHIC PROOF
Upload any asset to the verify endpoint. Hashproof returns C2PA chain validation, trust-list match, and a structured trust-status field ready to render. Endpoint: POST /v1/verify.
Four properties of the verify surface. Signature, trust, lineage via the manifests API, and (when you ask for it) forensic-grade detail.
Hashproof validates embedded C2PA manifests at parse time and reports a structured validation result. Hybrid ES256 + ML-DSA-65 manifests are accepted; the ML-DSA assertion is verified when it is a real signature.
Embedded manifest signers are matched against the configured issuer trust list at parse time. Hashproof ships with the C2PA trust list by default.
The manifests API exposes the full provenance graph: ingredients, parent manifests, derivation actions, via GET /v1/manifests/:id/lineage. Render it directly, or walk it programmatically for audit trails.
For insurance and legal work, switch on forensic mode to receive manipulation signals, EXIF analysis, a confidence score, and a risk level tuned for human review.
One request, four phases.
01
Send the asset (signed or unsigned, transformed or pristine) to /v1/verify. No assertions or auxiliary data required.
02
The C2PA manifest is parsed and validated.
03
The signer is matched against the configured trust list.
04
Response carries a top-level trustStatus (trusted | untrusted | unknown), the validated manifest, and the validation detail.
Verification is the public verb. The /v1/verify endpoint accepts anonymous traffic and backs the public verify playground at /playground.
curl -X POST https://api.hashproof.ai/v1/verify \
-F "file=@/path/to/image.jpg"
# => {
# "hasProvenance": true,
# "trustStatus": "trusted",
# "source": "embedded",
# "manifest": {
# "signatureInfo": { "algorithm": "ES256", ... }
# },
# "validation": { ... }
# }Verification is the third verb. Sign and resolve set up the artifact; verify is what makes the chain trustworthy.
Verification only matters if there is a signature to verify. Issue C2PA manifests with managed keys, hybrid signatures, and Merkle batch proofs.
Find the manifest after re-encodes and crops, then verify it. pHash-based resolution for assets that have been transformed in transit.
EU AI Act Article 50 reports built from your stored manifests. Certificates that could not be validated are flagged per manifest.
Free tier includes 10,000 verifications per month. Visits to the public verify playground at /playground do not count against your quota.