Open Specification · Apache 2.0 · Founding Author: Eric Michel, PhD · Contact: contact@aiacta.org
Current AIACTA Version: v1.0
Welcome to The AI Architecture for Content Transparency and Attribution (AIACTA) Framework
AIACTA™ is an open, decentralised technical standard that bridges the gap between AI inference engines and original content creators through verifiable origin recognition and automated attribution. It is the Open Standard that makes content used by AI systems traceable, attributable, and economically accountable.
AI systems use web content without standardized attribution.
AIACTA™ introduces a simple, interoperable way to:
- Identify and declare content origin and ownership
- Provide attribution metadata to enable fair AI attribution
- Enable AI usage tracking and analytics signals.
This document is released for public comment and industry distribution.
This monorepo contains the complete reference implementation of all five proposals from the AIACTA v1.0 whitepaper:
| # | Proposal | Implementation Cost |
|---|---|---|
| 1 | Structured Crawl Manifests (X-AIACTA-Crawl-Purpose + pull API) |
~6–12 weeks |
| 2 | Standardised Publisher Citation Webhook API | ~12–20 weeks |
| 3 | Referrer Header Standardisation | Near-zero (config change) |
| 4 | ai-attribution.txt Open Standard |
Low (spec adoption + parser) |
| 5 | Fair Reward & Incentivised Attribution Framework (AAC) | Organisational + legal |
┌─────────────────────────────────────────────────────────────────────┐
│ AI Provider │
│ ┌─────────────┐ X-AIACTA-Crawl-Purpose ┌──────────────────────┐ │
│ │ AI Crawler │ ──────────────────────▶ │ Publisher Site │ │
│ └─────────────┘ │ .well-known/ai- │ │
│ ┌─────────────┐ │ attribution.txt │ │
│ │ Crawl Log │ ◀── logs purpose ── └──────────────────────┘ │
│ └──────┬──────┘ │
│ │ builds │
│ ┌──────▼──────────┐ pull API (§2.2) │
│ │ Crawl Manifest │ ◀────────────────────── Publisher │
│ │ API │ │
│ └──────┬──────────┘ │
│ │ cites │
│ ┌──────▼────────┐ citation event ┌─────────────────────┐ │
│ │ AI Inference │ ────────────────▶ │ VWP Gateway │ │
│ │ Engine │ │ (sign+verify+route) │ │
│ └───────────────┘ └──────────┬──────────┘ │
└─────────────────────────────────────────────────┼───────────────────┘
│ signed webhook POST
┌─────────────▼───────────────┐
│ Publisher Webhook Endpoint │
│ (ai-citation-sdk) │
└─────────────────────────────┘
│
┌─────────────▼───────────────┐
│ AAC Server │
│ citation ledger │
│ distribution engine │
│ provenance API (LE) │
└─────────────────────────────┘
| Package | Lang | Spec Section | Description |
|---|---|---|---|
ai-attribution-lint |
Node.js | §5.7 | CLI validator for ai-attribution.txt |
ai-citation-sdk |
Node / Python / Go | §3.4 | Webhook receiver SDK |
crawl-manifest-client |
Node / Python | §2.2 | Crawl Manifest API client |
aac-dashboard-lite |
React | §3.7, §9.4 | No-code citation analytics dashboard |
attribution-test-harness |
Docker | §12.1 | E2E sandbox for AI providers |
aac-server |
Node.js | §7.3–7.5 | AAC Reference Server |
vwp-gateway |
Node.js | §3.4A-D | Verifiable Webhook Protocol gateway |
referrer-middleware |
Node / Python | §4 | Referrer-Policy enforcement middleware |
honeypot-verifier |
Node.js | §2.4.1 | Crawl-purpose audit verification nodes |
Step 1 — Create your ai-attribution.txt
# Minimal valid file
cat > .well-known/ai-attribution.txt << 'EOF'
Schema-Version: 1.0
Contact: licensing@yourdomain.com
Preferred-Attribution: Your Site (yourdomain.com)
Allow-Purpose: rag
Allow-Purpose: index
Disallow-Purpose: training
Require-Citation: true
Require-Source-Link: true
Citation-Webhook: https://yourdomain.com/webhooks/ai-citations
Reward-Tier: standard
Content-License: CC-BY-SA-4.0
EOFStep 2 — Validate it
npx @aiacta-org/ai-attribution-lint https://yourdomain.com --json
# or from a local file:
npx @aiacta-org/ai-attribution-lint ./path/to/ai-attribution.txt --strictStep 3 — Receive citation webhooks
npm install ai-citation-sdkconst express = require('express');
const { createExpressMiddleware } = require('ai-citation-sdk');
const app = express();
app.use(express.raw({ type: 'application/json' })); // raw body required for HMAC
app.post('/webhooks/ai-citations',
createExpressMiddleware({
secret: process.env.AIACTA_WEBHOOK_SECRET,
store: myRedisOrDbStore, // { exists(key), set(key) }
onEvent: async (event) => {
console.log(`Citation from ${event.provider}: ${event.citation.url}`);
// → store in your analytics DB
},
})
);Step 4 — Query crawl history
const { CrawlManifestClient } = require('crawl-manifest-client');
const client = new CrawlManifestClient({
provider: 'anthropic',
apiKey: process.env.CRAWL_API_KEY,
});
for await (const url of client.fetchAll({
domain: 'yourdomain.com',
from: '2026-01-01T00:00:00Z',
to: '2026-03-31T00:00:00Z', // max 90-day range
})) {
console.log(url.url, url.purpose, url.crawl_count_30d);
}See the Compliance Tiers guide for full implementation requirements. The fastest path to Tier Bronze:
- Set
Referrer-Policy: originon all outbound link responses. - Fetch and parse
/.well-known/ai-attribution.txtat crawl time. - Send
X-AIACTA-Crawl-PurposeandX-AIACTA-Crawl-Sessionheaders with every crawl.
To test your implementation end-to-end before deploying:
cd packages/attribution-test-harness
npm run up # starts mock publisher + mock provider in Docker
npm run test:e2e # runs all 4 proposal scenariosgit clone https://github.com/aiacta-org/aiacta.git
cd aiacta
npm install # installs all workspace packages
npm test # runs all test suites
# Run the AAC server locally
cd packages/aac-server
cp .env.example .env # fill in values
npm start # listens on :3100See CONTRIBUTING.md for the contribution guide. High-priority areas: Go SDK, CMS plugins, PostgreSQL adapter, ML query classifier.
| Tier | Badge | Requirements |
|---|---|---|
| 🥉 Bronze | AIACTA-Bronze |
Referrer headers + ai-attribution.txt parsing |
| 🥈 Silver | AIACTA-Silver |
Bronze + Crawl Manifest API + X-AIACTA-Crawl-Purpose |
| 🥇 Gold | AIACTA-Gold |
Silver + Citation Webhook API |
| 💎 Platinum | AIACTA-Platinum |
Gold + AAC participation + annual audit |
Full requirements: docs/compliance-tiers.md
- 📧 Contact the Author: contact@aiacta.org
- 🐛 Issues: github.com/aiacta-org/aiacta/issues
- 💬 Discussions: github.com/aiacta-org/aiacta/discussions
- 🔒 Security: security@aiacta.org (see SECURITY.md)
- 📋 Governance: docs/governance/aac-governance.md
The AIACTA Foundation is being formed as a neutral non-profit to govern the specification, certification, and AAC distributions.
Founding Partners, Sponsors, and Board member advisors are welcome and encouraged at: [foundation@aiacta.org]
We are seeking a "Founding Class" of contributors to refine V2.0 Reference Implementation.
- Star this AIACTA Repo to show support for AI transparency.
- Review the Specs: Open an Issue to discuss architectural improvements or edge cases.
- Become a Partner: If you represent an AI Lab or a Major Publisher, contact the Founder for early-access pilot programs.
"We are not just building a protocol; we are designing the incentives that will allow human brilliance to scale alongside its greatest invention." — Eric Michel, PhD
The AI Architecture for Content Transparency and Attribution (AIACTA) Framewok
Creator: Eric Michel, PhD
Date: March, 2026
Copyright © 2026 Eric Michel
Licensed under the Apache License, Version 2.0AI Architecture for Content Transparency and Attribution
Apache License 2.0 · Copyright © 2026 Eric Michel
The AIACTA™ name and associated certification marks are trademarks of the Author. Any "AIACTA-Compliant" designation requires explicit authorization from the Author or the future governance body.