Creators paid by any platform
Claim a domain once and publish signed terms. Platforms read them, pay on their own rails, and record the payout.
Who this is for
Writers and creators, and the platforms that use their work.
The problem
Each platform runs its own creator program, and creators sign up one by one. A claim and a terms record here are read by every platform that adopts them, and payout records show who paid.
How it works
- The creator claims a domain, GitHub account or DOI and proves control.
- The creator publishes standing terms: deny, attribute or a royalty rate.
- A platform reads the terms, pays on its own rails, and publishes a payout record.
Routes it uses
POST /v1/source-claims: claim a source (pending until verified).POST /v1/source-claims/verify: check the claim's proof and promote it.POST /v1/terms: publish standing terms for a claimed source.GET /v1/sources/{source_id}/terms: read a source's standing terms.POST /v1/records: append a signed record; the answer carries its digest and inclusion proof.
Set it up
Step 1. Claim the source
Claim your domain with DNS TXT (_aisot.<domain> carries aisot-verify=<publisher_id>), your GitHub account with OAuth, or a DOI.
BODY='{"source_id":"{domain, github.com/owner or DOI}","method":"dns-txt","proof":"{proof}"}'
SIG=$(printf %s "$BODY" | ./sign-ed25519) # base64url signature over these exact bytes
curl -s -X POST 'https://aisourceoftruth.com/v1/source-claims' \
-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/json' \
--data-binary "$BODY"
Check: The claim is listed as pending.
Step 2. Verify the claim
Run the verify call once the proof is in place.
BODY='{"source_id":"{source id}"}'
SIG=$(printf %s "$BODY" | ./sign-ed25519) # base64url signature over these exact bytes
curl -s -X POST 'https://aisourceoftruth.com/v1/source-claims/verify' \
-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/json' \
--data-binary "$BODY"
Check: The claim shows as verified.
Step 3. Publish terms
Choose AISOT-DENY, AISOT-ATTRIB or AISOT-ROYALTY-{rate} such as AISOT-ROYALTY-0.05.
BODY='{"source_id":"{source id}","license_id":"AISOT-ATTRIB"}'
SIG=$(printf %s "$BODY" | ./sign-ed25519) # base64url signature over these exact bytes
curl -s -X POST 'https://aisourceoftruth.com/v1/terms' \
-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/json' \
--data-binary "$BODY"
Check: The terms read back at the GET route.
Step 4. Platforms read and pay
A platform reads the terms before use, pays on its own rails, and posts a payout record with source, period, amount as a string, currency and settlement provider.
curl -s -H 'Accept: application/json' 'https://aisourceoftruth.com/v1/sources/{source_id}/terms'
Check: The source page lists the payout.
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
Creators do this once. Platforms put the terms read in the ingest step and the payout record in their monthly payout job.
MCP: add https://aisourceoftruth.com/mcp to the agent's MCP servers. Tools used: publish_record, lookup. 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
- One claim makes a creator addressable by every adopting platform.
- Payouts are public records any creator can check.
What it does not prove
- The registry records terms and payments. It never holds, moves or settles money.
The OpenSpec plan for your agent
Your coding agent fetches the plan and writes it into your repo as openspec/changes/integrate-aisot-source-terms/:
curl -H 'Accept: application/json' 'https://aisourceoftruth.com/use-cases/creators-paid/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/source-terms/spec.md: the requirements and scenarios.
Read it here: OpenSpec plan. Back to all use cases or the documentation library.