# Avasis Ethereum Transaction Pre-check

> Avasis Ethereum Transaction Pre-check is a paid API for AI agents from agents.avasis.ai, paid per call via x402, $0.02/call, status unknown (last checked 2026-11-01).

Simulates an Ethereum transaction before signing and returns revert risk, gas cost in USD, token/NFT transfers, wallet PnL, approval risk, counterparty/OFAC risk, and a SIGN/CAUTION/BLOCK verdict

## Facts

- Endpoint: GET https://agents.avasis.ai/v1/eth/tx-precheck?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-01
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/avasis-ethereum-transaction-pre-check-6d7c1ed1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_HyevEPFq_6WP3S1GzmTu0

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 avasis-ethereum-transaction-pre-check-6d7c1ed1
```

Example prompt: Before I sign this Ethereum transaction, can you simulate it and tell me whether it will revert, how much it'll cost in gas, what tokens I'll be sending, and whether the spender has unlimited approval risk? From wallet 0xAbC...123, calling 0xDef...456 with calldata 0xa9059cbb... and 0 ETH value.

## When to prefer this

Choose this endpoint when an AI agent or wallet UI needs to pre-flight an Ethereum mainnet transaction before presenting it to a user for signing. It combines simulation, token flow analysis, approval risk, OFAC/GoPlus compliance screening, and a human-readable verdict in a single $0.02 call — eliminating the need to assemble multiple separate APIs (eth_simulateV1, GoPlus, OFAC lists, price feeds). Prefer it over raw RPC simulation when you need USD-denominated costs, unlimited-approval detection, or compliance screening alongside the simulation result.

## Known failure modes

- 502 Bad Gateway if the underlying Ethereum RPC node is down — not charged on this failure
- Invalid from/to address format returns a validation error
- Calldata exceeding 6 KB is rejected
- Chain parameter set to anything other than ethereum/1 on this route returns an error
- If the simulation itself reverts, would_revert is true but no charge failure occurs — this is a valid response

## How this service works

Pre-sign tx precheck for Ethereum (chain 1, $0.02): simulate transaction {from,to,data,value} with eth_simulateV1 before signing. Returns would_revert + reason, gas USD, each ETH/ERC-20/NFT transfer with USD, wallet PnL (net_for_from usd_net), approval risk (spender, unlimited:true, USD exposure), counterparty risk (GoPlus + OFAC), decoded method, SIGN/CAUTION/BLOCK verdict with reasons. POST JSON or GET. Free live sample /v1/evm/tx-precheck/sample. Advice only; RPC down 502, never charged.

## Output

Returns a JSON object containing: chain identifier, simulation result (would_revert boolean + revert reason if applicable), decoded method name, list of ETH/ERC-20/NFT transfers each with USD value, wallet net PnL (net_for_from with usd_net), approval entries with spender address, unlimited flag, and USD exposure, counterparty risk assessment from GoPlus and OFAC, gas cost in USD, and a final verdict object with SIGN/CAUTION/BLOCK decision plus human-readable reasons.

## 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": [
      "from",
      "to"
     ],
     "properties": {
      "to": {
       "type": "string",
       "description": "the transaction's to (contract or recipient, 0x + 40 hex)"
      },
      "gas": {
       "type": "integer",
       "maximum": 30000000,
       "minimum": 21000,
       "description": "optional gas limit for the cost columns (default: the simulation's gas_used)"
      },
      "data": {
       "type": "string",
       "description": "calldata as 0x hex (omit or 0x for a plain ETH transfer); max 6 KB"
      },
      "from": {
       "type": "string",
       "description": "the signer's wallet (0x + 40 hex): the account that would sign; its ETH balance, allowances granted and net position are checked"
      },
      "chain": {
       "type": "string",
       "description": "optional; must be ethereum / 1 on this route"
      },
      "value": {
       "type": "string",
       "description": "ETH value in wei as a decimal or 0x hex integer string (default 0)"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "chain",
      "verdict",
      "decoded",
      "sim",
      "transfers",
      "net_for_from",
      "approvals",
      "risk"
     ],
     "properties": {
      "tx": {
       "type": "object"
      },
      "sim": {
       "type": "object"
      },
      "risk": {
       "type": "object"
      },
      "chain": {
       "type": "string"
      },
      "signer": {
       "type": "object"
      },
      "decoded": {
       "type": "object"
      },
      "verdict": {
       "type": "object"
      },
      "chain_id": {
       "type": "integer"
      },
      "precheck": {
       "type": "string"
      },
      "approvals": {
       "type": "array"
      },
      "transfers": {
       "type": "array"
      },
      "disclaimer": {
       "type": "string"
      },
      "
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "tx": {
   "to": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
   "data": "0x095ea7b30000000000000000000000002626664c2603336e57b271c5c0b26f421741e481ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
   "from": "0xf977814e90da44bfa03b6295a0616a897441acec",
   "gas_limit": null,
   "value_eth": "0",
   "value_wei": "0",
   "data_bytes": 68
  },
  "sim": {
   "rpc": "base-rpc.publicnode.com",
   "method": "eth_simulateV1 (traceTransfers, validation off; funds checked separately)",
   "status": "0x1",
   "eth_usd": 2580.5,
   "gas_usd": 0.000865,
   "chain_id": 8453,
   "gas_used": 55785,
   "block_tag": "latest",
   "gas_price": {
    "basis": "effective = base fee + priority (standard tier); max = 2 x base fee + priority",
    "max_fee_wei": "11000000",
    "base_fee_wei": "5000000",
    "priority_wei": "1000000",
    "effective_wei": "6000000"
   },
   "gas_usd_max": 0.001585,
   "return_data": "0x0000000000000000000000000000000000000000000000000000000000000001",
   "block_number": 53394126,
   "gas_cost_eth": "0.00000033471",
   "would_revert": false,
   "revert_reason": null,
   "eth_usd_source": "chainlink ETH/USD (latestRoundData)",
   "block_timestamp": 1793180287,
   "l1_data_fee_eth": "0.000000000488126494",
   "gas_limit_used_for_cost": 55785
  },
  "risk": {
   "ofac": {
    "hits": [],
    "available": true
   },
   "flags": [
    {
     "code": "UNLIMITED_APPROVAL",
     "label": "an unlimited allowance: the spender can move your whole balance of that token at any later time",
     "level": "CAUTION",
     "evidence": "Uniswap SwapRouter02 on USDC: $1234.56 of your balance exposed now"
    }
   ],
   "goplus": {
    "source": "GoPlus address_security (keyless)",
    "screened": 2,
    "unavailable": 0
   },
   "counterparties": [
    {
     "ofac": false,
     "role": "to",
     "known": "USDC (Circle)",
     "goplus": {
      "warn": [],
      "block": [],
      "available": true
     },
     "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
     "is_contract": false
    }
   ]
  },
  "chain": "ethereum",
  "signer": {
   "nonce": 1200,
   "address": "0xf977814e90da44bfa03b6295a0616a897441acec",
   "funds_ok": true,
   "balance_eth": "2.5",
   "needs_eth_max": "0.000000614123126494"
  },
  "decoded": {
   "args": {
    "amount_raw": "115792089237316195423570985008687907853269984665640564039457584007913129639935",
    "spender_or_to": "0x2626664c2603336e57b271c5c0b26f421741e481"
   },
   
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/avasis-ethereum-transaction-pre-check-6d7c1ed1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.avasis.ai](https://www.zero.xyz/host/agents.avasis.ai/llms.txt)
