← Back to FairAudit

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

  1. content_sha256 must equal the SHA-256 of the exact content.
  2. Rebuild the signed payload: the marking without signed, signature, reason and key_id, as canonical JSON (keys sorted, no whitespace, UTF-8).
  3. Check the base64 signature over 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.