Odel
chainverdict

chainverdict

@alexanderbalieu-connectionsJavaScriptMITUpdated 6 days ago

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

Server endpointStreamable HTTPNo authProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

ChainVerdict — chainverdict.xyz

Checks an autonomous agent runs before it moves money or trusts a counterparty: token safety verdicts and wallet risk profiles on Base, on-chain payment verification, financial-identifier validation, and live domain security posture.

Every call is paid per request in USDC on Base over the x402 protocol — no accounts, no API keys, no signup. Every response carries an evidence record saying what was checked, how fresh it is and what it does not establish, and is Ed25519-signed. No LLM inference anywhere: every answer is a deterministic computation or a live read of external state, so the same input returns the same answer forever.

MCP server

ChainVerdict is a remote MCP (Model Context Protocol) server, built on the official @modelcontextprotocol/sdk and served over Streamable HTTP at:

https://chainverdict.xyz/mcp

It is published in the official MCP registry as xyz.chainverdict/chainverdict.

  • initialize and tools/list are free, so registries and clients can index the server without paying.
  • tools/call is x402-paid at the price of the route behind the tool — except payment_info, which is free.
  • 20 MCP tools, all read-only and idempotent, annotated with readOnlyHint / destructiveHint / idempotentHint / openWorldHint.
  • No MCP resources or prompts are exposed; this server is tools-only.

Tool descriptions interpolate the live price from the same map the payment middleware charges from, so tools/list can never advertise a rate that is not the rate. test/mcp-parity.test.js fails the build if a tool exists for a route that is no longer sold, or if a sold route has no tool.

Tools

ToolWhat it answers
payment_infoFree. How x402 payment works, the price of every tool, where payments settle.
token_verdictIs this ERC-20 on Base a scam, a honeypot, or safe to hold?
wallet_dossierWallet risk profile for a Base address before you pay it.
verify_paymentDecode and confirm an on-chain payment on Base.
verify_tokenResolve a symbol or address to the canonical Base token.
validate_iban validate_vat validate_bic validate_lei validate_isinDeterministic check-digit and format validation.
security_email security_tls security_typosquatSPF/DMARC/DKIM posture, live TLS probe, brand look-alike analysis.
data_gas data_block data_token_supply data_token_activity data_portfolioLive Base chain reads.
html_to_markdown text_diffDocument utilities.

POST /v1/batch/validate is HTTP-only by design: 500 identifiers do not belong in a tool-call argument.

HTTP rate card

Every endpoint answers an unpaid request with a 402 quote.

RoutePrice
GET /v1/token/verdict/*$0.01
GET /v1/wallet/dossier/*$0.01
GET /v1/validate/iban/*$0.001
GET /v1/validate/vat/*$0.001
GET /v1/validate/bic/*$0.001
POST /v1/doc/html-to-markdown$0.002
POST /v1/doc/diff$0.002
GET /v1/verify/payment/*$0.02
GET /v1/verify/token/*$0.005
GET /v1/validate/lei/*$0.002
GET /v1/validate/isin/*$0.001
POST /v1/batch/validate$0.10
GET /v1/security/email/*$0.01
GET /v1/security/tls/*$0.01
GET /v1/security/typosquat/*$0.005
GET /v1/data/gas$0.002
GET /v1/data/block$0.001
GET /v1/data/supply/*$0.003
GET /v1/data/activity/*$0.005
GET /v1/data/portfolio/*$0.004

Free to read before you pay for anything: / (discovery), /health, /openapi.json, /llms.txt, /v1/methodology, /.well-known/x402.json.

The whole portfolio, machine-readable: https://pulse.chainverdict.xyz/.well-known/portfolio.json

Local dev

npm ci
X402_ENABLED=false npm start   # free mode, no payments
npm test                       # 34 tests

Ops

Stateless. No database, no cron, no maintained data set. Sources are pure arithmetic over public specifications plus live Base RPC.

Limitations

These are informational signals. None is a compliance control, none discharges a legal obligation, and none is regulated financial, legal or compliance advice. A valid signature proves a response came from this service unaltered — not that the answer is correct. A signed wrong answer is still wrong, and still signed.

Operated by Alexander Balieu, independent professional established in Luxembourg.

Licence

MIT. See LICENSE.