FabTally Safe

Read-only crypto safety: token honeypot checks, EIP-712 signature decode, approval scans.

Should I use this

Quality & Safety

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

Findings (1)

  • LOWTool 'simulate_free' description lacks action verbin simulate_free

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,685Tokens (tool definitions)
~1.5 KBTypical response size
Moderate attention impact (1.32% 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": {
    "crypto-safety": {
      "url": "https://safe.fabtally.com/mcp"
    }
  }
}

Remote endpoints

https://safe.fabtally.com/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢token_safety(address, chain, x_payment)

PAID $0.02 (x402, USDC on Base). Multi-chain token honeypot/rug check aggregating GoPlus token-security + honeypot.is buy/sell-tax simulation into a normalized 0-100 risk score with explainable reasons: honeypot/can't-sell, buy/sell tax, mint/blacklist/pausable/ownership privileges, top-holder concentration, LP-lock, contract verified/bytecode. Descriptive facts only — NOT a buy/sell signal. Without payment returns the x402 challenge; pass x_payment to settle. Free teaser: token_safety_free.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "0x token contract address."
    },
    "chain": {
      "type": "string",
      "description": "Chain: ethereum | base | bsc | polygon | arbitrum | optimism."
    },
    "x_payment": {
      "type": "string",
      "description": "x402 payment payload (base64) for this PAID tool. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
    }
  },
  "required": [
    "address",
    "chain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪token_safety_free(address, chain)

FREE. Score band + top-line honeypot/tax/privilege flags for a token {address, chain}. Real result, no wallet. Upgrade to token_safety for the full numeric breakdown.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "0x token contract address."
    },
    "chain": {
      "type": "string",
      "description": "Chain: ethereum | base | bsc | polygon | arbitrum | optimism."
    }
  },
  "required": [
    "address",
    "chain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪decode_signature(typed_data, chain, x_payment)

PAID $0.01 (x402, USDC on Base). Decode an off-chain EIP-712 typed-data signature (Permit / Permit2 / Seaport / generic) into plain English with risk flags: unlimited approval, unknown/known-malicious spender, never-expiring or already-expired deadlines, zero-consideration NFT-drain orders. Off-chain signatures are the top wallet-drainer vector. Pure offline decode — never signs/broadcasts. Without payment returns the x402 challenge; pass x_payment. Free teaser: decode_signature_free.

Input Schema

{
  "type": "object",
  "properties": {
    "typed_data": {
      "type": "object",
      "additionalProperties": {},
      "description": "EIP-712 typed data object: {domain, types, primaryType, message}."
    },
    "chain": {
      "type": "string",
      "description": "Optional chain override (else read from domain.chainId)."
    },
    "x_payment": {
      "type": "string",
      "description": "x402 payment payload (base64) for this PAID tool. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
    }
  },
  "required": [
    "typed_data"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪decode_signature_free(typed_data, chain)

FREE. Type + plain-English summary + risk level for an EIP-712 `typed_data`. Real result, no wallet. Upgrade to decode_signature for the full field-by-field decode + all risk flags + malicious-spender screening.

Input Schema

{
  "type": "object",
  "properties": {
    "typed_data": {
      "type": "object",
      "additionalProperties": {},
      "description": "EIP-712 typed data object: {domain, types, primaryType, message}."
    },
    "chain": {
      "type": "string",
      "description": "Optional chain override (else read from domain.chainId)."
    }
  },
  "required": [
    "typed_data"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪approvals(address, chain, x_payment)

PAID $0.01 (x402, USDC on Base). Scan a wallet's ERC-20/721 approvals ranked by exposure; flags unlimited amounts, unverified/known-malicious spenders, and address-poisoning 'fake-approval revoke bait'; returns the exact revoke calldata you execute YOURSELF (never executed/broadcast by us). Without payment returns the x402 challenge; pass x_payment. Free teaser: approvals_free.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "0x wallet address to scan."
    },
    "chain": {
      "type": "string",
      "description": "Chain: ethereum | base | bsc | polygon | arbitrum | optimism."
    },
    "x_payment": {
      "type": "string",
      "description": "x402 payment payload (base64) for this PAID tool. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
    }
  },
  "required": [
    "address",
    "chain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪approvals_free(address, chain)

FREE. Approval counts + top-3 riskiest spenders for {address, chain}. Real result, no wallet. Upgrade to approvals for EVERY approval ranked + revoke calldata.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "0x wallet address to scan."
    },
    "chain": {
      "type": "string",
      "description": "Chain: ethereum | base | bsc | polygon | arbitrum | optimism."
    }
  },
  "required": [
    "address",
    "chain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢simulate(chain, from, to, data, value, ...)

PAID $0.02 (x402, USDC on Base). Keyless pre-sign analysis of {chain, from?, to, data, value?}: public-RPC eth_call revert check + static calldata decode predicting approval/transfer deltas + risk flags (unlimited approval, approval-for-all, reverts). Honest keyless limitation stated in the response (no full fork trace). Without payment returns the x402 challenge; pass x_payment. Free teaser: simulate_free.

Input Schema

{
  "type": "object",
  "properties": {
    "chain": {
      "type": "string",
      "description": "Chain: ethereum | base | bsc | polygon | arbitrum | optimism."
    },
    "from": {
      "type": "string",
      "description": "0x sender (optional but improves accuracy)."
    },
    "to": {
      "type": "string",
      "description": "0x target contract/recipient."
    },
    "data": {
      "type": "string",
      "description": "0x calldata (omit for a plain value transfer)."
    },
    "value": {
      "type": "string",
      "description": "Value in wei (optional)."
    },
    "x_payment": {
      "type": "string",
      "description": "x402 payment payload (base64) for this PAID tool. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
    }
  },
  "required": [
    "chain",
    "to"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪simulate_free(chain, from, to, data, value)

FREE. Method + revert flag + risk level + predicted effect types for a transaction. Real result, no wallet. Upgrade to simulate for the full predicted deltas + all risk flags.

Input Schema

{
  "type": "object",
  "properties": {
    "chain": {
      "type": "string",
      "description": "Chain: ethereum | base | bsc | polygon | arbitrum | optimism."
    },
    "from": {
      "type": "string",
      "description": "0x sender (optional but improves accuracy)."
    },
    "to": {
      "type": "string",
      "description": "0x target contract/recipient."
    },
    "data": {
      "type": "string",
      "description": "0x calldata (omit for a plain value transfer)."
    },
    "value": {
      "type": "string",
      "description": "Value in wei (optional)."
    }
  },
  "required": [
    "chain",
    "to"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools