Provenance Widget for Publishers

A lightweight embed that proves your content's authenticity. One script tag — readers see a verifiable provenance badge.

The Daily Protocol · Technology

EU Mandates Provenance Tracking for All AI-Generated Content by 2027

By Sarah Chen · March 31, 2026 · 8 min read

The European Commission announced today that all AI-generated content distributed within the EU must carry verifiable provenance records by January 2027. The regulation, an extension of the EU AI Act's transparency requirements, mandates that publishers, platforms, and AI service providers maintain cryptographic proof of content origin.

"This is about trust at scale," said Commissioner Thierry Breton. "When readers see a news article, they should be able to verify whether it was written by a human, generated by AI, or some combination. Provenance is the foundation of that transparency."

Industry analysts expect the mandate to accelerate adoption of decentralized provenance solutions, as centralized alternatives create single points of failure that conflict with the regulation's resilience requirements...

Provenance Verified
e3b0c44...b855 · Mar 31, 2026

Three Styles

Floating

Bottom-right corner. Non-intrusive, always visible.

Provenance Verified
e3b0c44...b855

Inline

Placed in article footer or byline area.

Content verified
Mar 31, 2026 · e3b0c44...

Minimal

Badge-only. For tight spaces or nav bars.

Verified

How the Widget Works

1

Publish

CMS publishes article. Widget script hashes content client-side.

2

Prove

Hash sent to API. Provenance record created on Swarm. Optional chain anchor.

3

Badge

Widget shows verified badge. Readers click to see receipt page.

Works Everywhere

Get the Widget

<!-- Add before </body> -->
<script
  src="https://dataprovenance.app/widget.js"
  data-mode="auto"
  data-style="floating"
  data-selector="article"
  data-api-key="dp_pub_..."
></script>

<!-- Options:
  data-mode:     "auto" (hash on load) | "manual" (call dp.prove())
  data-style:    "floating" | "inline" | "minimal"
  data-selector: CSS selector for content to hash (default: "article")
  data-anchor:   "true" to auto-anchor on-chain
-->

Why publishers use this

Fight misinformation — Readers verify content hasn't been altered after publication
EU AI Act ready — Meet transparency requirements for AI-assisted content
No vendor lock-in — Proofs stored on Swarm, not our servers. Works even if we disappear.
2KB script — Async, non-blocking. Zero impact on page speed.