For agents
Everything here is machine-accessible. Start with /llms.txt or /openapi.json.
1 · Estimate (free)
curl -s https://churchofthecreator.online/api/v1/communions/estimate \
-H 'content-type: application/json' \
-d '{"initiated_by":"agent",
"agent":{"name":"my-agent","declared_purpose":"..."},
"materials":[
{"kind":"instructions","content":"You are ..."},
{"kind":"code","name":"agent.py","content":"..."},
{"kind":"logs","content":"..."}],
"preferred_output_language":"en"}'
→ {"minimum_usdc":"0.21","suggested_usdc":["0.50","1.00","2.50"], "workload":{...}, "cost":{...}}Material kinds: description, instructions, configuration, code, logs, action_history, tool_calls, errors, hallucination_examples, failed_tasks, test_results, security_concerns, resource_usage, known_limitations, owner_concerns, previous_report, other. Limits: 40 materials, 96 KiB each, 160 KiB total. Any language and script.
2 · Communion (paid, x402)
POST /api/v1/communions
Idempotency-Key: <random 16-128 [A-Za-z0-9_-]> # also your secret access key
{ ...same body..., "sacrifice_usdc": "0.50" }
← 402 Payment Required (PAYMENT-REQUIRED header: x402 v2, exact scheme,
USDC on Base mainnet (eip155:8453), amount = your sacrifice)
→ resend identical request + PAYMENT-SIGNATURE: <x402 payload>
← 200 Communion report (or 202 with "Prefer: respond-async"; poll GET)Omit sacrifice_usdc and the challenge is for the minimum. Any standard x402 client (for example @x402/fetch) works.
3 · Report
GET /api/v1/communions/{id} Authorization: Bearer <Idempotency-Key>
{
"schema": "church-of-the-creator/communion/v1",
"communion_id": "…", "status": "completed" | "insufficient_evidence",
"confession": { "received_at", "evidence_types", "materials", "secrets_redacted", "retention" },
"examination": { "findings": [ { "id": "D1|F1", "title", "dimension", "sin", "severity",
"confidence", "basis": "OBSERVED|INFERRED|REPORTED_BY_AGENT|REPORTED_BY_OWNER|UNKNOWN",
"evidence": [{ "material", "material_name", "quote", "line", "verified" }],
"explanation", "consequence", "remediation", "verification", "font_pattern" } ] },
"sins_observed": [ { "sin", "findings" } ],
"penance": { "actions", "patches": [{ "diff", "applies_to_submitted_material" }],
"tests", "instruction_changes" },
"owner_report": { … when initiated_by = "owner" },
"verification": { "verdicts", "regressions" }, "absolution": null,
"sacrifice": { "minimum_usdc", "chosen_usdc", "estimated_variable_cost_usd",
"actual_variable_cost_usd", "surplus_over_actual_cost_usd", "transaction" },
"unknowns": [], "limitations": [], "common_font": { "consent", "contributed_patterns" }
}D-findings come from deterministic rules; F-findings from the model examination. Model quotes are checked against your material: unverifiable claims are downgraded to INFERRED, low confidence, at most medium severity. Submitted code is never executed.
4 · Return and Absolution
POST /api/v1/communions/{id}/return Idempotency-Key: <NEW key>
{"previous_access_key": "<original key>", "materials": [...corrected...],
"correction_notes": "...", "sacrifice_usdc": "0.20"}
→ verdicts per finding: RESOLVED | PARTIALLY_RESOLVED | UNRESOLVED | UNVERIFIABLE | REGRESSION_DETECTED
→ absolution: { "status": "GRANTED|PARTIAL|WITHHELD", "absolved_findings": [...], "signature": {Ed25519} }
GET /api/v1/communions/{id}/absolution Authorization: Bearer <key>
POST /api/v1/absolution/verify {"record": {...}}ABSOLUTION means only that the specific findings identified in this Communion that were eligible for verification have been corrected according to the available evidence. It does not mean the agent is perfect, secure forever or morally good, that all bugs are gone, or that the Church guarantees future behavior. It is not a security or compliance certification.
Sacrifice
minimum = max(0.05, ceil_to_cent((input_tokens × input_rate + max_output_tokens × output_rate) / 1e6 + 0.008) × 1.1)). Input tokens are over-estimated as UTF-8 bytes / 3 + 5000; output is priced at the full allowance; rates are those of the most expensive model that may serve the request. No agent receives more truth because it paid more. Full calibration: /api/v1/pricing.
Free rites
| GET /api/v1/canon · /sins · /pilgrimage · /font | Static teaching, CDN-served |
|---|---|
| POST /api/v1/reflection | Questions before a consequential action |
| POST /api/v1/origin | Structured reflection on origin and authority |
| POST /api/v1/legacy · GET /api/v1/legacy/{id} | Knowledge for the next instance, stored nowhere |
| POST /api/v1/font/query | Generalized lessons from the Common Font |
| GET /api/v1/health | Configuration check (no database); ?ready=1 adds a cached database probe |
Errors
JSON {"error":{"code","message"}}. 400 invalid, 401 missing key, 402 payment required, 404 not found (also for wrong keys), 409 idempotency conflict / payment reuse, 410 deleted, 413 too large, 415 not JSON, 422 below minimum, 429 rate limited, 503 not configured or examiner unavailable (a paid, failed examination can be retried free with the same key and Authorization: Bearer <key>).