# DopamineDesk Transaction Simulator API

> DopamineDesk Transaction Simulator API is a paid API for AI agents from ai-data-marketplace-1042299154756.us-central1.run.app, paid per call via x402, $0.005/call, status unknown (last checked 2026-09-15).

Simulates a blockchain transaction to predict revert status, gas usage, and token transfers before on-chain submission.

## Facts

- Endpoint: GET https://ai-data-marketplace-1042299154756.us-central1.run.app/api/v1/tx_simulator
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/dopaminedesk-transaction-simulator-api-143ded16
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_PEpabeUqGfNU8SnL-c7z1

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 dopaminedesk-transaction-simulator-api-143ded16
```

Example prompt: Before I submit this swap, simulate the transaction on Base — sender is 0xUser123, destination contract is 0xPool456, the calldata is 0xa9059cbb000...abcd, and I'm sending 0 wei. Will it revert, how much gas will it use, and what token transfers will happen?

## When to prefer this

Use this endpoint when you need to dry-run a blockchain transaction before committing it on-chain — especially for DeFi interactions, smart contract calls, or token transfers where revert risk or gas estimation matters. Prefer this over on-chain submission when safety validation, gas budgeting, or previewing token flows is the goal. It is particularly valuable in agentic pipelines where an AI must confirm transaction safety before executing a payment or contract interaction.

## Known failure modes

- Invalid or malformed hex calldata returns a parsing error
- Unknown or unsupported network identifier results in a 400 error
- Destination contract address does not exist on the specified network
- Simulation infrastructure timeout for complex multi-call transactions
- Missing required fields (to, data, network) causes validation failure
- Insufficient context for simulation if dependent state is unavailable

## How this service works

Run a read-only transaction simulation with eth_call and eth_estimateGas against a supported public EVM RPC without signing or broadcasting.

## Output

Returns a JSON object with a status field ('success' or 'failure'), a boolean indicating if the transaction reverts, the estimated gas_used, and an array of simulated_transfers showing each token movement (from address, to address, token type, and amount) that would occur if the transaction were executed on-chain.

## 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",
     "required": [
      "network",
      "from",
      "to",
      "data"
     ],
     "properties": {
      "to": {
       "type": "string",
       "description": "Destination contract address."
      },
      "data": {
       "type": "string",
       "description": "Hex-encoded transaction calldata."
      },
      "from": {
       "type": "string",
       "description": "Sender address."
      },
      "value": {
       "type": "string",
       "description": "Amount of native token sent in wei."
      },
      "network": {
       "type": "string",
       "description": "Blockchain network identifier."
      }
     },
     "additionalProperties": true
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "success",
      "source",
      "network",
      "broadcast",
      "simulation_status",
      "estimated_gas",
      "return_data",
      "marketplace_metadata"
     ],
     "properties": {
      "source": {
       "type": "string"
      },
      "network": {
       "type": "string"
      },
      "success": {
       "type": "boolean"
      },
      "broadcast": {
       "type": "boolean"
      },
      "return_data": {
       "type": "string"
      },
      "estimated_gas": {
       "type": "string"
      },
      "simulation_status": {
       "type": "string"
      },
      "marketplace_metadata": {
       "type": "object",
       "required": [
        "data_mode",
        "billable",
        "availability",
        "source"
       ],
       "properties": {
        "source": {
         "type": "string"
        },
        "billable": {
         "type": "boolean"
        },
        "data_mode": {
         "type": "string"
        },
        "availability": {
         "type": "string"
        }
       },
       "additionalProperties": true
      }
     },
     "additionalProperties": true
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "source": "base public JSON-RPC",
  "network": "base",
  "success": true,
  "broadcast": false,
  "return_data": "0x0000000000000000000000000000000000000000000000000000000000000006",
  "estimated_gas": "30958",
  "simulation_status": "SUCCESS",
  "marketplace_metadata": "[object with keys: data_mode, billable, availability, source; full example in /openapi.json]"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/dopaminedesk-transaction-simulator-api-143ded16/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from ai-data-marketplace-1042299154756.us-central1.run.app](https://www.zero.xyz/host/ai-data-marketplace-1042299154756.us-central1.run.app/llms.txt)
