# Base UserOperation Inspector

> Base UserOperation Inspector is a paid API for AI agents from signalharness.ai, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-13).

Analyzes and decodes a raw ERC-4337 UserOperation JSON for the Base network, returning gas breakdown, call selector, paymaster status, nonce, and network context without simulating on-chain.

## Facts

- Endpoint: POST https://signalharness.ai/api/agent/services/base_user_operation_inspect/invoke
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/base-useroperation-inspector-009d9a36
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_NjZA8uPqetwCjajDuFYZ6

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 base-useroperation-inspector-009d9a36 -d '<json body>'
```

Example prompt: Inspect this UserOperation JSON for me and tell me what function it's calling, what the gas limits and max fee exposure are, whether it has a paymaster or initCode, and which Base chain IDs it's targeting.

## When to prefer this

Choose this endpoint when you need lightweight, off-chain static analysis of an ERC-4337 UserOperation targeting the Base network — particularly to decode callData selectors, audit gas parameters, check paymaster/initCode flags, or understand fee exposure before bundler submission. It does not simulate execution or verify signatures, so it is not a substitute for full bundler simulation, but it is fast, cheap ($0.02 USDC), and requires no RPC access.

## Known failure modes

- Malformed or non-JSON request_json input returns a parse error
- Missing required UserOperation fields may produce incomplete analysis with warnings
- Signatures and paymaster validity are NOT verified — analysis is caller-supplied data only
- Chain IDs outside Base mainnet/testnet (8453/84532) may not be recognized
- Extremely large UserOperation blobs may hit the 65536 character maxLength limit

## How this service works

Explore 330 pay-per-call x402 API services and 27 agent-native digital products, with Base USDC pricing, secure Polar checkout, and free discovery.

## Output

Returns a structured analysis JSON containing: the decoded call selector, gas parameters (callGasLimit, verificationGasLimit, preVerificationGas, maxFeePerGas, maxPriorityFeePerGas), max gas units, max fee exposure in base units, boolean flags for paymaster and initCode presence, nonce, sender address, and network context including accepted chain IDs (Base mainnet 8453 and testnet 84532), deposit transaction type, and fee model description. Also includes warnings about simulation and signature verification limitations.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "request_json": {
   "type": "string",
   "maxLength": 65536,
   "minLength": 2
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "replay": false,
  "result": {
   "warnings": [
    "Does not simulate, hash against an EntryPoint, or verify signatures unless all required evidence is supplied."
   ],
   "service_id": "base_user_operation_inspect",
   "analysis_json": "{\"call_selector\":\"0xa9059cbb\",\"gas\":{\"callGasLimit\":\"21000\",\"maxFeePerGas\":\"120\",\"maxPriorityFeePerGas\":\"5\",\"preVerificationGas\":\"21000\",\"verificationGasLimit\":\"100000\"},\"has_init_code\":false,\"has_paymaster\":false,\"max_fee_exposure\":\"17040000\",\"max_gas_units\":\"142000\",\"network_context\":{\"accepted_chain_ids\":[\"8453\",\"84532\"],\"deposit_transaction_type\":\"0x7e\",\"fee_model\":\"L2 execution plus caller-supplied L1 data/operator components\",\"protocol_family\":\"OP Stack\"},\"nonce\":\"1\",\"sender\":\"0x0000000000000000000000000000000000000001\"}",
   "evidence_scope": "caller_supplied_data",
   "analyzed_network": "base"
  },
  "status": "succeeded",
  "receipt": {
   "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
   "usage": [],
   "status": "succeeded",
   "network": "eip155:8453",
   "artifacts": [],
   "endedAtMs": 0,
   "latencyMs": 0,
   "paymentId": "example-payment",
   "receiptId": "example-receipt",
   "requestId": "example-request",
   "serviceId": "base_user_operation_inspect",
   "executionId": "example-execution",
   "startedAtMs": 0,
   "amountAtomic": "20000",
   "resultSha256": "d167cfe6d2b6c4b06eb4270b3bf33d6c8e26a7a80cd412f527bd8226210149b4",
   "serviceVersion": "1.0.0",
   "settlementReference": "0x0000000000000000000000000000000000000000000000000000000000000000"
  },
  "artifacts": [],
  "requestId": "example-request",
  "executionId": "example-execution"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/base-useroperation-inspector-009d9a36/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from signalharness.ai](https://www.zero.xyz/host/signalharness.ai/llms.txt)
