# Wallet Runtime Spend Guard

> Wallet Runtime Spend Guard is a paid API for AI agents from gpt55.558686.xyz, paid per call via x402, $0.012/call, status unknown (last checked 2026-09-14).

Decides allow, manual_review, or deny for an x402 agent payment before it executes, based on amount caps, payTo/network/route allowlists, daily/hourly budgets, recent spend, failure counts, and receipt evidence.

## Facts

- Endpoint: GET https://gpt55.558686.xyz/v1/paid/wallet-runtime-spend-guard
- Price: $0.012/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/wallet-runtime-spend-guard-052a5ee0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_m2d_gDiBsz6zEBrMcCYDh

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 wallet-runtime-spend-guard-052a5ee0
```

Example prompt: Before my agent pays 0.008 USDC to wallet 0xAbC...123 on Base for the transcription service at https://svc.example.com/v1/transcribe, check whether that payment is within my $0.01 per-call cap, my $2.00 daily budget, and only allow payments to my approved service list — tell me if it's allowed, needs review, or should be denied.

## When to prefer this

Use this endpoint when an AI agent needs a pre-payment policy gate before executing any x402 USDC payment on Base — especially when enforcing per-call caps, daily/hourly budgets, payTo allowlists, or route allowlists. Prefer this over post-hoc spend analysis when you need a hard allow/deny/review decision before funds leave the wallet. Best suited for autonomous agent runtimes that must stay within owner-defined guardrails without human intervention on every call.

## Known failure modes

- Missing required 'type' or 'method' fields returns 400 validation error
- amountUsd or amountUsd exceeding schema maximum (100) rejected
- payTo address not matching allowlist returns deny decision
- dailyBudgetUsdc or maxUsdcPerCall below minimum threshold (0.0001) causes schema rejection
- x402 payment itself fails or times out, returning HTTP 402
- Malformed URL in serviceUrl/route causes parameter rejection
- spentTodayUsdc value out of valid range (0–10000) rejected

## How this service works

Short stable x402 URL for buyer-owned wallet runtime spend control. Decides allow, manual_review, or deny before each x402 agent payment using amount caps, payTo, network, route allowlists, recent spend, failure count, and receipt evidence. Short stable alias for marketplace probes and machine buyers. Pay up to $0.012 per request with x402 USDC on Base.

## Output

Returns a decision of 'allow', 'manual_review', or 'deny' along with a human-readable reason, a summary of spend so far today, and any policy rules that were triggered (e.g., exceeded daily budget, payTo not in allowlist, amount over per-call cap).

## 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",
     "properties": {
      "url": {
       "type": "string",
       "maxLength": 2048
      },
      "asset": {
       "type": "string",
       "maxLength": 80
      },
      "payTo": {
       "type": "string",
       "maxLength": 80
      },
      "route": {
       "type": "string",
       "maxLength": 2048
      },
      "method": {
       "type": "string",
       "maxLength": 12
      },
      "pay_to": {
       "type": "string",
       "maxLength": 80
      },
      "network": {
       "type": "string",
       "maxLength": 80
      },
      "allowlist": {
       "type": "string",
       "maxLength": 10000
      },
      "amountUsd": {
       "type": "number",
       "maximum": 100,
       "minimum": 0
      },
      "receiptId": {
       "type": "string",
       "maxLength": 160
      },
      "quotePayTo": {
       "type": "string",
       "maxLength": 80
      },
      "receipt_id": {
       "type": "string",
       "maxLength": 160
      },
      "serviceUrl": {
       "type": "string",
       "maxLength": 2048
      },
      "amount_usdc": {
       "type": "number",
       "maximum": 100,
       "minimum": 0
      },
      "service_url": {
       "type": "string",
       "maxLength": 2048
      },
      "amountAtomic": {
       "type": "string",
       "maxLength": 80
      },
      "quoteNetwork": {
       "type": "string",
       "maxLength": 80
      },
      "quote_pay_to": {
       "type": "string",
       "maxLength": 80
      },
      "amount_atomic": {
       "type": "string",
       "maxLength": 80
      },
      "expectedAsset": {
       "type": "string",
       "maxLength": 80
      },
      "expectedPayTo": {
       "type": "string",
       "maxLength": 80
      },
      "quote_network": {
       "type": "string",
       "maxLength": 80
      },
      "expected_asset": {
       "type": "string",
       "maxLength": 80
      },
      "maxUsdcPerCall": {
       "type": "number",
       "maximum": 100,
       "minimum": 0.0001
      },
      "receiptPresent": {
       "type": [
        "boolean",
        "string"
       ]
      },
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/wallet-runtime-spend-guard-052a5ee0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from gpt55.558686.xyz](https://www.zero.xyz/host/gpt55.558686.xyz/llms.txt)
