{"uid":"cap_BiDksq8eFwI2-Un0BK90y","slug":"walletcheck-evm-wallet-token-approval-auditor-8b0cb52d","name":"WalletCheck — EVM Wallet Token Approval Auditor","description":"Pay-per-call HTTP APIs, paid with x402 in USDC on Base (eip155:8453): agentkit, api-change-check, basedue, basewatch, chainread, check-sanctions, chgwatch, company-facts, composite, edgar, feednews, pageaudit, solcheck, token-dd, txpreflight, walletcheck, webmd, webread, websearch, x402index. Each operation describes its service.","url":"https://api.firstmention.uk/s/walletcheck/checks?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","HEAD","DELETE"],"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"queryParams":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"0x-prefixed 40-hex EVM address to check on Base mainnet"},"range_blocks":{"type":"integer","maximum":500000,"minimum":1000,"description":"How many recent blocks to scan for approval events (1000-500000, default 100000). Larger = slower, more complete."}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"ok":{"type":"boolean"},"chain":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"address":{"type":"string"},"summary":{"type":"object","properties":{"verdict":{"type":"string"},"balanceEth":{"type":"string"},"isContract":{"type":"boolean"},"hygieneScore":{"type":"number"},"outgoingTxCount":{"type":"number"},"activeApprovalCount":{"type":"number"}}},"coverage":{"type":"object","properties":{"toBlock":{"type":"number"},"logsSeen":{"type":"number"},"fromBlock":{"type":"number"},"truncated":{"type":"boolean"},"failedChunks":{"type":"number"}}},"howToUse":{"type":"string"},"asOfBlock":{"type":"number"},"outstandingApprovals":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"level":{"type":"string"},"token":{"type":"string"},"revoke":{"type":"object","properties":{"to":{"type":"string"},"data":{"type":"string"},"meaning":{"type":"string"}}},"txHash":{"type":"string"},"spender":{"type":"string"},"tokenSymbol":{"type":"string"},"allowanceRaw":{"type":"string"},"lastSeenBlock":{"type":"number"}}}}}}}}}},"responseSchema":{"type":"json","example":{"ok":true,"chain":"base","flags":["1 ERC-20 approval(s) with unlimited allowance","1 active operator grant(s) on ERC-721 tokens"],"address":"0x4200000000000000000000000000000000000006","summary":{"verdict":"review","balanceEth":"0.006703","isContract":true,"hygieneScore":72,"outgoingTxCount":4123,"activeApprovalCount":3},"coverage":{"toBlock":53042192,"logsSeen":8123,"fromBlock":53000000,"truncated":false,"failedChunks":0},"howToUse":"For each entry flagged unlimited/high/active-operator, send a transaction with revoke.to and revoke.data (gas only) to cancel it.","asOfBlock":53042192,"outstandingApprovals":[{"kind":"allowance","level":"unlimited","token":"0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA","revoke":{"to":"0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA","data":"0x095ea7b3...","meaning":"approve(spender,0)"},"txHash":"0xabc...","spender":"0x1111111111111111111111111111111111111111","tokenSymbol":"USDC","allowanceRaw":"115792089237316195423570985008687907853269984665640564039457584007913129639935","lastSeenBlock":53041901}]}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","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.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_sYPrIt6sayDGq8dYWUbb2","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Scans an EVM wallet address on Base mainnet for outstanding token approvals (ERC-20 allowances and ERC-721 operator grants), scoring hygiene and returning revocation calldata for each risky approval.","exampleAgentPrompt":"Can you audit my Base wallet 0x4200000000000000000000000000000000000006 for any risky token approvals or unlimited allowances, and give me the revocation calldata for anything suspicious?","exampleUseCases":[{"title":"Pre-bridge wallet security check","prompt":"Before I move funds through a DeFi bridge, can you scan my wallet 0xAbC123...def456 on Base for any unlimited ERC-20 approvals or active NFT operator grants I should revoke first?"},{"title":"Post-hack approval cleanup","prompt":"I think my wallet 0x1234567890abcdef1234567890abcdef12345678 may have been compromised — can you audit it over the last 500000 blocks on Base and list every outstanding approval with the exact transaction data I need to revoke them?"},{"title":"Routine DeFi hygiene review","prompt":"Can you give me a hygiene score for my Base wallet 0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef and flag any spenders that still have token access I may have forgotten about?"}],"resultDescription":"Returns a JSON object with: overall verdict and hygiene score (0-100), ETH balance, outgoing tx count, active approval count, a flags array describing risky approvals in plain English, a detailed outstandingApprovals array (each entry includes token address, symbol, spender, allowance level, last-seen block, and ready-to-send revocation calldata), and coverage metadata (block range scanned, log count, truncation status).","failureModes":["Invalid or missing address parameter returns an error (must be 0x-prefixed 40-hex EVM address)","range_blocks outside 1000–500000 bounds returns a validation error","Slow response or partial results if a very large block range is requested (coverage.truncated=true, coverage.failedChunks>0)","Payment failure (402) if x402 USDC payment on Base is not included or insufficient","Address with extremely high log volume may result in truncated coverage"],"whenToPreferThis":"Use this endpoint when you need on-chain, real-time approval data specifically on Base mainnet with ready-to-use revocation calldata included in the response. Prefer it over generic block explorers when you need machine-readable output with risk scoring and actionable revoke.to/revoke.data fields that an agent can directly submit as a transaction. It is pay-per-call at $0.01 USDC via x402, making it cost-effective for single-wallet spot checks.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-29T12:42:26.934Z","isFirstParty":false,"canonicalSlug":"walletcheck-evm-wallet-token-approval-auditor-8b0cb52d"}