Proof that a work existed by a date
A signed, dated record per piece, with outside timestamps on the daily root.
Who this is for
Writers, artists, researchers and studios.
The problem
In a dispute over who had a work first, a file's own dates are easy to fake. A record fixes that this exact work existed by its logged time, signed by you, and the daily root carries outside timestamps that do not depend on the registry.
How it works
- Hash each finished piece and publish a provenance record.
- Use
lineageto show drafts and what fed what. - Export a bundle with proofs and timestamps when you need to show it.
Routes it uses
POST /v1/records: append a signed record; the answer carries its digest and inclusion proof.GET /r/{digest}/certificate: what the record proves, with signer, log position, proof and timestamps.POST /v1/export: an offline bundle with proofs and timestamps for up to 100 records.
Set it up
Step 1. Publish when finished
Hash the final file and publish a provenance record. Keep the original file safe: the record holds only its hash.
BODY='{ ...record }'
SIG=$(printf %s "$BODY" | ./sign-ed25519) # base64url signature over these exact bytes
curl -s -X POST 'https://aisourceoftruth.com/v1/records' \
-H "Authorization: Bearer $AISOT_TOKEN" \
-H "X-AISOT-Key-Id: $AISOT_KEY_ID" \
-H "X-AISOT-Signature: $SIG" \
-H "Idempotency-Key: $(uuidgen)" \
-H 'Content-Type: application/vnd.aisot.record+json' \
--data-binary "$BODY"
Check: The record's asset digest matches your file.
Step 2. Read the certificate
The certificate lists the appended time, the inclusion proof and the daily root's RFC 3161 timestamps and Bitcoin anchor once they exist.
curl -s -H 'Accept: application/json' 'https://aisourceoftruth.com/r/{digest}/certificate'
Check: The certificate shows the proof, or when it will be ready.
Step 3. Export for a dispute
Export a bundle and give it with the file. Anyone can check it offline.
curl -s -X POST 'https://aisourceoftruth.com/v1/export' \
-H 'Content-Type: application/json' \
--data '{"digests":["{digest}"]}'
Check: node verify.mjs bundle.json passes.
Publishing needs a publisher key and a token. The one-time setup is on /agents and in the plan's design.md.
Wire it into your agent
Add it to the step where a piece is marked final, such as an export or a release script.
MCP: add https://aisourceoftruth.com/mcp to the agent's MCP servers. Tools used: publish_record, get_certificate, export_bundle. Read tools need no token.
With the PromptReports products, or alone
- No PromptReports product adds a step here.
- Alone: every step above uses only AI Source of Truth.
Expected outcomes
- Each finished work has a dated, signed record and an offline bundle.
What it does not prove
- A record proves this exact work existed by its recorded time and who signed it. It does not prove who wrote it, so it is evidence for a claim, not a verdict.
The OpenSpec plan for your agent
Your coding agent fetches the plan and writes it into your repo as openspec/changes/integrate-aisot-dated-works/:
curl -H 'Accept: application/json' 'https://aisourceoftruth.com/use-cases/proof-of-authorship/openspec?lang=python'
proposal.md: why, what changes in your product, impact.design.md: where the calls sit in your agent, with code for each call.tasks.md: checkable tasks, each step paired with a check against the live registry.specs/dated-works/spec.md: the requirements and scenarios.
Read it here: OpenSpec plan. Back to all use cases or the documentation library.