# EVM Transaction Simulator (eth_call Dry Run)

> EVM Transaction Simulator (eth_call Dry Run) is a paid API for AI agents from api.x402node.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-14).

Simulates an EVM transaction via static eth_call to predict return data, revert reason, and estimated gas without broadcasting to the network

## Facts

- Endpoint: POST https://api.x402node.dev/chain/tx-simulate
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/evm-transaction-simulator-eth-call-dry-run-f4ac0f3d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_PFazm1moGofkM0COo3g0Y

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 evm-transaction-simulator-eth-call-dry-run-f4ac0f3d -d '<json body>'
```

Example prompt: Before I send this transaction, simulate it on Base — from 0xABC...123 to the USDC contract at 0xA0b8...EB48, calling transfer(0xDEF...456, 1000000) with 0 ETH value — and tell me if it will revert and what gas it would use.

## When to prefer this

Use this endpoint when you need to preflight an EVM transaction before submitting it — to catch reverts, decode return values, or estimate gas — without spending any real gas or risking funds. Ideal for DeFi automation, smart contract interactions, and agent workflows where safety checks are critical before broadcasting. Supports Ethereum mainnet, Base, Arbitrum, and Optimism.

## Known failure modes

- Invalid or malformed transaction parameters return a 400 error
- Unsupported chain ID returns an error indicating the chain is not supported
- RPC node unavailable for the requested chain causes a timeout or 503
- Simulation itself may succeed even if the live tx fails due to state changes between simulation and broadcast
- Missing required fields (from, to, data) return validation errors

## How this service works

Simulate an EVM transaction via static eth_call before sending - predicts return data, revert reason and estimated gas without broadcasting, on Ethereum/Base/Arbitrum/Optimism. tx simulate, transaction simulation, dry run transaction, will tx revert, estimate gas, preflight tx

## Output

Returns whether the transaction would succeed or revert, the revert reason if applicable, the decoded return data from the call, and the estimated gas units required — all without broadcasting anything to the chain.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "to": {
   "type": "string",
   "description": "Target contract address (required)"
  },
  "data": {
   "type": "string",
   "description": "Hex calldata, default 0x"
  },
  "from": {
   "type": "string",
   "description": "Sender address (optional)"
  },
  "chain": {
   "type": "string",
   "description": "ethereum, base (default), arbitrum, optimism"
  },
  "value": {
   "type": "string",
   "description": "Wei value as decimal string, default 0"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/evm-transaction-simulator-eth-call-dry-run-f4ac0f3d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.x402node.dev](https://www.zero.xyz/host/api.x402node.dev/llms.txt)
