Lumen Pre-Sign Check

Use before signing an EVM tx or EIP-712 message: risk flags + verdict. Informational, no simulation

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
79%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~687Tokens (tool definitions)
~1.8 KBTypical response size
Moderate attention impact (0.54% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "lumen-presign-check": {
      "url": "https://lumenworks-x402-decoder.onrender.com/mcp/presign"
    }
  }
}

Remote endpoints

https://lumenworks-x402-decoder.onrender.com/mcp/presignstreamable-http

What it can do

Tool inventory

Tools (2)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒explain_before_sign(transaction, calldata, typedData, chainId, expected_pay_to)

Lumen Pre-Sign Check. Use before signing any EVM transaction or EIP-712 message: returns {summary, flags[], verdict} with verdict looks_ok | review | do_not_sign_unless_intended. Flags unlimited approve/increaseAllowance, EIP-2612 Permit and Permit2 (typed data and on-chain), setApprovalForAll, unknown spender, admin calls (upgradeTo/transferOwnership), zero-price Seaport orders, long deadlines, chain mismatch and x402 payTo mismatch; decodes multicall/aggregate3 inner calls one level. Example: USDC approve(spender, 2^256-1) -> do_not_sign_unless_intended, UNLIMITED_APPROVAL. Agent policy: abort on do_not_sign_unless_intended, escalate review. Informational, not a security guarantee; looks_ok does not mean safe; no simulation. $0.002, no signup, free tier 20/h; not charged if the call errors.

Input Schema

{
  "type": "object",
  "properties": {
    "transaction": {
      "type": "object",
      "description": "Unsigned EVM transaction",
      "properties": {
        "to": {
          "type": "string",
          "description": "Target contract/address (0x…)"
        },
        "data": {
          "type": "string",
          "description": "Calldata hex (0x…)"
        },
        "value": {
          "type": "string",
          "description": "Native value in wei (decimal string)"
        }
      },
      "required": [
        "data"
      ]
    },
    "calldata": {
      "type": "string",
      "description": "Shortcut: calldata hex when you have no tx object"
    },
    "typedData": {
      "type": "object",
      "description": "EIP-712 typed data {domain, types, primaryType, message} (Permit, Permit2, EIP-3009, Seaport…)"
    },
    "chainId": {
      "type": "number",
      "description": "Chain the wallet is on; used for chain-mismatch checks"
    },
    "expected_pay_to": {
      "type": "string",
      "description": "For x402/EIP-3009 payments: the payTo you expect; mismatch is flagged"
    }
  },
  "anyOf": [
    {
      "required": [
        "transaction"
      ]
    },
    {
      "required": [
        "calldata"
      ]
    },
    {
      "required": [
        "typedData"
      ]
    }
  ]
}
🟒x402_payment_safety_check(url, method, payment_required, expected_pay_to, expected_network, ...)

FREE, deterministic pre-payment check for an x402 endpoint. Give {url} (we fetch its unpaid 402) and/or {payment_required} (402 JSON or base64 header), plus optional expected_pay_to, expected_network, max_price_usdc, listed_price_usdc, facilitator_url, client_config {max_per_call_usdc, max_daily_usdc, idempotency_key, allow_any_pay_to}. Returns verdict ok/review/do_not_pay with checks: HTTPS/health, payTo validity & mismatch, unknown asset/network, price sanity vs cap/listing, timeout/replay window, multiple payTo, unknown facilitator, missing spend caps/idempotency. Nothing is stored; inputs that look like private keys are rejected.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "method": {
      "type": "string",
      "enum": [
        "POST",
        "GET"
      ]
    },
    "payment_required": {},
    "expected_pay_to": {
      "type": "string"
    },
    "expected_network": {
      "type": "string"
    },
    "max_price_usdc": {
      "type": "number"
    },
    "listed_price_usdc": {
      "type": "number"
    },
    "facilitator_url": {
      "type": "string"
    },
    "client_config": {
      "type": "object"
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools