ToolAssay

Explain and preflight an unsigned Base transaction, EIP-712 typed data, or an EI

Explain and preflight an unsigned Base transaction, EIP-712 typed data, or an EIP-3009 x402 payment authorization before you sign it. Decodes intent against verified ABIs, resolves proxies, classifies approvals, and checks a payment authorization against the quote it claims to pay: recipient, amount, asset, chain, freshness, and nonce replay. Returns unknown rather than guessing when a selector is ambiguous. Not a guarantee that a transaction is safe or profitable.

Answeringour last check, 2026-09-24
1 of 1checks answered this week
1029 msmedian answer time
$0.01listed price per call
$0.01price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://txguard.schemasure.com/v1/tx/preflight

CategoryEverything else
Provider hosttxguard.schemasure.com
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days36 from 3 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-09-24 valid payment request 402$0.01 1029 ms

Example input (from the provider)

{
  "body": {
    "expected_quote": {
      "amount": "10000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 60,
      "network": "eip155:8453",
      "payTo": "0x1a2B3c4D5E6F7a8B9c0D1e2F3A4b5C6d7E8F9a0b",
      "scheme": "exact"
    },
    "unsigned_tx": {
      "data": "0xa9059cbb0000000000000000000000005d3e1a9b7c2f4e8a0b6d3c5f9e1a7b4d2c8f0a6e0000000000000000000000000000000000000000000000000000000000002710",
      "from": "0x9F2C5E4A8db1C3a7E6B0d4f8C1E2a5b7D9C0e3F4",
      "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "value": "0"
    }
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "additionalProperties": false,
          "description": "Send exactly one of unsigned_tx, tx_hash, typed_data, or authorization.",
          "oneOf": [
            {
              "required": [
                "unsigned_tx"
              ]
            },
            {
              "required": [
                "tx_hash"
              ]
            },
            {
              "required": [
                "typed_data"
              ]
            },
            {
              "required": [
                "authorization"
              ]
            }
          ],
          "properties": {
            "authorization": {
              "additionalProperties": false,
              "description": "An EIP-3009 authorization, which is what an x402 `exact` payment is. value in base units, validAfter/validBefore in unix seconds, nonce 32 random bytes not a counter.",
              "properties": {
                "asset": {
                  "pattern": "^0x[0-9a-fA-F]{40}$",
                  "type": "string"
                },
                "from": {
                  "pattern": "^0x[0-9a-fA-F]{40}$",
                  "type": "string"
                },
                "kind": {
                  "enum": [
                    "transfer",
                    "receive"
                  ],
                  "type": "string"
                },
                "nonce": {
                  "pattern": "^0x[0-9a-fA-F]*$",
                  "type": "string"
                },
                "signature": {
                  "pattern": "^0x[0-9a-fA-F]*$",
                  "type": "string"
                },
                "to": {
                  "pattern": "^0x[0-9a-fA-F]{40}$",
                  "type": "string"
                },
                "validAfter": {
                  "type": "string"
                },
                "validBefore": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "required": [
                "from",
                "to",
                "value",
                "validAfter",
                "validBefore",
                "nonce"
              ],
              "type": "object"
            },
            "expected_quote": {
              "additionalProperties": false,
              "description": "The x402 quote this payment claims to satisfy. Enables the comparison checks.",
              "properties": {
                "amount": {
                  "type": "string"
                },
                "asset": {
                  "type": "string"
                },
                "extra": {
                  "type": "object"
                },
                "maxTimeoutSeconds": {
                  "type": "number"
                },
                "network": {
                  "type": "string"
                },
                "payTo": {
                  "type": "string"
                },
                "scheme": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "simulate": {
              "default": false,
              "description": "Run eth_simulateV1 with asset tracing. Priced at $0.015 instead of $0.01, and targets P50 2s / P95 5s rather than the static path's 500ms / 2s.",
              "type": "boolean"
            },
            "tx_hash": {
              "description": "An existing Base transaction to explain.",
              "pattern": "^0x[0-9a-fA-F]{64}$",
              "type": "string"
            },
            "typed_data": {
              "description": "EIP-712 payload. TransferWithAuthorization and ReceiveWithAuthorization get the x402 check table; any other primaryType is reported unrecognised, not analysed.",
              "properties": {
                "domain": {
                  "type": "object"
                },
                "message": {
                  "type": "object"
                },
                "primaryType": {
                  "type": "string"
                },
                "types": {
                  "type": "object"
                }
              },
              "required": [
                "domain",
                "primaryType",
                "message"
              ],
              "type": "object"
            },
            "unsigned_tx": {
              "additionalProperties": false,
              "description": "A transaction you are about to sign. `to: null` is a deployment.",
              "properties": {
                "data": {
                  "pattern": "^0x[0-9a-fA-F]*$",
                  "type": "string"
                },
                "from": {
                  "pattern": "^0x[0-9a-fA-F]{40}$",
                  "type": "string"
                },
                "to": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "value": {
                  "description": "Wei.",
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "title": "TxPreflightRequest",
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    }

This page as JSON