FAIA Plugin
Preparing FAIA Metadata for Declarations
This guide explains how to structure and prepare FAIA metadata for use with the Liccium Declaration API, according to the FAIR AI Attribution (FAIA) framework developed by Leiden University, GO FAIR Foundation, and Liccium.
Overview
FAIA metadata enables creators, publishers, and AI system providers to make machine-readable declarations disclosing the role of AI in content creation. When integrated with Liccium declarations, these disclosures become cryptographically verifiable and globally discoverable through federated registries, bound to content-derived ISCC fingerprints rather than domains or embedded file metadata.
FAIA declarations support compliance with emerging transparency obligations – including Article 50(2) of the EU AI Act – and provide a durable provenance record that remains resolvable even when content is redistributed, converted, or stripped of embedded metadata.
Core Concepts
FAIA Flags
FAIA uses three primary flags that classify the role of AI in the creation of the published content. Flags are assigned to the observable output – the published asset – rather than to the full chain of decisions, tools, and labour that led to it.
- hcc – Human-Created Content: Content created, generated and edited exclusively by humans or human-controlled instruments. While digital tools such as word processors, image editors, or audio software may be used, no generative AI systems are involved at any stage of the creative or editorial process.
- aac – AI-Assisted Content: Content where a human or a human-controlled instrument remains the primary creator and AI systems contributed during the creation process to various degrees. This may include AI-generated input that humans or human-controlled instruments accept or reject, generation of content fragments that humans or human-controlled instruments integrate into larger works, or refinement steps performed under direct human supervision and editorial control.
- aig – AI-Generated Content: Content generated predominantly or entirely by an AI system, where the AI serves as the main creative agent. Human input is limited to initiating prompts, selecting among AI-generated outputs, or making minor adjustments that do not materially alter structure, substance, or expressive intent. The resulting content is accepted largely as produced by the AI, with no substantive human editing or creatorship.
Activity Codes
Activity codes describe what AI actually did during the creation or modification process. They are optional but recommended whenever AI involvement goes beyond trivial or incidental use. Multiple activity codes may be associated with a single declaration when AI was used in different ways at different stages.
Activity codes are not applicable to hcc declarations. For aac declarations, the applicable codes are coCreation, contribution, enhancement, and refinement. For aig declarations, the applicable codes are transformation and analysis.
| Code | Applicable flag | Description |
|---|---|---|
coCreation | aac | AI and human jointly produced content through an interactive process; contributions are interwoven and not clearly separable. |
contribution | aac | AI produced discrete elements – such as passages, images, or audio fragments – that the human integrated into a primarily human-authored work. |
enhancement | aac | AI modified or extended existing human-created content to improve quality, clarity, richness, or structure. |
refinement | aac | AI applied limited adjustments – such as grammar correction, formatting, or minor surface edits – without altering the structure or meaning of the content. |
transformation | aig | AI converted existing content into another form or representation, such as translation, summarisation, or format conversion, while preserving semantic equivalence. |
analysis | aig | AI interpreted existing content to derive structure, features, metadata, or insights, without modifying the source material. |
System Attribution
System attribution records the technical identity of the AI system involved. This goes beyond stating that "AI was used" – different systems and releases may vary substantially in capabilities, training data, behaviour, and licensing conditions. System attribution supports regulatory disclosure, rights management, and reproducibility.
Two optional fields are available:
- System: The system field identifies the AI system or engine used to generate or modify the content. This may include the name of the system or model family, ideally using the provider's official designation (for example
ChatGPT,Google Gemini,Stable Diffusion 3). - Version: The version field specifies the particular version of the AI system used. Where known, this should follow the naming or numbering scheme provided by the system's operator (for example
GPT-4o,v1.3.2,2025-10-release).
Why Registry-Based?
The FAIA framework is designed for registry-based declarations: FAIA metadata is bound to ISCC fingerprints and published to federated registries. This means AI attribution remains accessible even when content is redistributed, metadata is stripped, or the original hosting location changes. Any party with access to a media file can regenerate its ISCC locally and query the registry – no coordination with the original publisher is required.
JSON Structure
Required Fields
Every FAIA declaration must include a valid ISCC fingerprint and a FAIA flag:
Code
- iscc: ISCC fingerprint of the content, generated according to ISO 24138:2024.
- faiaFlag: One of
hcc,aac, oraig.
Optional Fields
Code
- activityCode: Describes how AI was involved. See the table above for applicable codes per flag.
- systemAttribution: Name or identifier of the AI system used.
- systemVersion: Version of the AI system used.
Preparing Your Metadata
Step 1: Generate an ISCC
Before creating FAIA metadata, generate a valid ISCC fingerprint for your content using any conformant ISCC generator. Open-source implementations are available as API and SDK.
Step 2: Choose a FAIA Flag
Select the flag that best describes the role AI played in the published content:
Option A: Human-created content
No generative AI was involved:
Code
Option B: AI-assisted content
The human remained the primary creator; AI contributed in a defined way:
Code
Option C: AI-generated content
The content was produced predominantly or entirely by an AI system:
Code
Embedding in Liccium Declarations
FAIA metadata is embedded as a plugin within the Liccium declaration metadata, alongside schema and context references for semantic validation:
Code
The $schema field links to the Liccium JSON Schema for validation. The @context field allows semantic web agents to interpret the declaration.
FAIA declarations can coexist with other plugins in the same declaration. For example, a single declaration may include both FAIA metadata and TDMrep metadata, allowing AI attribution and TDM rights reservation to be declared together for the same content asset.
Publishing to the FAIA Registry
The plugin block above describes the content. To have the declaration published in the FAIA registry (faia.io), the declaration must additionally carry a signed FAIA registry object — the same pattern the TDM·AI registry uses with tdmaiRegistry:
Code
Rules the FAIA registry enforces before publishing:
| Rule | |
|---|---|
faiaRegistry is a JSON object | a JSON-serialized string is not accepted |
iscc and declarerId equal those of publicMetadata | the record must describe this declaration |
timestamp within 60 seconds of publicMetadata.timestamp | milliseconds |
faia.faiaFlag is hcc, aac or aig | systemVersion only together with systemAttribution |
faiaRegistrySignature is an ES256 JWT with the declarer's JWK in its header, signed with the same key as signature, whose payload wraps the identical record | key order does not matter |
faiaRegistryTsaSignature is an RFC 3161 timestamp over that JWT | produced like the main tsaSignature |
A declaration is a FAIA registry record only when faiaRegistry is present. A faia block inside liccium_plugins or inside tdmaiRegistry does not publish it to the FAIA registry. Both objects may be sent together; the declaration is then a record of the TDM·AI and the FAIA registry. Details and code: Signing Registry Objects.
Validation Checklist
Before submitting your declaration:
- ISCC fingerprint is valid and matches your content
faiaFlagvalue accurately reflects the role AI played in the published asset- If provided,
activityCodeis one of the defined enum values and is applicable to the chosen flag - If
systemVersionis provided,systemAttributionis also provided - JSON structure is valid and conforms to the Liccium schema
- Declaration is properly signed with valid credentials
Error Prevention
Common mistakes to avoid:
- Missing ISCC: Every declaration must include a valid ISCC fingerprint.
- Missing faiaFlag: This field is required. Declarations without a flag will be rejected.
- Invalid enum value:
faiaFlagmust be exactlyhcc,aac, oraig.activityCode, if provided, must use the exact enum strings defined in the schema – for examplecoCreation, notCo-Creationorco_creation. - Activity code on an hcc declaration: Activity codes are not applicable to human-created content and should be omitted.
- Activity code and flag mismatch: The codes
coCreation,contribution,enhancement, andrefinementapply underaac. The codestransformationandanalysisapply underaig. Using a code outside its applicable flag will result in a validation error. - Version without system: If
systemVersionis provided,systemAttributionmust also be present. - Missing signature: All declarations must be cryptographically signed before submission.
Next Steps
- Generate ISCC fingerprints for your content
- Select the appropriate FAIA flag
- Optionally add an activity code and system attribution
- Integrate the metadata into your Liccium declaration
- Add the signed
faiaRegistryobject (see above) and submit the declaration via the Declaration API - Verify publication via the FAIA Registry Explorer at faia.io