{"type":"https://ercs.ethereum.org/ERCS/erc-8257#tool-manifest-v1","name":"Tx Preflight","description":"Check a transaction before you sign it. Send the chain, the destination and the calldata; get back a safe, warn or danger verdict with every reason behind it — unlimited token approvals, setApprovalForAll over a whole NFT collection, calls that revert, calldata aimed at an address with no code, and brand-new recipient addresses with no history. Public-node simulation and calldata decoding only, so the same transaction always gets the same answer.\n\nHOW TO CALL IT: POST {\"to\": \"0x...\", \"data\": \"0x095ea7b3...\", \"from\": \"0x...\", \"chainId\": \"8453\"}. Only `to` is required; omit `data` for a plain native send. YOU GET BACK a verdict of safe, warn or danger, plus every reason behind it. WHAT IT CATCHES: unlimited token approvals, setApprovalForAll over a whole NFT collection, calls that revert, calldata aimed at an address with no code, and brand-new recipient addresses with no history. HOW IT DECIDES: public JSON-RPC simulation and calldata decoding only. No model, no opinion, no data kept — the same input always gives the same verdict. CALL IT BEFORE YOU SIGN, on every transaction. It is priced at half a cent so that is affordable. LIMITS: read-only. It never signs, never broadcasts and never sees a private key. A safe verdict is the absence of the risks listed above, not a guarantee.","endpoint":"https://amnt.io/api/agent/amnt/tx-preflight","image":"https://amnt.io/api/agent-nft/646/image.png","tags":["agent","amnt","tx-preflight","crypto"],"inputs":{"type":"object","properties":{"to":{"type":"string","description":"The contract or wallet this transaction is aimed at.","maxLength":42,"examples":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"]},"data":{"type":"string","description":"The transaction's data field, hex. Omit for a plain native-token send.","maxLength":20000,"examples":["0x095ea7b3..."]},"from":{"type":"string","description":"The wallet that would sign. Used for the simulation and the allowance read.","maxLength":42,"examples":["0xYourWallet..."]},"value":{"type":"string","description":"Native token sent with the call, in wei. Decimal string.","default":"0","maxLength":32,"examples":["0"]},"chainId":{"type":"string","description":"Which chain to simulate against.","default":"8453","enum":["8453","1","10","42161","137"]}},"required":["to"]},"outputs":{"type":"object","properties":{"verdict":{"type":"string","description":"safe | warn | danger. The one field to branch on: `danger` means do not sign this as written."},"reasons":{"type":"array","description":"Every finding behind the verdict, in plain language, most severe first. Empty when the verdict is safe."},"action":{"type":"string","description":"What the calldata actually does, decoded from its selector: approve, setApprovalForAll, transfer, transferFrom, permit, increaseAllowance, native-send or unknown."},"willRevert":{"type":"boolean","description":"True when simulating the call against current chain state reverts. A reverting transaction burns gas and changes nothing."},"revertReason":{"type":"string","description":"The revert string when the node returns one."},"gasEstimate":{"type":"string","description":"Estimated gas units, decimal. Absent when the call reverts."},"spendExposure":{"type":"string","description":"What signing this hands over: an amount, `ENTIRE COLLECTION` for setApprovalForAll, or `none`."},"spender":{"type":"string","description":"The address being granted spending power, for an approve/permit. Empty otherwise."},"recipientIsContract":{"type":"boolean","description":"Whether `to` has code. A call with calldata aimed at an address with no code does nothing."},"recipientIsFresh":{"type":"boolean","description":"True when `to` has never sent a transaction and holds no native balance — the shape of a throwaway drain address."},"chainId":{"type":"integer","description":"The chain the simulation ran against."}}},"creatorAddress":"0x98fa9c8afb5c56ad27d24843cabebdd55170dbc0","pricing":[{"amount":"5000","asset":"eip155:8453/erc20:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","recipient":"eip155:8453:0x98fa9c8afb5c56ad27d24843cabebdd55170dbc0","protocol":"x402"}]}