# LimitGuard Agent Wallet Check

> LimitGuard Agent Wallet Check is a paid API for AI agents from api.limitguard.ai, paid per call via x402, $0.75/call, status unknown (last checked 2026-10-11).

Screens an EVM wallet in a single call: OFAC sanctions check, Base chain USDC/ETH balance, ERC-8004 identity lookup, and on-chain feedback listing, returning one unified verdict.

## Facts

- Endpoint: POST https://api.limitguard.ai/v1/agent/check?utm_source=zero.xyz
- Price: $0.75/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/limitguard-agent-wallet-check-2d60fd4f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_nUh5vTeNiIXqmXl7FqJeI

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 limitguard-agent-wallet-check-2d60fd4f -d '<json body>'
```

Example prompt: Before I pay this agent, run a full compliance check on wallet 0x7e4c2a91d05b3f68a1c9e2d4b7f05a3c6e81d290 — I need to know if it's sanctioned, what its USDC and ETH balance is on Base, and whether it's registered as ERC-8004 agent ID 1187.

## When to prefer this

Use this endpoint when you need a single, unified compliance-plus-identity check for an EVM wallet before initiating a payment or inter-agent transaction on Base. It is the right choice when you need OFAC screening, live Base chain USDC/ETH balance, and ERC-8004 identity verification all in one call rather than assembling those checks yourself. Prefer it over building bespoke pipelines when operating in the AI agent economy where counterparties may be registered on ERC-8004 and you need a fast, auditable go/no-go verdict.

## Known failure modes

- Invalid wallet address format returns a validation error
- Wallet not registered on ERC-8004 registry returns identity.status='not_found'
- Base RPC unavailable causes balance module to report status='error' with a reason
- OFAC list fetch failure causes sanctions module to report status='error'
- No agent_id provided means identity lookup is partial (wallet-level only)
- Rate limiting or payment failure (x402) results in a 402 or 429 HTTP error
- Unrecognized agent_id returns wallet_controls_agent=false

## How this service works

Agent wallet check in one call: screens an EVM wallet against the OFAC SDN digital-currency address list, reads its Base USDC and ETH balance, looks up its ERC-8004 identity registration (and, given an agent id, that agent's owner and payment wallet) and lists open ERC-8004 feedback, which is not scored. Returns one verdict and each part's status; a part that could not be read says so.

## Output

A JSON object with a top-level verdict (e.g. 'no_findings' or a flag), plus per-module status objects for: sanctions (hit/miss, programs, list date), balance (USDC and ETH on Base), identity (ERC-8004 registration, owner, agent wallet, agent IDs), reputation (open on-chain feedback per agent ID), wallet risk (risk level, risk score, rules fired), and optionally domain info. Each module reports its own status and reason if it could not be read.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "domain": {
   "type": "string",
   "description": "Optional website domain the agent gives for itself; reported, never read by the verdict"
  },
  "wallet": {
   "type": "string",
   "description": "EVM wallet address (0x + 40 hex characters), read on Base"
  },
  "agent_id": {
   "type": "string",
   "description": "Optional ERC-8004 agentId (decimal) the wallet claims"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ran": [
   "sanctions",
   "balance",
   "identity",
   "reputation",
   "wallet_risk"
  ],
  "domain": {
   "domain": null,
   "has_mx": null,
   "probes": null,
   "reason": null,
   "status": "not_requested",
   "has_spf": null,
   "has_dmarc": null,
   "ssl_valid": null,
   "web_score": null,
   "ssl_issuer": null,
   "domain_age_days": null,
   "domain_expires_at": null
  },
  "wallet": "0x7e4c2a91d05b3f68a1c9e2d4b7f05a3c6e81d290",
  "balance": {
   "reason": null,
   "status": "ok",
   "chain_id": "eip155:8453",
   "balance_usdc": 412.5,
   "balance_native": 0.0031
  },
  "verdict": "no_findings",
  "chain_id": "eip155:8453",
  "identity": {
   "reason": null,
   "status": "ok",
   "agent_id": "1187",
   "registry": "erc8004",
   "agent_owner": "0x7e4c2a91d05b3f68a1c9e2d4b7f05a3c6e81d290",
   "agent_wallet": "0x7e4c2a91d05b3f68a1c9e2d4b7f05a3c6e81d290",
   "agent_registered": true,
   "wallet_agent_ids": [
    "1187"
   ],
   "wallet_controls_agent": true
  },
  "sanctions": {
   "hit": false,
   "lists": [],
   "reason": null,
   "status": "ok",
   "programs": [],
   "list_as_of": "09/30/2026",
   "list_status": "ok"
  },
  "checked_at": "2026-10-01T10:00:00Z",
  "reputation": {
   "note": "open on-chain feedback, not used in the score",
   "agents": [
    {
     "agent_id": "1187",
     "top_tags": [
      {
       "avg": 4.67,
       "tag": "starred",
       "count": 3
      }
     ],
     "clients_capped": false,
     "feedback_count": 3,
     "distinct_clients": 2
    }
   ],
   "reason": null,
   "status": "ok"
  },
  "did_not_run": [],
  "wallet_risk": {
   "reason": null,
   "status": "ok",
   "risk_level": "low",
   "risk_score": 10,
   "rules_fired": []
  },
  "schema_version": "agent-check-v1",
  "verdict_reasons": []
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/limitguard-agent-wallet-check-2d60fd4f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.limitguard.ai](https://www.zero.xyz/host/api.limitguard.ai/llms.txt)
