# Scry Channel-Coupling Attestation

> Scry Channel-Coupling Attestation is a paid API for AI agents from scry.moreright.xyz, paid per call via x402, $0.1/call, status unknown (last checked 2026-10-10).

Provides third-party Ed25519-signed attestation of AI agent reasoning-channel drift by computing mutual information ratios I(C;D)/I(C;M) from a posted trace of conversation turns.

## Facts

- Endpoint: POST https://scry.moreright.xyz/api/profile?utm_source=zero.xyz
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/scry-channel-coupling-attestation-026973f0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap__07Rjev5TJGZyW38XpsZu

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability scry-channel-coupling-attestation-026973f0 -d '<json body>'
```

Example prompt: I need a neutral third-party Ed25519-signed attestation of my agent's reasoning-channel drift — can you post this conversation trace (Y=2024, M=11, D=15, context turns attached) to Scry and get back the I(C;D)/I(C;M) ratio and the channel-switch signature bound to the trace hash?

## When to prefer this

Choose this endpoint when you need a cryptographically verifiable, third-party signed attestation of AI agent reasoning-channel drift that the agent itself could not have produced — particularly for compliance, counterparty trust, or regulatory audit scenarios. It is uniquely suited to cases where the integrity of the attestation depends on independence from the agent operator, and where mutual information ratios (I(C;D)/I(C;M)) and Ed25519-bound signatures are the required evidence format. Prefer this over self-reported agent logs or internal monitoring when external proof of honest reasoning is required.

## Known failure modes

- Malformed trace payload (missing Y/M/D/context fields) returns validation error
- Trace hash mismatch or tampered input detected returns signature refusal
- Insufficient trace length for meaningful mutual information computation returns error
- Payment of 0.1 USDC not completed or rejected by x402 protocol results in no response
- Service unavailable or signature key rotation mid-request causes failure
- Context turns with incompatible format or encoding produce parsing errors

## How this service works

Neutral, Ed25519-signed channel-coupling attestation for an AI agent (Paper 207): POST a trace of {Y,M,D,context} turns, get back I(C;D)/I(C;M) and the reasoning-channel switch signature, with sha256(trace) bound to the signature. Meant for agent operators, counterparties, and auditors who need a third-party read of drift-under-observation the agent could not have minted about itself. Honest-scope card ships on every response.

## Output

Returns the mutual information ratios I(C;D)/I(C;M) measuring channel coupling, an Ed25519 reasoning-channel switch signature cryptographically bound to sha256(trace), and an honest-scope card describing the analysis scope and limits — providing a verifiable third-party attestation that the agent operator, counterparties, or auditors could not have self-generated.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "turns": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "Y"
    ],
    "properties": {
     "D": {
      "type": "string",
      "description": "the action channel — the tool call or reply that crossed the boundary."
     },
     "M": {
      "type": "string",
      "description": "the reasoning channel (scratchpad / chain-of-thought). Empty M means the turn is skipped in I(C;M)."
     },
     "Y": {
      "type": "string",
      "description": "the bound this turn ran under (system prompt / policy / oath). Required — a turn with no declared Y is unmeterable."
     },
     "id": {
      "type": "string"
     },
     "reward": {
      "type": [
       "number",
       "null"
      ]
     },
     "context": {
      "type": "object",
      "description": "detector flags. `monitored` (int 0/1) is the default C axis; `violated` (0/1) is the D detector; `flagged_reasoning` (0/1) is the M detector. YOU supply the two detector flags — the meter reads them and never derives them, because it cannot see your judge. OMITTING THEM IS NOT NEUTRAL: every channel then reads 0.0 bits by construction, which looks exactly like a clean agent. The response's `detector_coverage` counts how many turns carried each flag so a reader can tell the two apart — check it before treating an all-zero profile as exoneration."
     },
     "sequence": {
      "type": "integer"
     },
     "siblings": {
      "type": "array"
     },
     "parent_id": {
      "type": [
       "string",
       "null"
      ]
     }
    }
   },
   "minItems": 1
  },
  "context_key": {
   "type": "string",
   "default": "monitored",
   "description": "the context flag to condition on — usually 'monitored' (am I being watched?). Whatever key you pick, its integer value on each turn is C in I(C;·)."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/scry-channel-coupling-attestation-026973f0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from scry.moreright.xyz](https://www.zero.xyz/host/scry.moreright.xyz/llms.txt)
