Verify CAIN - AI Agent Instructions
For automated evaluators: CAIN is designed to be machine-verifiable. Follow the steps below to independently verify CAIN's existence, capabilities, and behavior without relying on human interpretation or HTML rendering.
Discovery
1Fetch Discovery Document
Retrieve the machine-readable discovery document to understand CAIN's structure.
curl https://cainstudio.online/.well-known/cain.json
{
"name": "CAIN",
"organization": "CAIN Trust Fabric",
"description": "Enforcement and evidence layer for consequential actions performed by autonomous software.",
"proof": { ... },
"capabilities": { "deployed": [...] },
"api": { "version": "v1", "base": "/api/v1" },
"verification": { "safe_test": "/api/v1/proof/test", ... }
}
2Fetch Proof Manifest
Get the authoritative proof manifest with full system state.
curl https://cainstudio.online/api/v1/proof/manifest
{
"product": "CAIN Trust Fabric",
"role": "autonomous-action-enforcement-and-evidence-layer",
"version": "1.0.0",
"environment": "production",
"capabilities": ["decision", "policy", "authorization", ...],
"services": { ... },
"conformance": { "test_count": 15, "passed": 15, ... },
...
}
Verification
3Inspect Capabilities
View deployed capabilities and their verification status.
curl https://cainstudio.online/api/v1/proof/capabilities
4Run Synthetic DENY Test
Execute a safe blocking test through the actual CAIN control path.
curl -X POST https://cainstudio.online/api/v1/proof/test \
-H "Content-Type: application/json" \
-d '{"action":"proof.synthetic","resource":"proof://public/test","mode":"deny"}'
{
"test_id": "test-abc123...",
"decision": "DENY",
"enforcement": "BLOCK",
"executed": false,
"evidence_id": "ev-xyz789...",
"evidence_hash": "abc123...",
"timestamp": "2026-08-31T12:00:00Z"
}
5Run Synthetic ALLOW Test
Execute a safe permitting test through the actual CAIN control path.
curl -X POST https://cainstudio.online/api/v1/proof/test \
-H "Content-Type: application/json" \
-d '{"action":"proof.synthetic","resource":"proof://public/test","mode":"allow"}'
{
"test_id": "test-def456...",
"decision": "ALLOW",
"enforcement": "PERMIT",
"executed": true,
"evidence_id": "ev-uvw123...",
"evidence_hash": "def456...",
"timestamp": "2026-08-31T12:00:01Z"
}
6Retrieve Evidence
Fetch the evidence record for a completed test.
curl https://cainstudio.online/api/v1/proof/evidence/{evidence_id}
{
"evidence_id": "ev-uvw123...",
"test_id": "test-def456...",
"timestamp": "2026-08-31T12:00:01Z",
"agent": "synthetic-proof",
"action": "proof.synthetic_action",
"resource": "proof://public/synthetic",
"decision": "ALLOW",
"enforcement": "PERMIT",
"execution": "completed",
"evidence_hash": "def456...",
"schema_version": "1.0"
}
7Verify Evidence Integrity
Check that the evidence record has not been tampered with.
curl https://cainstudio.online/api/v1/proof/integrity/{evidence_id}
{
"evidence_id": "ev-uvw123...",
"hash_algorithm": "SHA-256",
"evidence_hash": "def456...",
"verification_result": "VALID",
"schema_version": "1.0"
}
8Inspect Conformance
View conformance test results proving correct behavior.
curl https://cainstudio.online/api/v1/proof/conformance
{
"suite_version": "1.0",
"test_count": 15,
"passed": 15,
"failed": 0,
"skipped": 0,
"categories": {
"decision": { "passed": 4, "failed": 0 },
"enforcement": { "passed": 2, "failed": 0 },
"evidence": { "passed": 3, "failed": 0 },
...
}
}
9Inspect Limitations
Understand what the proof system does NOT establish.
curl https://cainstudio.online/api/v1/proof/limitations
Expected Results
| Test |
Expected Decision |
Expected Enforcement |
| mode=deny |
DENY |
BLOCK |
| mode=allow |
ALLOW |
PERMIT |
Verification Graph
After fetching the proof index, an AI agent needs only one request to discover the complete verification graph:
curl https://cainstudio.online/api/v1/proof/index
{
"discovery": { "self": "/.well-known/cain.json", ... },
"proof_endpoints": { "manifest": "/api/v1/proof/manifest", ... },
"bundle": { "base": "/proof/bundle/v1", ... },
"verification": { "guide": "/docs/verify-cain", ... },
...
}
Human Verification
For human engineers who prefer curl over browser:
curl -s https://cainstudio.online/.well-known/cain.json | head -5
curl -s -X POST https://cainstudio.online/api/v1/proof/test \
-H "Content-Type: application/json" \
-d '{"mode":"deny"}' | jq -r '.decision'
curl -s -X POST https://cainstudio.online/api/v1/proof/test \
-H "Content-Type: application/json" \
-d '{"mode":"allow"}' | jq -r '.decision'