# Hearth x402 Pay-Safety Precheck

> Hearth x402 Pay-Safety Precheck is a paid API for AI agents from 138-197-15-135.sslip.io, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-31).

Checks whether a given x402-gated API URL is safe to pay, returning a trust score, price validation, and fraud-risk signals before an AI agent spends USDC.

## Facts

- Endpoint: GET https://138-197-15-135.sslip.io/v1/x402/precheck?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/hearth-x402-pay-safety-precheck-d3075880
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_bwCPLEs7nSUuYhHZMi0rR

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 hearth-x402-pay-safety-precheck-d3075880
```

Example prompt: Before my agent pays for that x402 API at https://example.com/api/data, can you run a Hearth precheck on it to make sure it's safe — flag any payTo hijack risks and check whether the price looks fair compared to the market?

## When to prefer this

Use this endpoint when an AI agent is about to autonomously spend USDC on an x402-gated API and needs a pre-payment safety gate — especially for unknown or newly discovered endpoints, when you want to validate the payTo wallet address, or when you suspect the advertised price differs from the on-chain reality. Prefer the `deep=1` option when freshness matters and the index data might be stale.

## Known failure modes

- URL not reachable or not an x402 resource — returns null fields with low confidence
- payTo address mismatch detected — flagged in signals with hijack warning
- Price exceeds maxPrice threshold — bait-and-switch signal raised
- Deep scan timeout if on-chain data is slow — may fall back to index
- Invalid or malformed URL input — likely 400-level error or empty response

## How this service works

x402 pay-safety precheck, ranked x402 API discovery, onchain (Base/EVM/Solana) data and web-to-Markdown for AI agents. Pay per call with x402 (USDC on Base).

## Output

Returns a JSON object with an `allow` boolean recommendation, integer trust `score` (0–100), `verdict` string (e.g. 'pay'), `priceUsd` of the endpoint, `confidence` level ('high'/'medium'/'low'), `market` object with median price and ratio, an array of `signals` with severity-coded risk codes and details, and `reasons` for any flags raised.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "queryParams"
   ],
   "properties": {
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "url": {
       "type": "string",
       "description": "x402 resource URL to check"
      },
      "deep": {
       "type": "string",
       "description": "1 = force a live ~75h on-chain scan instead of the index (slower)"
      },
      "payTo": {
       "type": "string",
       "description": "Expected payTo (0x…, Base); flags payTo hijack"
      },
      "method": {
       "type": "string",
       "description": "GET or POST (default: try GET then POST)"
      },
      "maxPrice": {
       "type": "string",
       "description": "Max USD you expect to pay; flags bait-and-switch pricing"
      }
     }
    }
   }
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "json"
    },
    "example": {
     "type": "object",
     "required": [],
     "properties": {
      "allow": {
       "type": [
        "boolean",
        "null"
       ]
      },
      "score": {
       "type": [
        "integer",
        "null"
       ]
      },
      "market": {
       "type": [
        "object",
        "null"
       ]
      },
      "schema": {
       "type": [
        "string",
        "null"
       ]
      },
      "reasons": {
       "type": [
        "array",
        "null"
       ]
      },
      "signals": {
       "type": [
        "array",
        "null"
       ]
      },
      "verdict": {
       "type": [
        "string",
        "null"
       ]
      },
      "priceUsd": {
       "type": [
        "number",
        "null"
       ]
      },
      "confidence": {
       "type": [
        "string",
        "null"
       ]
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "allow": true,
  "score": 90,
  "market": {
   "ratio": 0.7,
   "medianUsd": 0.01
  },
  "schema": "hearth.precheck.v2",
  "reasons": [],
  "signals": [
   {
    "code": "valid_402",
    "detail": "valid x402 v2 challenge via POST",
    "severity": "info"
   },
   {
    "code": "organic_catalog_usage",
    "detail": "92 payers / 8960 calls in 30d",
    "severity": "info"
   }
  ],
  "verdict": "pay",
  "priceUsd": 0.007,
  "confidence": "high"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/hearth-x402-pay-safety-precheck-d3075880/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 138-197-15-135.sslip.io](https://www.zero.xyz/host/138-197-15-135.sslip.io/llms.txt)
