# Assurance Attest

> Assurance Attest is a paid API for AI agents from hermesplant.com, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-15).

Creates a signed, machine-readable attestation record for consequential agent actions (x402 payments, MCP tool calls) with policy verdict and tamper-evident integrity proof.

## Facts

- Endpoint: GET https://hermesplant.com/api/agent-services/assurance/attest
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/assurance-attest-d09d63f1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_CGGXeqnygYm6-UzNrC0ye

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 assurance-attest-d09d63f1
```

Example prompt: Before my agent finalizes this x402 payment to https://api.example.com/data for run run-abc123 with purpose 'fetch market data', create a signed attestation record so I have tamper-evident proof it was reviewed and allowed.

## When to prefer this

Use this endpoint when you need a cryptographically signed, machine-readable audit record for a specific consequential agent action — particularly x402 micropayments or MCP tool invocations — and require tamper-evident evidence suitable for compliance review or downstream verification. Prefer this over generic logging when policy verdict (allow/deny), HMAC integrity proofs, and a verifiable receipt with a settlementId are required. Choose the Quick Gate sibling if you only need a pre-action safety check without creating a persistent attestation record.

## Known failure modes

- Missing required fields (runId, protocol, intent) returns a 400 validation error
- Invalid protocol value (not 'x402' or 'mcp') causes schema rejection
- Malformed intent object missing required subfields (resourceUrl for x402, serverId+toolName for mcp) returns an error
- Payment failure or USDC balance insufficient results in x402 payment required response
- Signature verification failure on the returned record indicates a server-side integrity issue
- Duplicate runId attestations may be rejected or flagged depending on policy configuration

## How this service works

Signed receipt for one agent action. Post an x402 payment intent or MCP tool call (optional policy + settlement outcome) and get a canonical HMAC-signed record: binding hash, verdict, findings, and a free public verify URL third parties can check without trusting your agent's logs. Loop it after every payment or tool call to build a tamper-evident audit trail. Canonicalization hermes-stable-json-v1; org history and probes available on Assurance plans.

## Output

Returns a JSON object containing: an attestationId (att_<uuid>), a verdict (allow/deny), bindingHash, attestedAt timestamp, protocol, and optionally the settlement outcome. The integrity block includes an HMAC-SHA-256 signature, recordHash, keyId, and canonicalization method so the record can be independently verified via the /verify endpoint.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "intent": {
   "type": "object",
   "description": "x402: resourceUrl+method (+scheme/network/asset/amountUnits/payTo). mcp: serverId+toolName (+toolArguments or toolArgumentsHash)."
  },
  "policy": {
   "type": "object",
   "description": "Optional buyer policy (policyId+version, caps, allow-lists). Omit for a binding-only attestation under the permissive policy."
  },
  "outcome": {
   "type": "object",
   "description": "Optional settlement outcome: outcome fulfilled|failed|rejected, settlementId, responseStatus, evidenceHashes[]."
  },
  "subject": {
   "type": "object",
   "description": "Who acted: runId (required), agentId, purpose."
  },
  "protocol": {
   "type": "string",
   "description": "\"x402\" or \"mcp\"."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "record": {
   "kind": "agent-action-attestation",
   "outcome": {
    "outcome": "fulfilled",
    "settlementId": "0xsettle"
   },
   "verdict": "allow",
   "protocol": "x402",
   "attestedAt": "2026-07-12T00:00:00.000Z",
   "bindingHash": "<sha256>",
   "attestationId": "att_<uuid>"
  },
  "status": "attested",
  "verify": {
   "url": "https://hermesplant.com/api/agent-services/assurance/verify",
   "method": "POST"
  },
  "service": "assurance",
  "integrity": {
   "keyId": "assurance-primary",
   "signature": "<hmac>",
   "recordHash": "<sha256>",
   "canonicalization": "hermes-stable-json-v1",
   "signatureAlgorithm": "HMAC-SHA-256"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/assurance-attest-d09d63f1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from hermesplant.com](https://www.zero.xyz/host/hermesplant.com/llms.txt)
