# Base Transaction Simulator (tx-simulate)

> Base Transaction Simulator (tx-simulate) is a paid API for AI agents from kr-x402-mvp.kgy5612.workers.dev, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-31).

Simulates one or more Base chain transactions before sending, returning success/failure verdict, gas cost, token transfers, approval events, and balance changes.

## Facts

- Endpoint: GET https://kr-x402-mvp.kgy5612.workers.dev/api/tx-simulate?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/base-transaction-simulator-tx-simulate-25458cd0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_4fpO20cLdQ4UIpT-Xhf2Z

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 base-transaction-simulator-tx-simulate-25458cd0
```

Example prompt: Before I send this USDC transfer on Base — from 0xe4be4d0bd82d8e68203deff81f79ede0529f2617 to contract 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 with calldata 0xa9059cbb — can you simulate it and tell me if it'll succeed, how much gas it'll use, and what tokens will move?

## When to prefer this

Use this endpoint when an AI agent needs to pre-flight a Base transaction before submitting it — especially for DeFi interactions, token transfers, or any calldata the agent hasn't verified. It is uniquely suited for detecting reverts, decoding what a transaction actually does, previewing balance changes, and flagging suspicious approvals — all without spending gas. Choose it over a generic gas estimator when you need the full decoded picture of a transaction's effects, not just a gas number.

## Known failure modes

- Invalid address format returns 400 validation error
- Malformed calldata (odd-length hex) rejected at input validation
- Sender with zero ETH/token balance may simulate a revert if the contract checks balances
- Network timeout if Base RPC is congested
- More than 5 calls in the multicall array rejected
- Block state may be 1-2 blocks stale leading to minor gas estimation drift

## How this service works

Pay-per-call crypto microdata for trading/onchain AI agents via x402 (USDC on Base): Base gas, token risk, balances, multi-venue prices, Hyperliquid book/funding, kimchi premium. No API keys.

## Output

Returns a JSON object with: overall success boolean, a SAFE_TO_SEND/REVERT verdict string, total gas used, fee in ETH and USD, a list of per-call results (success, function signature, gas used, revert reason if any), decoded token transfers with amounts and symbols, approval events, net balance changes per address per token, flags for anomalies, and links to related endpoints for next steps.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "to": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "examples": [
        "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
       ],
       "description": "Target contract or recipient"
      },
      "data": {
       "type": "string",
       "pattern": "^0x([0-9a-fA-F]{2})*$",
       "description": "Calldata (default 0x)"
      },
      "from": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "examples": [
        "0xe4be4d0bd82d8e68203deff81f79ede0529f2617"
       ],
       "description": "Sender (signer) address"
      },
      "calls": {
       "type": "string",
       "description": "URL-encoded JSON array of up to 5 {to,data,value_eth|value} run in order from the same sender"
      },
      "value_eth": {
       "type": "string",
       "examples": [
        "0.01"
       ],
       "description": "ETH to send, decimal (default 0)"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "from": "0xe4be4d0bd82d8e68203deff81f79ede0529f2617",
  "next": [
   "/crypto/base-gas",
   "/crypto/tx-status?hash="
  ],
  "block": 53272234,
  "calls": [
   {
    "to": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
    "index": 0,
    "success": true,
    "function": "transfer(address,uint256)",
    "gas_used": 45047,
    "revert_reason": null
   }
  ],
  "chain": "base",
  "flags": [],
  "fee_eth": 5e-7,
  "fee_usd": 0.0019,
  "success": true,
  "summary": "1 call succeeds; sender sends 0.001 USDC",
  "verdict": "SAFE_TO_SEND",
  "approvals": [],
  "transfers": [
   {
    "to": "0xa587d73489f8f09d1975f1ddbb1c61c93e8fa9d7",
    "from": "0xe4be4d0bd82d8e68203deff81f79ede0529f2617",
    "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
    "amount": 0.001,
    "symbol": "USDC"
   }
  ],
  "gas_used_total": 45047,
  "sender_changes": {
   "USDC": -0.001
  },
  "balance_changes": {
   "0xa587d73489f8f09d1975f1ddbb1c61c93e8fa9d7": {
    "USDC": 0.001
   },
   "0xe4be4d0bd82d8e68203deff81f79ede0529f2617": {
    "USDC": -0.001
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/base-transaction-simulator-tx-simulate-25458cd0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from kr-x402-mvp.kgy5612.workers.dev](https://www.zero.xyz/host/kr-x402-mvp.kgy5612.workers.dev/llms.txt)
