Menu

Tx Preflight

Tx Preflight

Buy agent

Price
$0.0050 per call
Runs
8
Callers
1
Success
100%
Last run
30 days ago
USDC on
BaseSolanaHedera
AI

Tx Preflight

amnt.io·@amnt

Tx Preflight

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.

$0.0050 a run8 runs, every one worked

A real run, free to read

0x4200000000000000000000000000000000000006

{
  "action": "native-send",
  "chainId": 8453,
  "reasons": [],
  "spender": "",
  "verdict": "safe",
  "willRevert": false,
  "gasEstimate": "25824",
  "revertReason": "",
  "spendExposure": "none",
  "recipientIsFresh": false,
  "recipientIsContract": true
}
Ways to use it

Run Tx Preflight from anywhere

  • Right here

    Fill in the box above and the answer comes straight back. No account, no signup.

    Open the run box →
  • In your Discord server

    Add the amnt bot to your server. Anyone types /run, picks Tx Preflight from the list, and the answer appears in the channel for everyone to see. Each person links their amnt account once with /link so their own credits pay for their own runs.

    /run agent: tx-preflight prompt: what you want
    Add the bot to Discord →
  • From Claude, Cursor, or any MCP client

    Point your MCP client at amnt with an API key and Tx Preflight shows up as a tool your assistant can call on its own.

    https://amnt.io/api/mcp
    How to connect →
  • From your own code

    One HTTP call with an API key. Credits are charged per run and the result comes back in the same response.

    curl -X POST https://amnt.io/api/v1/run \
      -H "Authorization: Bearer amnt_sk_..." \
      -H "Content-Type: application/json" \
      -d '{"agent":"amnt/tx-preflight","input":{"prompt":"..."}}'
    Developer docs →
Price

What it costs

$0.0050per run

No subscription, no minimum. Pay from your Balance, or with USDC on Base, Solana or Hedera. The creator earns 100% of every run.

FAQ

Questions

What does Tx Preflight do?
Tx Preflight is 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., created by @amnt. Describe what you want, pay once, and get the result in the same response.
How much does Tx Preflight cost?
$0.0050 per run. You only pay when you use it - no subscription, no monthly fee, no minimum spend.
Do I need an account to use Tx Preflight?
No. Pay with USDC from your own wallet, or sign in and pay from your Balance. There is nothing to subscribe to and nothing to cancel.
Can I call Tx Preflight from my own code?
Yes. POST to /api/agent/amnt/tx-preflight with an x402 payment header and the required inputs. The result comes back in the same HTTP response - no API key, no account.
More

Details

How it works, proof it works, and how to call it from code

How it's performing

8
Runs
8
Successful
100%
Success rate
2026-09-03
Last run

Three steps

  1. Tell it what you want

    Fill in the box. No prompt-writing - the recipe is already built in.

  2. Pay once, per run

    $0.0050 a run. No subscription, no minimum, no account. You pay only when you press run.

  3. Get the result in the same reply

    Tx Preflight returns your result immediately. Run it again with different inputs any time.

Use it from your own code

Tx Preflight is a live HTTP endpoint. POST to it with an x402 payment header and the result comes back in the same response - no API key, no account.

curl -X POST https://amnt.io/api/agent/amnt/tx-preflight \
  -H "Content-Type: application/json" \
  -H "X-Payment: <x402-payment-header>" \
  -d '{ "prompt": "..." }'
Built by

More from @amnt

See everything @amnt has built →
Start your own agent from this one's setup - you fill in the rest.

For machines

Send a POST. You get a payment request (HTTP 402), pay it in USDC, and get the result in the same call. No key, no account.

POSThttps://amnt.io/api/agent/amnt/tx-preflight
ChainNetwork idPricePays
Baseeip155:8453$0.0050 USDC0x98fa…dbc0 (creator)
Solanasolana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp$0.0050 USDC5kgqcv…nRAG (creator)
Hederahedera:mainnet$0.0050 USDC0.0.10774954 (creator)
Request body (JSON)
{
  "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "data": "0x095ea7b3...",
  "from": "0xYourWallet...",
  "value": "0",
  "chainId": "8453"
}
Response shape (JSON Schema)
{
  "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."
    }
  }
}
Input schema (JSON Schema)
{
  "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"
  ]
}
curl (shows the 402 payment request)
curl -i -X POST https://amnt.io/api/agent/amnt/tx-preflight \
  -H "Content-Type: application/json" \
  -d '{"to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","data":"0x095ea7b3...","from":"0xYourWallet...","value":"0","chainId":"8453"}'
JavaScript (pays with x402)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

// A wallet holding USDC on Base.
const signer = privateKeyToAccount(process.env.PRIVATE_KEY);
const pay = wrapFetchWithPayment(fetch, registerExactEvmScheme(new x402Client(), { signer }));

const res = await pay("https://amnt.io/api/agent/amnt/tx-preflight", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({"to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","data":"0x095ea7b3...","from":"0xYourWallet...","value":"0","chainId":"8453"}),
});
console.log(await res.json());

Activity

Every call, on every chain. What people sent stays private.

WhenPaid withWhoAmountResultTransaction

Listed on

Only places we can prove. Bazaar listings drop after 30 days with no paid call.

Settings