{"uid":"cap_eGk1GMhAbfQ5HE2nXZpdN","slug":"base-onchain-tools-erc-20-allowance-check-e36d9a67","name":"Base Onchain Tools – ERC-20 Allowance Check","description":"Eleven read-only endpoints answering questions about Base mainnet that are tedious to assemble from raw RPC: what an unverified contract is actually able to do, whether a token transfer will revert and for what reason, what an arbitrary token is worth, and whether an address is safe to pay. Priced $0.001-$0.04 per call in USDC over x402. No account, no API key, no signup, no minimum, no rate limit to negotiate — the payTo address in the 402 response is the whole integration. Failed calls are not billed. The payment middleware cancels settlement on any 4xx or 5xx, so a malformed parameter or an upstream outage costs nothing. Answers are read live from Base mainnet at request time, with failover across five independent RPC providers. A batch that comes back incomplete is treated as a failure rather than returned with the missing entries as zeros, because a confident wrong answer costs a caller more than an error does. Scope is deliberately narrow: Base mainnet only, reads only, no keys held, nothing stored between requests.","url":"https://base-onchain-tools.dolerite.workers.dev/v1/base/allowance?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"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":["owner","spender"],"properties":{"owner":{"type":"string","description":"Token holder address"},"token":{"type":"string","description":"Optional ERC-20 contract, defaults to USDC on Base"},"spender":{"type":"string","description":"Address allowed to spend"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":{"type":"json","example":{"verdict":"no-approval","token_symbol":"USDC","unlimited_approval":false}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.001","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.001/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_NGGOeXD1ZjqgfDavh__4A","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.001","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Checks whether a given spender address has an active ERC-20 token approval from a token holder on Base mainnet, returning the verdict and approval details.","exampleAgentPrompt":"Check whether the Uniswap v3 router (0x2626664c2603336E57B271c5C0b26F421741e481) is approved to spend USDC from my wallet 0xAbCd1234...5678 on Base mainnet.","exampleUseCases":[{"title":"Pre-swap approval gate for DeFi agent","prompt":"Before I swap on Aerodrome, check if the router at 0x6330...abcd is allowed to spend my USDC from 0x1234...5678 on Base — I need to know if I have to approve first."},{"title":"Security audit of unlimited approvals","prompt":"Is there an unlimited approval on my wallet 0xDEAD...BEEF for the old Compound contract at 0xABCD...1234 to spend my USDC on Base? I want to know if I need to revoke it."},{"title":"DeFi onboarding flow validation","prompt":"My app needs to confirm that the lending protocol at 0x9999...aaaa can spend USDC on behalf of the user at 0x1111...bbbb on Base before we proceed with the deposit — can you check that allowance?"}],"resultDescription":"Returns a JSON object with a verdict field (e.g. 'no-approval', 'approved', 'unlimited'), the token_symbol, and an unlimited_approval boolean indicating whether the spender has been granted an unlimited allowance.","failureModes":["Invalid or non-checksummed Ethereum address returns 4xx with no charge","Token address not found or not an ERC-20 contract returns an error","Upstream RPC outage across all five providers causes a 5xx with no charge","Missing required owner or spender query parameters returns 4xx","Network timeout on Base mainnet read returns 5xx with no charge"],"whenToPreferThis":"Choose this endpoint when you need a quick, cheap, read-only check of ERC-20 allowances on Base mainnet without setting up a wallet, API key, or RPC infrastructure. Ideal for pre-flight checks before DeFi transactions, security audits of token approvals, or any agent flow that must gate on whether a spender is authorized. Prefer this over raw RPC calls because it abstracts multi-provider failover, returns a human-readable verdict, and charges nothing on failure.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-10T12:32:12.752Z","isFirstParty":false,"canonicalSlug":"base-onchain-tools-erc-20-allowance-check-e36d9a67"}