Skip to main content
Glama

Base transaction simulation / Preflight

preflight_transaction
Read-only

Before signing: simulate one unsigned Base Mainnet (8453) candidate (chain_id/from/to/value/data); inspect call success/revert, top-level destination and L2 fee constraints, Judgment, reason codes and evidence. Free; no API key, wallet or payment. Complete supported EIP-1559 fee_estimation context optionally estimates L1/L2/applicable Operator/Total Network Fee separately; legacy Judgment is unchanged, not automatic PASS. Inspect http_status, response.judgment and response.simulation. After broadcast use verify_transaction. No signing, broadcasting, custody, asset-delta/risk scan or execution guarantee.

Input Schema

NameRequiredDescriptionDefault
candidateYes
constraintsNo
fee_estimationNoExplicit opt-in to a separate versioned network_fee_estimate. Missing transaction fields are never guessed. Legacy cost_estimate, Judgment and L2 constraints remain unchanged.

Output Schema

NameRequiredDescriptionDefault
responseYes
http_statusYes
retry_after_secondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / fee_estimation
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Explicit opt-in to a separate versioned network_fee_estimate. Missing transaction fields are never guessed. Legacy cost_estimate, Judgment and L2 constraints remain unchanged.",
      +  "properties": {
      +    "transaction": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "access_list": {
      +          "additionalItems": false,
      +          "description": "Only an empty access list is supported by this fee-estimate version.",
      +          "items": [],
      +          "maxItems": 0,
      +          "type": "array"
      +        },
      +        "gas_limit": {
      +          "description": "Declared gas limit, 21000–5000000. Original simulation ceiling is unchanged.",
      +          "maxLength": 7,
      +          "pattern": "^(0|[1-9][0-9]*)$",
      +          "type": "string"
      +        },
      +        "max_fee_per_gas": {
      +          "maxLength": 78,
      +          "pattern": "^(0|[1-9][0-9]*)$",
      +          "type": "string"
      +        },
      +        "max_priority_fee_per_gas": {
      +          "maxLength": 78,
      +          "pattern": "^(0|[1-9][0-9]*)$",
      +          "type": "string"
      +        },
      +        "nonce": {
      +          "description": "Explicit nonce, 0–9007199254740991; not checked against account state.",
      +          "maxLength": 16,
      +          "pattern": "^(0|[1-9][0-9]*)$",
      +          "type": "string"
      +        },
      +        "type": {
      +          "const": "eip1559",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "type",
      +        "nonce",
      +        "gas_limit",
      +        "max_fee_per_gas",
      +        "max_priority_fee_per_gas",
      +        "access_list"
      +      ],
      +      "type": "object"
      +    },
      +    "version": {
      +      "const": "base_network_fee_v1",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "version"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond the annotations: no cost, no API key/wallet/payment, and an explicit boundary list (no signing, broadcasting, custody, asset-delta/risk scan, or execution guarantee). It also warns that legacy Judgment stays unchanged and is not an automatic PASS. It does not contradict readOnlyHint=true; the only gap is no detail on latency or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the trigger ('Before signing'), and the dense single paragraph carries a lot of load-bearing information. Slight redundancy appears in the repeated capability-boundary statements (free/no key vs no signing/custody) and the twice-mentioned Judgment, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex nested-schema tool with an output schema present, the description covers the prerequisites (free, no key), the optional fee path, where to read results (http_status, response.judgment, response.simulation), and the hand-off to verify_transaction. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Over a low 33% schema-description coverage, the prose still explains the candidate tuple (chain_id/from/to/value/data), that constraints are L2 fee/destination constraints, and that fee_estimation is an opt-in EIP-1559 context that reports L1/L2/Operator/Total fees separately. It does not disambiguate denied_to vs allowed_to, but adds meaningful semantic framing the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (simulate one unsigned Base Mainnet candidate) and enumerates what is inspected: call success/revert, destination, L2 fee constraints, Judgment, reason codes and evidence. It also explicitly separates itself from the sibling by noting verify_transaction is the post-broadcast tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a precise when-to-use trigger ('Before signing') and names the alternative plus its condition ('After broadcast use verify_transaction'). It also scopes optionality ('fee_estimation ... optionally') so the agent knows the fee block is not required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.