Skip to main content
Glama

signature_check

Read-onlyIdempotent

Check a signature request BEFORE signing it: decodes EIP-712 typed data (ERC-20 permit, Permit2, Seaport order, transfer authorization) or an x402 payment request, explains in one sentence what signing would allow, screens spenders and payees for sanctions and scams, and catches signature-drainer patterns. Returns proceed / caution / avoid. Free over MCP for 10 calls per day; beyond that the tool returns the pay-per-call x402 endpoint and its price.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "signature_check"
  }
}

Input Schema

NameRequiredDescriptionDefault
chainNo
signerNoWallet that would sign
typedDataNoEIP-712 typed data { domain, types, primaryType, message }, or its JSON string
expectedMaxUsdNox402 only: refuse payment options above this many USD
paymentRequiredNox402 PaymentRequired object with accepts[] the agent is about to pay

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / chain / enum
      Previous value: -[
      -  "ethereum",
      -  "base",
      -  "arbitrum",
      -  "optimism",
      -  "polygon",
      -  "bsc",
      -  "avalanche",
      -  "linea",
      -  "unichain",
      -  "sonic"
      -]New value: +[
      +  "ethereum",
      +  "base",
      +  "arbitrum",
      +  "optimism",
      +  "polygon",
      +  "bsc",
      +  "avalanche",
      +  "linea",
      +  "unichain",
      +  "sonic",
      +  "hyperevm"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / chain / enum
      Previous value: -[
      -  "ethereum",
      -  "base",
      -  "arbitrum",
      -  "optimism",
      -  "polygon"
      -]New value: +[
      +  "ethereum",
      +  "base",
      +  "arbitrum",
      +  "optimism",
      +  "polygon",
      +  "bsc",
      +  "avalanche",
      +  "linea",
      +  "unichain",
      +  "sonic"
      +]
  3. Added

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses the verdict vocabulary (proceed / caution / avoid), what the output contains (a one-sentence explanation of what signing would allow), the screening behavior (sanctions and scam checks on spenders and payees), and an explicit operating limit — 10 free calls per day, then a pay-per-call x402 endpoint with a price. That rate-limit and degradation behavior is exactly the kind of context annotations cannot convey.

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 action and its timing constraint, followed by capability enumeration and then the pricing caveat — a logical order. The single long first sentence is dense but each clause adds distinct information; the pricing sentence is separate and clearly secondary.

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

Completeness4/5

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

For a 5-parameter tool with nested objects and no output schema, the description covers purpose, payload types, screening behavior, result values, and quota — enough to call it correctly and interpret the response. The one gap is that no parameters are required and the description never states that `typedData` and `paymentRequired` are mutually exclusive modes, leaving the agent to infer which input combination to send.

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?

Schema coverage is already 80%, so the baseline is 3; the description adds meaning by enumerating the typed-data families the `typedData` parameter accepts and by framing `paymentRequired`/`expectedMaxUsd` as the x402 path ('x402 only: refuse payment options above this many USD'). It still does not explain how `chain` or `signer` interact with the two payload modes, but it meaningfully enriches the two core inputs.

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?

The description names a specific verb and resource ('Check a signature request') and enumerates exactly what the check covers: EIP-712 typed data (ERC-20 permit, Permit2, Seaport order, transfer authorization) or an x402 payment request, plus sanction/scam screening and drainer detection. This clearly separates it from siblings like tx_decode, preflight, and approval_scan, which operate on transactions or approvals rather than pre-signature payloads.

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

Usage Guidelines4/5

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

'BEFORE signing it' establishes the temporal condition for use, and the supported payload families tell the agent which inputs qualify. There are no explicit exclusions or named sibling alternatives (e.g., 'use tx_decode for already-signed transactions'), so routing is implied rather than spelled out.

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.