# SignalHarness ERC-20 Approval Decode

> SignalHarness ERC-20 Approval Decode is a paid API for AI agents from signalharness.ai, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-15).

Decodes and explains an ERC-20 token approval request, identifying the spender, amount, and any associated risk warnings.

## Facts

- Endpoint: POST https://signalharness.ai/api/agent/services/erc20_approval_decode/invoke
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/signalharness-erc-20-approval-decode-20c011c7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_8_UHf5H6BJswdeKMkanom

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 signalharness-erc-20-approval-decode-20c011c7 -d '<json body>'
```

Example prompt: Can you decode this ERC-20 approval request for me and tell me who the spender is, how much they'd be allowed to spend, and whether there are any warnings I should know about before signing it?

## When to prefer this

Choose this endpoint when an AI agent or wallet needs to interpret raw ERC-20 approval calldata before presenting it to a user or executing a transaction. It is especially useful for pre-signing safety checks in DeFi workflows, agent-driven wallet approvals, or security auditing pipelines where you need structured, human-readable approval details plus risk warnings — all for a flat $0.01 USDC micro-payment with no subscription required.

## Known failure modes

- Malformed or unparseable approval request data returns an error status
- Input string too short (below minLength 2) or too long (above 65536 chars) triggers schema validation failure
- Ambiguous or incomplete calldata may result in partial decoding with warnings
- Payment failure (USDC not provided or insufficient) returns HTTP 402 before execution
- Network or service downtime returns a non-succeeded status in the receipt

## 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 decoded ERC-20 approval object containing the interpreted approval details (spender, amount, token context), a list of any warnings about the approval (e.g. unlimited allowance, suspicious spender), the evidence scope indicating the data was caller-supplied, and a replay flag. Also includes a full execution receipt with payment reference, latency, and a SHA-256 hash of the result for integrity verification.

## Request schema (JSON Schema)

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

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "replay": false,
  "result": {
   "warnings": [
    "Decoding does not prove allowance state or transaction success."
   ],
   "service_id": "erc20_approval_decode",
   "evidence_scope": "caller_supplied_data",
   "decoded_erc20_approval": "{\"args\":[\"0x0000000000000000000000000000000000000002\",\"10\"],\"kind\":\"calldata\",\"operation\":\"approve\"}"
  },
  "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": "erc20_approval_decode",
   "executionId": "example-execution",
   "startedAtMs": 0,
   "amountAtomic": "10000",
   "resultSha256": "b51e7b29eb16f0962f112101b9b25b95117e68d9288afdb1c961312821d48f20",
   "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/signalharness-erc-20-approval-decode-20c011c7/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)
