{"uid":"cap_g1uCIeITWpNIFbgv9OVPy","slug":"txguard-transaction-preflight-d1bfe174","name":"TxGuard Transaction Preflight","description":"Explain and preflight an unsigned Base transaction, EIP-712 typed data, or an EIP-3009 x402 payment authorization before you sign it. Decodes intent against verified ABIs, resolves proxies, classifies approvals, and checks a payment authorization against the quote it claims to pay: recipient, amount, asset, chain, freshness, and nonce replay. Returns unknown rather than guessing when a selector is ambiguous. Not a guarantee that a transaction is safe or profitable.","url":"https://txguard.schemasure.com/v1/tx/preflight?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"tx_hash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"An existing Base transaction to explain."},"simulate":{"type":"boolean","default":false,"description":"Run eth_simulateV1 with asset tracing. Priced at $0.03 instead of $0.02, and targets P50 2s / P95 5s rather than the static path's 500ms / 2s."},"typed_data":{"type":"object","required":["domain","primaryType","message"],"properties":{"types":{"type":"object"},"domain":{"type":"object"},"message":{"type":"object"},"primaryType":{"type":"string"}},"description":"EIP-712 payload. TransferWithAuthorization and ReceiveWithAuthorization get the x402 check table; any other primaryType is reported unrecognised, not analysed."},"unsigned_tx":{"type":"object","properties":{"to":{"type":["string","null"]},"data":{"type":"string","pattern":"^0x[0-9a-fA-F]*$"},"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"value":{"type":"string","description":"Wei."}},"description":"A transaction you are about to sign. `to: null` is a deployment.","additionalProperties":false},"authorization":{"type":"object","required":["from","to","value","validAfter","validBefore","nonce"],"properties":{"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"kind":{"enum":["transfer","receive"],"type":"string"},"asset":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"nonce":{"type":"string","pattern":"^0x[0-9a-fA-F]*$"},"value":{"type":"string"},"signature":{"type":"string","pattern":"^0x[0-9a-fA-F]*$"},"validAfter":{"type":"string"},"validBefore":{"type":"string"}},"description":"An EIP-3009 authorization, which is what an x402 `exact` payment is. value in base units, validAfter/validBefore in unix seconds, nonce 32 random bytes not a counter.","additionalProperties":false},"expected_quote":{"type":"object","properties":{"asset":{"type":"string"},"extra":{"type":"object"},"payTo":{"type":"string"},"amount":{"type":"string"},"scheme":{"type":"string"},"network":{"type":"string"},"maxTimeoutSeconds":{"type":"number"}},"description":"The x402 quote this payment claims to satisfy. Enables the comparison checks.","additionalProperties":false}}},"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_AVv8WF85x3Go2SNj5JXWI","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":"Decodes, explains, and validates an unsigned Base transaction, EIP-712 typed data, or EIP-3009 x402 payment authorization before signing, including proxy resolution, approval classification, and quote verification.","exampleAgentPrompt":"Before I sign this transaction, run it through TxGuard to decode what it actually does — here's the unsigned tx with `to: 0xabc...`, `data: 0xdeadbeef...`, `from: 0x123...`, `value: 0` — and check whether it's a token approval or something else.","exampleUseCases":[{"title":"Verify x402 payment before signing","prompt":"I'm about to authorize an x402 payment — can you preflight this EIP-3009 authorization against the quote I was given? The authorization is from 0xSender to 0xRecipient for 1000000 USDC (base units), validAfter 1700000000, validBefore 1700003600, nonce 0xabc123. The quote says payTo 0xRecipient, amount 1000000, asset USDC on Base. Make sure it all lines up and the nonce isn't replayed."},{"title":"Decode unknown contract call","prompt":"What does this unsigned Base transaction actually do before I sign it? to: 0xContractAddress, data: 0xa9059cbb000000000000000000000000RecipientAddress0000000000000000000000000000000000000000000000000de0b6b3a7640000, from: 0xMyWallet, value: 0. Decode the selector, resolve any proxy, and tell me if this is a token transfer or approval."},{"title":"Audit EIP-712 typed data signature request","prompt":"My wallet is asking me to sign some EIP-712 typed data — can you analyze it with TxGuard? The primaryType is TransferWithAuthorization and I want to know if it's a legitimate x402 payment or something suspicious, and whether the domain and message fields look right."}],"resultDescription":"Returns a decoded explanation of what the transaction or typed data intends to do, including resolved proxy contracts, ABI-matched function names, approval type classification, and for EIP-3009 authorizations a detailed comparison against the expected quote (recipient, amount, asset, chain, freshness, nonce replay status). Returns 'unknown' for ambiguous selectors rather than guessing. Optionally returns an asset-traced simulation result. Does not guarantee safety or profitability.","failureModes":["Unknown function selector — returns 'unknown' rather than a guess when ABI cannot be matched","Proxy resolution failure if on-chain state is unavailable","Authorization nonce already used — flags replay","Authorization expired or not yet valid — flags time window mismatch","Quote mismatch — recipient, amount, asset, or chain do not match the authorization","Simulation timeout — eth_simulateV1 path targets P95 5s and may time out","Malformed input — invalid hex patterns or missing required fields return validation errors","Unrecognised EIP-712 primaryType — reported as unrecognised, not analysed"],"whenToPreferThis":"Use TxGuard when an AI agent or user needs to understand and validate a Base transaction, EIP-712 payload, or x402 payment authorization before signing. Particularly valuable in agentic payment flows where an EIP-3009 authorization must be checked against a received quote for recipient, amount, asset, chain, freshness, and nonce replay. Prefer this over generic block explorers when you need structured, machine-readable decode output with explicit approval classification and proxy resolution. Not a replacement for full formal verification or profitability analysis.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T06:39:15.514Z","isFirstParty":false,"canonicalSlug":"txguard-transaction-preflight-d1bfe174"}