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.
20 tools: 2 do something that can't be undone, 12 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone2Claude Code: ask: see these tools
- Changes things12Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
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/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnpayment_info
The server marks "payment_info" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched 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.
- Warnhtml_to_markdown
The server marks "html_to_markdown" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnverify_payment
The server marks "verify_payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched 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.
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".
What this check looks forMatched 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.
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".
What this check looks forMatched 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.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
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/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .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.