Docs / Tx simulation
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.
status: ok, or partial if the dry run could not fully finish or its results may be incomplete. The errors and notes fields say why.result: success, revert (with revert_reason), or unavailable if the dry run could not be completed.simulated_at_block, gas_used, balance_changes[], approvals_emitted, warnings, optional intent_check when you also send intent.JSON required: tx (object). Optional chain (base or ethereum) and intent (same shape the drift check takes).
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.
$0.01 USDC on Base (~10000 atomic). Network eip155:8453. Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. payTo 0x4DA1ED782BD61BaE9AdD5a5CaBbCf32f767f8d7F.
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.
{
"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.
Unpaid calls return HTTP 402 with PAYMENT-REQUIRED. Retry with PAYMENT-SIGNATURE.