Skip to content

xyz.chainverdict/chainverdict

by chainverdict.xyz · remote · no sign-in to list tools · v2.2.1 · published by xyz.chainverdict

Pay-per-call x402 checks before an agent moves money: token safety, wallet risk, identifiers.

Final · 2Changes · 12

20 tools: 2 do something that can't be undone, 12 change things and 6 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http chainverdict https://chainverdict.xyz/mcp

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "payment_info" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "payment_info" says "payment": a word that usually means money moves, which cannot be taken back.

    What this check looks for
  • The server marks "html_to_markdown" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.

    What this check looks for
  • The server marks "verify_payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "verify_payment" says "payment": a word that usually means money moves, which cannot be taken back.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

20 tools

Can't be undone 2Claude Code: ask
  • payment_infoFree.1 finding

    Why it is in this group

    • The name "payment_info" says "payment": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "payment_info" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "payment_info" says "payment": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Free. Explains how to call the paid tools on this server: the x402 protocol, the network and asset, the settlement address, and the price of every tool.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • verify_paymentDecode ERC-20 transfers in a Base transaction: amounts, counterparties, confirmations.1 finding

    Why it is in this group

    • The name "verify_payment" says "payment": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "verify_payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "verify_payment" says "payment": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Decode ERC-20 transfers in a Base transaction: amounts, counterparties, confirmations. $0.02 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Changes things 12Claude Code: ask
  • data_blockLatest block number, timestamp, tx count, gas utilization.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Latest block number, timestamp, tx count, gas utilization. $0.001 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • data_gasLive Base gas conditions: base fee, priority fees, congestion, est transfer cost.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Live Base gas conditions: base fee, priority fees, congestion, est transfer cost. $0.002 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • data_portfolioETH + canonical token balances (USDC/WETH/cbBTC/EURC) for an address.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    ETH + canonical token balances (USDC/WETH/cbBTC/EURC) for an address. $0.004 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • data_token_activityRecent transfer count, volume, unique senders/receivers, activity level.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Recent transfer count, volume, unique senders/receivers, activity level. $0.005 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • data_token_supplyTotal/circulating/burned supply and burn percentage for an ERC-20 on Base.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Total/circulating/burned supply and burn percentage for an ERC-20 on Base. $0.003 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • html_to_markdownConvert raw HTML to clean Markdown.1 finding

    Why it is in this group

    • The description's first verb is "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "html_to_markdown" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert raw HTML to clean Markdown. $0.002 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • security_emailLive DNS check of a domain's email authentication records.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Live DNS check of a domain's email authentication records. $0.01 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • security_tlsLive TLS handshake: cert validity, issuer, expiry countdown.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Live TLS handshake: cert validity, issuer, expiry countdown. $0.01 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • security_typosquatFlags homoglyph and edit-distance look-alikes of known brands (c0inbase, b1nance, etc.).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Flags homoglyph and edit-distance look-alikes of known brands (c0inbase, b1nance, etc.). $0.005 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • token_verdictHeuristic ERC-20 safety verdict on Base: bytecode risk capabilities, ownership, metadata, 0-100 score, hold/caution/avoid.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Heuristic ERC-20 safety verdict on Base: bytecode risk capabilities, ownership, metadata, 0-100 score, hold/caution/avoid. $0.01 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • verify_tokenIs this the real USDC/EURC/WETH/cbBTC/USDT on Base?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Is this the real USDC/EURC/WETH/cbBTC/USDT on Base? Anti-phishing for stablecoin payments. $0.005 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • wallet_dossierProfile of a Base address: EOA vs contract, balance, activity band, flags.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Profile of a Base address: EOA vs contract, balance, activity band, flags. $0.01 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 6Claude Code: allow
  • text_diffDiff two texts (lines/words/chars).No findings

    Why it is in this group

    • The name "text_diff" says "diff": a word for reading.
    Description, as the server wrote it
    Diff two texts (lines/words/chars). $0.002 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • validate_bicBIC/SWIFT structural validation and decomposition.No findings

    Why it is in this group

    • The name "validate_bic" says "validate": a word for reading.
    Description, as the server wrote it
    BIC/SWIFT structural validation and decomposition. $0.001 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • validate_ibanIBAN mod-97 checksum + country length rules.No findings

    Why it is in this group

    • The name "validate_iban" says "validate": a word for reading.
    Description, as the server wrote it
    IBAN mod-97 checksum + country length rules. $0.001 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • validate_isinSecurities identifier checksum validation.No findings

    Why it is in this group

    • The name "validate_isin" says "validate": a word for reading.
    Description, as the server wrote it
    Securities identifier checksum validation. $0.001 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • validate_leiLegal Entity Identifier checksum validation.No findings

    Why it is in this group

    • The name "validate_lei" says "validate": a word for reading.
    Description, as the server wrote it
    Legal Entity Identifier checksum validation. $0.002 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • validate_vatEU VAT format validation with deterministic checksums (DE, IT, LU, PL, SI).No findings

    Why it is in this group

    • The name "validate_vat" says "validate": a word for reading.
    Description, as the server wrote it
    EU VAT format validation with deterministic checksums (DE, IT, LU, PL, SI). $0.001 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 2.2.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http chainverdict https://chainverdict.xyz/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__chainverdict__validate_iban",
      "mcp__chainverdict__validate_vat",
      "mcp__chainverdict__validate_bic",
      "mcp__chainverdict__text_diff",
      "mcp__chainverdict__validate_lei",
      "mcp__chainverdict__validate_isin"
    ],
    "ask": [
      "mcp__chainverdict__payment_info",
      "mcp__chainverdict__token_verdict",
      "mcp__chainverdict__wallet_dossier",
      "mcp__chainverdict__html_to_markdown",
      "mcp__chainverdict__verify_payment",
      "mcp__chainverdict__verify_token",
      "mcp__chainverdict__security_email",
      "mcp__chainverdict__security_tls",
      "mcp__chainverdict__security_typosquat",
      "mcp__chainverdict__data_gas",
      "mcp__chainverdict__data_block",
      "mcp__chainverdict__data_token_supply",
      "mcp__chainverdict__data_token_activity",
      "mcp__chainverdict__data_portfolio"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as chainverdict. Review it before you use it.