Transparency: how FairAudit discloses and marks AI output
FairAudit applies the EU AI Act's transparency duties to itself. Every page tells you that you are talking to an AI system (Art. 50(1)). Every answer and every export carries a machine-readable mark, signed with Ed25519, so anyone can confirm it was generated by FairAudit and has not been altered (Art. 50(2)).
Our public key
Algorithm Ed25519, marking spec eu-ai-act-art-50-2. The key is published here and served by the API; the two should match.
tDHFxq3QOtzf09n0R5gj5dcwgJGPDP77GIvkZbUpb5M=Current key · in use since 2026-09-02
Checking the key the API serves…
Machine-readable: GET https://fairaudit-api.fly.dev/api/marking/public-key
Verify a FairAudit output
Paste the marking object from a FairAudit export and the exact content it marks. Any change to the content, model name or timestamp fails verification.
Loads a freshly generated compliance report and fills both boxes. Verify it, then change any character in either box and verify again.
Verify without trusting us
content_sha256must equal the SHA-256 of the exact content.- Rebuild the signed payload: the marking without
signed,signature,reasonandkey_id, as canonical JSON (keys sorted, no whitespace, UTF-8). - Check the base64
signatureover those bytes with the public key above.
An unsigned marking (signed: false) still declares the output as AI-generated; only the cryptographic proof is missing. Marks cover text outputs and exports; free-form text copied out of a mark can't carry it, a known limit of text watermarking.