Overview
ERC-20 allowance check on Base (chain 8453, $0.02): owner + token + spender -> allowance (raw + units, unlimited flag), balance, spendable now = min(allowance, balance), USD exposure, spender code check (EOA = drainer pattern), Permit2 note. Add amount for a needs-approval check (shortfall) + approve calldata; revoke calldata always. Phrases: erc20 allowance, token approval check, needs approval, approve calldata, revoke approval. GET or POST JSON. Not an ERC-20 -> 404, never charged.
Protocol
x402
Price
$0.02
Payment Asset
USD Coin
Payment Network
eip155:8453
Category
uncategorized
Provider
Avasis Agent Platform
Indexed
2026-11-02 17:25:27
Health
Status
unknown
Latency (p50)
—
Uptime (30d)
—
Reliability Score
—
Last Checked
Never
Last Healthy
Never
Consecutive Failures
0
Input Schema
{
"method": "GET",
"queryParams": {
"amount": "250",
"chain": "base",
"owner": "0x8fae03e3e0cb922297495bc22ee2a7c997f89b8d",
"spender": "0x000000000022d473030f116ddee9f6b43ac78ba3",
"token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"
},
"type": "http"
}
Output Schema
{
"example": {
"allowance": {
"amount": "115792089237316195423570985008687907853269984665640564039457584007913129.639935",
"pct_of_balance": 100,
"raw": "115792089237316195423570985008687907853269984665640564039457584007913129639935",
"unlimited": true,
"zero": false
},
"block_number": 53354727,
"calldata": {
"approve_exact": null,
"approve_unlimited": "0x095ea7b3000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"from": "the owner",
"note": "approve(spender, amount) as 0x calldata, ready to sign from the owner; prefer an exact amount over unlimited; revoke = approve(spender, 0). Simulate first: /v1/<chain>/tx-precheck",
"revoke": "0x095ea7b3000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000000000000000000000000000000000000000000000",
"to": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"
},
"chain": "base",
"chain_id": 8453,
"check": {
"amount": "250",
"amount_raw": "250000000",
"approve_exact_calldata": null,
"needs_approval": false,
"shortfall_allowance": "0",
"shortfall_balance": "0",
"sufficient_allowance": true,
"sufficient_balance": true,
"verdict": "READY: the spender can move this amount now"
},
"covers_full_balance": true,
"headline": "USDC on Base: 0x8fae…9b8d allows Uniswap Permit2 UNLIMITED; balance 11,285.039971 (exposure $11,285.04); READY for 250",
"kind": "erc20-allowance",
"owner": "0x8fae03e3e0cb922297495bc22ee2a7c997f89b8d",
"owner_balance": {
"amount": "11285.039971",
"error": null,
"raw": "11285039971"
},
"rail": "evm-rails-1",
"reads": {
"calls": 8,
"elapsed_ms": 0,
"rpc": "fixture"
},
"spendable_now": {
"amount": "11285.039971",
"limited_by": "balance",
"note": "what the spender could move right now = min(allowance, owner balance)",
"raw": "11285039971"
},
"spender": {
"address": "0x000000000022d473030f116ddee9f6b43ac78ba3",
"is_contract": true,
"known": "Uniswap Permit2",
"note": "Permit2 keeps its own per-spender allowances on top of this ERC-20 approval",
"permit2": true
},
"token": {
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"decimals": 6,
"decimals_source": "decimals()",
"known": "USDC (Circle)",
"symbol": "USDC"
},
"usd": {
"allowance": null,
"exposure": 11285.04,
"note": "exposure = spendable_now at the current price",
"owner_balance": 11285.04,
"price": 1,
"price_source": "stablecoin peg (known issuer)"
}
},
"type": "json"
}