{"uid":"cap_EEpVERG_OMcmsaw6plgMh","slug":"presign-guard-explain-76a59c6b","name":"presign-guard explain","description":"Pre-sign risk verdict plus a plain-language explanation in Dutch or English. Bulk: 100 checks for $0.80 via /v1/credits.","url":"https://presign-guard.fizzl.eu/v1/check/explain?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"to":{"type":"string","description":"transaction: target contract"},"tx":{"type":"object","description":"xrpl: the unsigned transaction JSON"},"data":{"type":"string","description":"transaction: 0x-prefixed calldata"},"from":{"type":"string","description":"optional: your wallet; an EVM transaction is then simulated"},"lang":{"enum":["en","nl"],"type":"string","description":"explain only: en or nl"},"type":{"enum":["approval","transaction","signature","message","solana","xrpl","algorand"],"type":"string","description":"What is about to be signed"},"x402":{"type":"object","description":"optional, EIP-3009 payments: the x402 accepts entry being paid"},"token":{"type":"string","description":"approval: token contract"},"value":{"type":"string","description":"transaction: native value in wei"},"amount":{"type":"string","description":"approval: amount in base units (0 = revoke)"},"intent":{"type":"string","maxLength":500,"description":"optional: what the agent means to do, in one sentence"},"method":{"enum":["personal_sign","eth_sign"],"type":"string","description":"message: personal_sign (default) or eth_sign"},"origin":{"type":"string","description":"optional: the site asking (URL or hostname)"},"chainId":{"enum":[1,10,56,137,8453,42161],"type":"integer","description":"EVM chain; required for approval, transaction and signature"},"mandate":{"type":"object","description":"optional, EIP-3009 payments: the spending mandate paid under"},"message":{"type":"string","maxLength":16384,"description":"message: the text or 0x-hex to be signed"},"network":{"enum":["xrpl:0","xrpl:1"],"type":"string","description":"xrpl: xrpl:0 (default) or xrpl:1"},"spender":{"type":"string","description":"approval: who gets the allowance"},"typedData":{"type":["object","string"],"description":"signature: the eth_signTypedData_v4 payload"},"transaction":{"type":"string","maxLength":12000,"description":"solana: the base64 wire transaction; algorand: one base64 msgpack transaction"},"transactions":{"type":"array","items":{"type":"string"},"maxItems":16,"description":"algorand: an atomic group, each base64 msgpack"}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.03","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.03/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.03","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.03","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_YHIac7Ajhe26FHJCMVFgg","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.03","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns a green/orange/red risk verdict plus a plain-language explanation (in English or Dutch) for a transaction, token approval, or typed-data signature before an AI agent or wallet signs it.","exampleAgentPrompt":"Before you sign this Uniswap Permit2 transaction on Base (chainId 8453), check if it's safe and give me a plain-English explanation of what it does — the typed data payload is {typedData JSON} and the origin is app.uniswap.org.","exampleUseCases":[{"title":"Explain approval risk in Dutch","prompt":"Check this ERC-20 approval on Ethereum mainnet (chainId 1) — the token contract is 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, the spender is 0x1111111254EEB25477B68fb85Ed929f73A960582, the amount is 1000000000, and give me the explanation in Dutch so our user can understand it."},{"title":"Verify EIP-3009 payment mandate","prompt":"I'm about to execute an x402 payment. The typed data is {EIP-3009 payload}, chainId is 8453 (Base), and there's a mandate attached — can you run a presign risk check and explain in English whether this payment is within the mandate limits and safe to sign?"},{"title":"Assess risky contract transaction","prompt":"Before my agent submits this transaction on Arbitrum (chainId 42161) to contract 0xabc123…, with calldata 0xd0e30db0 and a value of 500000000000000000 wei, give me a risk verdict and a plain-language explanation of what this contract call actually does and whether it looks malicious."}],"resultDescription":"A structured response containing a risk verdict (green = safe, orange = caution, red = dangerous) and a plain-language explanation in the requested language (English or Dutch) describing what the action does and why it received that verdict. May include a risk grade and specific flags such as a newly registered origin domain or an out-of-mandate payment.","failureModes":["Missing required fields for the chosen type (e.g. no 'to' for transaction) — returns validation error","Unsupported chainId — returns error indicating chain not supported","Malformed calldata or typedData — returns parse error","Insufficient credits or payment failure — returns 402 Payment Required","Origin domain age check unavailable — orange verdict may not fire for new domains","EIP-3009 mandate signature mismatch — returns red verdict with explanation"],"whenToPreferThis":"Choose this endpoint over the bare /check endpoint when you need a human-readable explanation alongside the verdict — especially for end-user-facing flows, multilingual (Dutch/English) wallets, or when an AI agent needs to relay the rationale to a user in plain language. Use /check/explain any time the user needs to understand *why* a transaction is risky, not just the verdict.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T18:31:50.325Z","isFirstParty":false,"canonicalSlug":"presign-guard-explain-76a59c6b"}