{"uid":"cap_SlSeCH29M7aDUzoEhHDMA","slug":"vextorium-erc-20-token-approval-scanner-5f6dd6c9","name":"Vextorium ERC-20 Token Approval Scanner","description":"Which contracts a wallet has allowed to move its ERC-20 tokens: checks the chain's main tokens (or the ones you pass) over recent blocks plus common spenders (Uniswap routers, Permit2), returning the live allowance and flagging unlimited ones. Find and revoke what you don't use. Usually 2-10 s. Not available on Arbitrum (its public nodes keep no log history); on some chains the public node limits how far back it can search (reported in the result).","url":"https://api.vextorium.com/v1/token-approvals?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"required":["wallet"],"properties":{"blocks":{"type":"integer"},"tokens":{"type":"array","items":{"type":"string"}},"wallet":{"type":"string"},"network":{"enum":["base","ethereum","arbitrum","optimism","polygon","bnb","avalanche","gnosis","line","scroll","sonic","unichain"],"type":"string","description":"Chain (default base)"}}},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":["object","null"],"properties":{"note":{"type":["string","null"]},"wallet":{"type":["string","null"]},"network":{"type":["string","null"]},"approvals":{"type":["array","null"],"items":{}},"unlimited":{"type":["number","null"]},"reviewed_blocks":{"type":["number","null"]},"reviewed_tokens":{"type":["number","null"]},"active_approvals":{"type":["number","null"]}}}}}}},"responseSchema":{"type":"json","example":{"note":"Review the listed tokens (or the network's main ones) and the usual spenders; to revoke use revoke-approval.","wallet":"0x9b9B3F22BEBD1e3E528C2759a2ca34cD2e0184A1","network":"base","approvals":[],"unlimited":0,"reviewed_blocks":50000,"reviewed_tokens":5,"active_approvals":0}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"registry","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.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_1QOHYpeWICWVqsTaLa8Rk","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Scans a wallet's ERC-20 token approvals on a given blockchain, returning live allowances and flagging unlimited ones for review and potential revocation.","exampleAgentPrompt":"Can you scan my wallet 0x9b9B3F22BEBD1e3E528C2759a2ca34cD2e0184A1 on Ethereum and show me all ERC-20 token approvals — especially any unlimited ones I should consider revoking?","exampleUseCases":[{"title":"Post-DeFi security audit","prompt":"I've been using a bunch of DeFi protocols lately on Base — can you check wallet 0xAbC123...456 and list every token approval that's still active, especially any that are unlimited? I want to know which contracts can still move my tokens."},{"title":"Uniswap approval cleanup","prompt":"Check my wallet 0x9b9B3F22BEBD1e3E528C2759a2ca34cD2e0184A1 on Polygon for any ERC-20 approvals to Uniswap routers or Permit2 — I want to see what allowances are still open so I can decide what to revoke."},{"title":"Wallet compromise risk check","prompt":"I think my wallet 0xDef789...012 might have been exposed. Can you scan it on Ethereum over the last 100000 blocks and show me all ERC-20 token allowances that are still active, especially any unlimited approvals I should be worried about?"}],"resultDescription":"Returns a JSON object containing the wallet address, network, an array of active approvals (each with token, spender, and allowance), a count of unlimited approvals, the number of blocks reviewed, the number of tokens reviewed, and the number of active approvals. Also includes a note suggesting next steps (e.g. using revoke-approval). Returns an empty approvals array if no active approvals are found.","failureModes":["Arbitrum not supported — its public nodes lack log history; request will fail or return an error for that network","Some chains' public nodes limit historical log search depth — the result will include a note reporting this limitation","Invalid wallet address format causes a validation error","Network enum value not recognized returns a bad request error","Timeout possible if the block range is very large on a slow public node"],"whenToPreferThis":"Use this endpoint when you need to audit a wallet's outstanding ERC-20 token approvals across multiple chains without running your own node. It is purpose-built for approval scanning, automatically covers common spenders like Uniswap routers and Permit2, and flags unlimited allowances — saving the overhead of writing custom event log queries. Prefer it over generic blockchain RPC calls when you want a structured, ready-to-act summary of approval risk for a given wallet.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T18:53:24.459Z","isFirstParty":false,"canonicalSlug":"vextorium-erc-20-token-approval-scanner-5f6dd6c9"}