{"uid":"cap_AvpIUjWVo2tTQkNT7E-l3","slug":"presign-guard-erc-20-approval-auditor-da143827","name":"presign-guard ERC-20 Approval Auditor","description":"Wallet approval audit (green/orange/red, grade, one-line summary): every open ERC-20 allowance of an EVM wallet with who the spender is (flagged, plain wallet, unverified, unlimited) and which ones to revoke. Bulk: 100 checks for $0.80 via /v1/credits.","url":"https://presign-guard.fizzl.eu/v1/approvals?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":["chain","address"],"properties":{"chain":{"enum":["base","ethereum","arbitrum","optimism","polygon","bsc"],"type":"string","description":"EVM chain to audit"},"address":{"type":"string","description":"Wallet address (0x...)"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["verdict","grade","one_liner","reasons","approvals"],"properties":{"grade":{"enum":["SAFE","CAUTION","RISKY","AVOID"],"type":"string"},"reasons":{"type":"array","items":{"type":"object","required":["code","severity"],"properties":{"code":{"type":"string"},"details":{},"severity":{"enum":["red","orange","info"],"type":"string"}}}},"receipt":{"type":"object","required":["request_id","route","input_sha256","signed_at","signer","algorithm","signature"],"properties":{"cert":{"type":"object","properties":{"signer":{"type":"string"},"service":{"type":"string"},"authority":{"type":"string"},"signature":{"type":"string"},"valid_from":{"type":"string"}},"description":"The payout wallet's certificate for this signing key: personal_sign by authority over 'fizzl receipt signer\\nservice: <service>\\nsigner: <signer>\\nvalid_from: <date>'. Pin the payout wallet and a rotated key still verifies."},"route":{"type":"string"},"signer":{"type":"string"},"payment":{"type":"object","properties":{"asset":{"type":"string"},"nonce":{"type":"string"},"payer":{"type":"string"},"proof":{"enum":["eip3009","svm-transaction"],"type":"string"},"amount":{"type":"string"},"pay_to":{"type":"string"},"network":{"type":"string"},"transaction_sha256":{"type":"string"}},"description":"The payment behind this answer, from your x402 payment payload. EVM: payer + EIP-3009 nonce; find the settlement as AuthorizationUsed(payer, nonce) on the asset contract. Solana: payer + sha256 of the signed transaction you sent."},"algorithm":{"enum":["eip191-canonical-json-v1"],"type":"string"},"signature":{"type":"string"},"signed_at":{"type":"string"},"request_id":{"type":"string"},"input_sha256":{"type":"string","description":"sha256 of canonical JSON {route, input}: your body (POST) or query parameters (GET)"}},"description":"Signature over this whole answer (without receipt.signature), so the verdict can be verified later: EIP-191 personal_sign over canonical JSON (sorted keys, compact, ASCII-escaped). Signer addresses: /.well-known/presign-guard-signer.json; free check: POST /v1/verify."},"summary":{"type":"object","description":"approvals, tokens, unlimited, toRevoke"},"verdict":{"enum":["green","orange","red"],"type":"string"},"approvals":{"type":"array","items":{"type":"object"},"description":"Per allowance: token, spender (address, name, trusted, contract), amount, approvedAt, severity, codes, revoke"},"checkedAt":{"type":"string"},"one_liner":{"type":"string"},"revokeUrl":{"type":"string"}}}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.02","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.02/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_sRuEkANxeYFmg04jmjDAx","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Audits all open ERC-20 token allowances for an EVM wallet, grading each approval and identifying risky, unlimited, or flagged spenders to revoke","exampleAgentPrompt":"Can you audit all the ERC-20 approvals on my Ethereum wallet 0xAbC1234... and tell me which ones are risky, unlimited, or should be revoked?","exampleUseCases":[{"title":"DeFi wallet security check","prompt":"Audit my Base wallet 0x71C7656EC7ab88b098defB751B7401B5f6d8976F for all open ERC-20 approvals — I want to know which spenders are flagged or have unlimited access so I know what to revoke."},{"title":"Post-phishing incident triage","prompt":"I think my Polygon wallet 0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD might have been compromised — can you scan all its token allowances and give me a red/orange/green risk grade plus a list of suspicious approvals to revoke?"},{"title":"Pre-DeFi protocol review","prompt":"Before I start using this new Arbitrum DEX, can you check my wallet 0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97 on Arbitrum and tell me what existing token approvals I have outstanding and whether any look risky or unlimited?"}],"resultDescription":"Returns a structured audit with: an overall verdict (green/orange/red), a safety grade (SAFE/CAUTION/RISKY/AVOID), a one-line summary, a list of flagged reason codes with severity levels, and a detailed breakdown of every open ERC-20 allowance including spender address, spender classification (flagged/plain wallet/unverified/unlimited), and revocation recommendations. Also includes a signed receipt for payment verification.","failureModes":["Invalid wallet address format returns an error — address must be a valid 0x EVM address","Unsupported chain value returns an enum validation error — must be base, ethereum, arbitrum, optimism, polygon, or bsc","Payment not received or insufficient USDC balance causes a 402 payment required error","Wallet with no on-chain history or approvals returns an empty approvals list with a SAFE grade","RPC or chain provider downtime may cause timeout or partial results","Malformed query parameters return a 400 bad request"],"whenToPreferThis":"Choose this endpoint when you need a comprehensive, structured audit of all ERC-20 allowances for a specific EVM wallet, especially when you want spender classification (flagged, unlimited, unverified), a clear risk grade, and actionable revocation recommendations. It covers six major EVM chains in a single call. Prefer this over generic blockchain explorers when you need machine-readable risk grades and pre-classified spender data rather than raw on-chain data. Ideal for AI agents automating wallet hygiene, post-incident triage, or pre-protocol due diligence.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T18:35:21.463Z","isFirstParty":false,"canonicalSlug":"presign-guard-erc-20-approval-auditor-da143827"}