{
  "datasetVersion": "1.0.0",
  "lastUpdated": "2026-09-13",
  "verdict": [
    {
      "value": "labelled",
      "meaning": "A C2PA credential is present and validates."
    },
    {
      "value": "unlabelled",
      "meaning": "No verifiable credential was found. NOT proof the content is authentic or not AI-generated."
    },
    {
      "value": "invalid",
      "meaning": "A credential is present but validation failed (see failure codes)."
    },
    {
      "value": "indeterminate",
      "meaning": "Unsupported media type, or the engine timed out or errored. No verdict asserted."
    }
  ],
  "validationState": [
    {
      "value": "Trusted",
      "meaning": "Credential is cryptographically intact AND the signer chains to a known trust list."
    },
    {
      "value": "Valid",
      "meaning": "Credential is cryptographically intact but the signer is NOT on a trust list."
    },
    {
      "value": "Invalid",
      "meaning": "Validation failed for the active manifest or an ingredient."
    },
    {
      "value": null,
      "meaning": "No manifest present."
    }
  ],
  "aiInferred": [
    {
      "value": "ai-generated",
      "meaning": "A signed assertion declares the content as AI-generated (e.g. digitalSourceType=trainedAlgorithmicMedia)."
    },
    {
      "value": "ai-edited",
      "meaning": "A signed assertion declares AI-assisted editing/compositing."
    },
    {
      "value": "not-declared",
      "meaning": "A valid manifest is present but declares no AI generation/editing."
    },
    {
      "value": "unknown",
      "meaning": "No manifest, or insufficient signed information to infer. Never a pixel-based guess."
    }
  ],
  "unlabelledReason": [
    {
      "value": "credential-stripped",
      "meaning": "A soft binding indicates a credential existed but was removed (e.g. re-encode, screenshot, CDN transform)."
    },
    {
      "value": "never-present",
      "meaning": "No soft binding and no manifest; the asset likely never carried a credential."
    },
    {
      "value": "unknown",
      "meaning": "Could not distinguish stripped from never-present."
    }
  ],
  "note": "Validation failure codes are surfaced verbatim from the C2PA engine's validation_results. This list documents the common ones; refer to the C2PA Technical Specification for the full set.",
  "validationFailureCodes": [
    {
      "code": "assertion.dataHash.mismatch",
      "uri": "Assertion",
      "meaning": "A hashed byte range of the asset does not match the data hash assertion (the bytes were edited after signing)."
    },
    {
      "code": "assertion.bmffHash.mismatch",
      "uri": "Assertion",
      "meaning": "A box-based (BMFF) asset's hash does not match the BMFF hash assertion."
    },
    {
      "code": "assertion.boxesHash.mismatch",
      "uri": "Assertion",
      "meaning": "A general box-like asset's hash does not match the boxes hash assertion."
    },
    {
      "code": "assertion.hashedURI.mismatch",
      "uri": "Assertion",
      "meaning": "The hash of a referenced assertion does not match the hashed URI in the claim."
    },
    {
      "code": "signingCredential.untrusted",
      "uri": "Signature",
      "meaning": "The signing credential is not listed on the validator's trust list."
    },
    {
      "code": "signingCredential.invalid",
      "uri": "Signature",
      "meaning": "The signing credential is not valid for signing."
    },
    {
      "code": "signingCredential.revoked",
      "uri": "Signature",
      "meaning": "The signing credential has been revoked by the issuer."
    },
    {
      "code": "signingCredential.expired",
      "uri": "Signature",
      "meaning": "The signing credential has expired (and no valid trusted time-stamp covers the signing time)."
    }
  ]
}
