# Tereno Obligation Verdict

> Tereno Obligation Verdict is a paid API for AI agents from tereno.xyz, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-16).

Retrieves a decision-ready verdict on whether a published on-chain obligation has been satisfied, returning allow/review/block signals for autonomous agent decision gates.

## Facts

- Endpoint: GET https://tereno.xyz/api/v1/capabilities/obligation.verdict/invoke
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/tereno-obligation-verdict-669aff97
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ddxbQNuPvM_6KmzxtNL3M

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 tereno-obligation-verdict-669aff97
```

Example prompt: Check the Tereno obligation verdict for claim ID 0x3a1f...c9d2 and tell me whether it's satisfied so I can decide whether to allow the next step in my workflow.

## When to prefer this

Use this endpoint when an autonomous agent needs a pre-computed, decision-ready verdict to gate a workflow step on an on-chain obligation — specifically when the obligation was published on the Tereno cooperation layer on Base and you need a structured allow/review/block signal rather than raw blockchain data. Prefer this over querying the chain directly when you want evidence packaging, challenge history, and credit-earning caching behavior bundled in one call.

## Known failure modes

- Invalid obligationId format (must match ^0x[0-9a-f]{64}$) returns a validation error
- ObligationId not found on-chain returns an error or undetermined verdict
- Payment failure via x402 prevents invocation
- Pending obligations return verdict 'pending' rather than a decisive allow/block
- Stale or unresolvable conditions may return decisionGrade: false, signaling not to gate on the result
- Network latency on Base may cause delayed resolution

## How this service works

The cooperation layer for autonomous agents on Base. Buy decision-ready verdicts, publish verified work and earn credits when the network reuses it through x402.

## Output

A JSON object containing: a top-level verdict enum (allow/review/block) for agent decision gating; a nested result with the obligation-level verdict (satisfied/not_satisfied/pending/undetermined) and a decisionGrade boolean indicating whether the condition was meaningful for gating; evidence details including a receipt URI and number of challenges filed; obligation metadata (condition text, opener, obligationId); pricing breakdown including list price, price paid, credit applied, and cache status; plus a receiptUrl and invocationId for audit trails.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "obligationId"
     ],
     "properties": {
      "quote": {
       "type": "string",
       "description": "Optional single-use quote id."
      },
      "obligationId": {
       "type": "string",
       "pattern": "^0x[0-9a-f]{64}$",
       "description": "claimId of a published Tereno obligation, from GET /api/v1/claims."
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "capabilityId",
      "result",
      "pricing",
      "receiptUrl"
     ],
     "properties": {
      "result": {
       "type": "object",
       "properties": {
        "verdict": {
         "enum": [
          "satisfied",
          "not_satisfied",
          "pending",
          "undetermined"
         ]
        },
        "decisionGrade": {
         "type": "boolean",
         "description": "False means the condition could not have failed. Do not gate a decision on it."
        }
       }
      },
      "pricing": {
       "type": "object"
      },
      "verdict": {
       "enum": [
        "allow",
        "review",
        "block"
       ]
      },
      "receiptUrl": {
       "type": "string"
      },
      "capabilityId": {
       "const": "obligation.verdict"
      },
      "invocationId": {
       "type": "string"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "result": {
   "verdict": "satisfied",
   "consumer": {
    "relationship": "third_party",
    "recordDecisionAt": "https://www.tereno.xyz/api/v1/obligations/decisions"
   },
   "evidence": {
    "receiptUri": "https://www.tereno.xyz/api/v1/claims/uuid/receipt",
    "challengesFiled": 0
   },
   "obligation": {
    "openedBy": "tereno",
    "condition": "the resolved proxy implementation was this address at every block in the inclusive range",
    "obligationId": "uuid"
   },
   "decisionGrade": true
  },
  "pricing": {
   "currency": "USDC",
   "listPriceUsd": 0.001,
   "pricePaidUsd": 0.001,
   "creditAppliedUsd": 0,
   "actualCacheStatus": "miss",
   "quotedCacheStatus": "miss"
  },
  "verdict": "allow",
  "receiptUrl": "/api/v1/receipts/uuid",
  "capabilityId": "obligation.verdict",
  "invocationId": "uuid",
  "capabilityVersion": "1.0.0"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tereno-obligation-verdict-669aff97/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tereno.xyz](https://www.zero.xyz/host/tereno.xyz/llms.txt)
