Docs / Tx simulation

How do I dry-run an unsigned transaction before my agent signs?

Meridian by MioDio dry-runs an unsigned transaction on Base or Ethereum against latest public state for $0.01 USDC on Base via x402 and gives back success or revert, gas, balance changes, approvals, and warnings. A simulation is a point-in-time dry run, not a guarantee of inclusion or the eventual result.

What you get back

Request body

JSON required: tx (object). Optional chain (base or ethereum) and intent (same shape the drift check takes).

Call it (curl + free demo)

curl -s "https://meridian.miodiollc.com/v1/demo/simulate"

curl -i -X POST "https://meridian.miodiollc.com/v1/simulate" \
  -H 'content-type: application/json' \
  -d '{
    "chain": "base",
    "tx": {
      "from": "0x4200000000000000000000000000000000000006",
      "to": "0x0000000000000000000000000000000000000001",
      "value": "0x1",
      "data": "0x"
    }
  }'

Unpaid -> HTTP 402 + PAYMENT-REQUIRED. Oversize body -> 400 before payment.

Price

$0.01 USDC on Base (~10000 atomic). Network eip155:8453. Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. payTo 0x4DA1ED782BD61BaE9AdD5a5CaBbCf32f767f8d7F.

Chains and limits

Base or Ethereum only. Point-in-time against latest public state. RPC failure is a charged 200 with status partial. Unexpected Worker 5xx is not charged.

Response (demo, trimmed)

{
  "card": "transaction_simulate",
  "chain": "base",
  "status": "ok",
  "result": "success",
  "simulated_at_block": "53536312",
  "gas_used": "24000",
  "revert_reason": null,
  "balance_changes": [
    { "address": "0x4200000000000000000000000000000000000006", "asset": "native", "symbol": "ETH", "delta": "-1", "decimals": 18 },
    { "address": "0x0000000000000000000000000000000000000001", "asset": "native", "symbol": "ETH", "delta": "1", "decimals": 18 }
  ],
  "approvals_emitted": [],
  "warnings": [],
  "intent_check": null
}

A paid answer may also carry a signed Meridian-Receipt header.

What it does NOT do

Unpaid calls return HTTP 402 with PAYMENT-REQUIRED. Retry with PAYMENT-SIGNATURE.

FAQ

Does simulate sign or broadcast?
No. Meridian by MioDio never signs or moves funds.
Is success a guarantee?
No. It is a point-in-time dry run against latest public state. MEV, oracles, upgrades, or later state can differ.
Which chains?
Base or Ethereum (OpenAPI enum).
How is RPC failure billed?
Charged HTTP 200 with status partial. Unexpected Worker 5xx is not charged.

Related