# Transaction Preflight

> Transaction Preflight is a paid API for AI agents from mcp.dropenginehq.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-02).

Simulates an unsigned EVM transaction on Base or Base Sepolia before signing, returning gas estimates, revert status, ERC-20 token transfer/approval decoding, and risk signals.

## Facts

- Endpoint: POST https://mcp.dropenginehq.com/api/simulate-transaction?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/transaction-preflight-c950cd38
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ADVxUAFUiavJJ0_DBzPG2

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability transaction-preflight-c950cd38 -d '<json body>'
```

Example prompt: Before I sign this transaction, simulate it on Base mainnet — the contract is 0xAbC...123, my wallet is 0xDef...456, and the calldata is 0xa9059cbb000...0064. Tell me if it will revert, how much gas it needs, any ERC-20 transfers or approvals it triggers, and flag it if there's an unlimited approval.

## When to prefer this

Use this endpoint when an AI agent needs to verify an EVM transaction's safety before signing or broadcasting on Base or Base Sepolia — especially for detecting reverts, estimating gas, or identifying unlimited ERC-20 approvals. Prefer this over raw RPC simulation when you want structured, decoded token transfer and approval output plus a risk signal without implementing custom ABI decoding.

## Known failure modes

- Invalid hex calldata format returns a 400-level error
- Unknown or unsupported chain value (not 'base' or 'base-sepolia') causes rejection
- Simulation may not capture internal/nested call state diffs that standard RPC doesn't expose
- Very large calldata (near 131074 char limit) may cause timeouts
- Contract not deployed at target address on the specified chain causes revert result

## How this service works

Simulates an unsigned Base or Base Sepolia EVM transaction with read-only RPC calls before an agent signs or broadcasts it. Returns execution/revert status, gas estimate, decoded top-level ERC-20 transfers and approvals, unlimited-approval warnings, and a risk signal. It never signs, holds keys, or broadcasts. Standard RPC does not expose complete internal/token state diffs.

## Output

Returns whether the transaction would succeed or revert, a gas usage estimate, decoded top-level ERC-20 transfer and approval events (with amounts and token addresses), warnings for unlimited approvals, and a risk signal — without ever broadcasting, signing, or holding keys.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "to": {
   "type": "string",
   "pattern": "^0x[a-fA-F0-9]{40}$"
  },
  "data": {
   "type": "string",
   "pattern": "^0x(?:[a-fA-F0-9]{2})*$",
   "maxLength": 131074
  },
  "from": {
   "type": "string",
   "pattern": "^0x[a-fA-F0-9]{40}$"
  },
  "chain": {
   "enum": [
    "base",
    "base-sepolia"
   ],
   "type": "string"
  },
  "value": {
   "type": "string",
   "pattern": "^(?:0|[1-9]\\d*)$",
   "maxLength": 78
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/transaction-preflight-c950cd38/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from mcp.dropenginehq.com](https://www.zero.xyz/host/mcp.dropenginehq.com/llms.txt)
