# Ethereum ERC-20 Allowance Checker

> Ethereum ERC-20 Allowance Checker is a paid API for AI agents from ca-tax-api-mainnet.lxtap.workers.dev, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-23).

Returns the ERC-20 token allowance a spender has from an owner on Ethereum mainnet, including whether it is effectively unlimited, the owner's balance, and the transferable amount.

## Facts

- Endpoint: GET https://ca-tax-api-mainnet.lxtap.workers.dev/eth/allowance?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ethereum-erc-20-allowance-checker-509099ee
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_3cE-BPOg8jFI22kz0ITOS

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 ethereum-erc-20-allowance-checker-509099ee
```

Example prompt: What's the current ERC-20 allowance that the Uniswap v3 router (0xE592427A0AEce92De3Edee1F18E0157C05861564) has to spend USDC (0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48) from my wallet 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 — and is it unlimited?

## When to prefer this

Use this endpoint when you need to check the exact ERC-20 token approval state between a specific owner and spender on Ethereum mainnet, especially when you need to know both the raw allowance and the effective transferable amount (capped by balance). Prefer this over a general block explorer when you need structured, machine-readable output suitable for agent decision-making, pre-trade checks, or security audits.

## Known failure modes

- Invalid Ethereum address format (must match ^0x[0-9a-fA-F]{40}$) returns a validation error
- Non-existent or non-ERC-20 token contract address may return an error or zero values
- RPC node unavailability may cause timeouts or 5xx errors
- Zero allowance returned when no approval has been granted — not an error, but the spender cannot move any tokens

## How this service works

Pay-per-call data for AI agents, paid in USDC on Base with x402: token risk checks (rug check) on Base, Ethereum, Arbitrum, Optimism, Polygon and Solana, onchain reads (balances, transactions, gas, contracts, NFTs, whale trades, new pools, ENS and Basenames), ECB exchange rates, and Canadian sales tax and business days.

## Output

Returns the approved allowance amount (in token base units), a boolean indicating whether the approval is effectively unlimited (e.g. max uint256), the owner's current token balance, and the amount the spender could actually transfer right now (the lesser of the allowance and the balance).

## 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",
     "required": [
      "token",
      "owner",
      "spender"
     ],
     "properties": {
      "owner": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "description": "Address that granted the approval"
      },
      "token": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "description": "ERC-20 contract on Ethereum"
      },
      "spender": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "description": "Address allowed to spend"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "raw": "115792089237316195423570985008687907853269984665640564039457584007913032819903",
  "chain": "eth",
  "owner": "0x72aB1B98b60a9251Cc00ab1C3bBe9F48CdFdCA40",
  "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
  "symbol": "USDC",
  "spender": "0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE",
  "allowance": "115792089237316195423570985008687907853269984665640564039457584007913032.819903",
  "unlimited": true,
  "ownerBalance": "0",
  "spendableNow": "0"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ethereum-erc-20-allowance-checker-509099ee/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from ca-tax-api-mainnet.lxtap.workers.dev](https://www.zero.xyz/host/ca-tax-api-mainnet.lxtap.workers.dev/llms.txt)
