What gets recorded
- Access. When a participating gateway lets an agent read a work, it signs an access receipt. The receipt names the agent, the delegation it acted under, the person or company at the root of that delegation, the hash of the data it read, the purpose it declared and the terms in force at that moment. The gateway signs it, not the agent.
- Refusal. When a request falls outside the terms, the gateway refuses before it loads the work and signs the refusal too, so a creator can see that a request was made and turned down.
- Attribution of output. When the agent produces something from the work, an attribution record binds the output's hash to the work, its creator, its license and how the output changes it.
- Proof a source can check alone. Access receipts are committed under a Merkle root, and an inclusion proof lets a source confirm that a receipt about its work is in the committed set without seeing the other receipts. Attribution reports for an output carry the same kind of root over the receipts behind them.
Run it
The noncommercial access demo shows the whole loop on a synthetic work marked CC BY-NC 4.0. The same agent asks twice, with two declared purposes. The commercial request is refused before retrieval. The noncommercial one is allowed, and its output carries attribution back to the work. A standalone verifier checks every signature and link, and seven tampered bundles each fail.
git clone https://github.com/aeoess/noncommercial-access-demo
cd noncommercial-access-demo
npm install
npm start
npm run verify
Where it fits
Other efforts already name the work and state the terms. The IETF AI Preferences work defines how preferences for AI uses are expressed. RSL states licensing and compensation terms. Creative Commons licenses and CC signals set the conditions creators choose. ISCC gives a work a content-derived identifier that records can bind to. These records add the evidence of what happened, built to sit next to all of them.
The closest related proposal is draft-reilly-aipref-compliance, which defines compliance records for retrievals, aggregated under a signed Merkle root so a publisher can audit only its own records. The records here add the agent's side of a request, which that draft does not address. They carry the delegation behind the request, a refusal made before retrieval, and attribution of what the agent produced.
What it does not do
- It does not interpret a license or decide whether a use is legally permitted.
- A declared purpose is a declaration. A signature shows who declared it, not that it is true.
- It covers requests that pass through a gateway that produces these records. It cannot see use that happens elsewhere.
- It does not detect a work inside a trained model.
Code
- Access receipt and terms types and contribution and attribution report types in the SDK.
- Access receipts, Merkle commitment and inclusion proofs, and attribution report computation and verification.
- Apache 2.0. For questions or a pilot, use the contact page.