---
title: C2PA, Content Credentials, and the EU AI Act
description: Understand how C2PA provenance supports AI-generated image disclosure and EU AI Act Article 50 labelling workflows in Umbraco.
sidebar:
  label: C2PA and EU AI Act
seo:
  image: /og/c2pa-eu-ai-act.png
---

C2PA and visible AI labels solve different parts of the same transparency problem. C2PA carries machine-readable provenance with the media file. A visible label tells a person that AI was involved.

## What is C2PA?

The Coalition for Content Provenance and Authenticity, or C2PA, publishes an open standard for recording the origin and history of digital media. Its **Content Credentials** are cryptographically bound to an asset and can contain signed statements about:

- Where and how the asset was created
- Which tools or services were involved
- What edits were performed
- Whether an AI system generated or modified the content

A valid signature makes changes to the credential detectable. It does not prove that every real-world claim is true, and the absence of a credential does not prove that an image is human-made.

[Read the official C2PA and Content Credentials explainer](https://spec.c2pa.org/specifications/specifications/2.4/explainer/Explainer.html).

## How AI Image Disclosure uses C2PA

The package validates the C2PA manifest, follows the active claim and its ingredients, and looks for standardized AI source types and actions. Positive evidence maps to one of two stable values:

- `generated`: the image was fully generated by AI
- `modified`: pre-existing content was partially modified using AI

When the file cannot establish either classification, the value remains empty and an editor can decide manually.

C2PA 2.4 also defines a `c2pa.ai-disclosure` assertion for model identification, content profiles, human oversight, and related metadata. This package does not currently store that assertion.

## EU AI Act transparency

Article 50 of the EU AI Act includes transparency requirements for certain AI-generated or manipulated content. The exact obligation depends on the content, its use, and applicable exceptions. Not every AI-assisted image has the same disclosure requirement.

The European Commission provides freely usable icons for **Fully AI-Generated** and **Partially AI-Modified** content. The icons are optional. The Commission states that using them does not establish legal compliance by itself.

[View the official EU icons, downloads, and placement guidance](https://digital-strategy.ec.europa.eu/en/policies/eu-icons-labelling-ai-generated-content).

## From file evidence to a visible label

AI Image Disclosure connects the two layers:

```mermaid
flowchart TD
    F[An image is uploaded] --> C{C2PA AI evidence?}
    C -->|Fully generated| G[generated]
    C -->|Partly modified| M[modified]
    C -->|None| E[empty]
    G --> R[An editor reviews or corrects it]
    M --> R
    E --> R
    R --> L[The frontend reads it from the<br/>Delivery API and shows a label]
```

1. C2PA provides signed, machine-readable evidence when it is present and valid.
2. Umbraco stores a simple `generated`, `modified`, or empty value.
3. Editors can correct or add the disclosure when file-level evidence is unavailable.
4. An editor reviews the stored classification on the media item.
5. Frontends can request the value through the Delivery API and render an appropriate disclosure.

This package supports a disclosure workflow. It is not legal advice and cannot determine whether a particular publication falls within Article 50.
