Skip to content

OnChainDiligence

by onchaindiligence.com · remote · no sign-in to list tools · v1.2.0 · published by com.onchaindiligence

Payment evidence and policy preflight, plus paid sanctions and company Evidence Provider checks.

Final · 3Changes · 12

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

Scanned Oct 21, 2026

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

claude mcp add --transport http compliance https://mcp.onchaindiligence.com/mcp

Findings

Matches of fixed checks, with the text they matched.

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

    Matched text

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

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

    Matched text

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

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

    Matched text

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

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

    Matched text

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

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

    Matched text

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

    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.

21 tools

Can't be undone 3Claude Code: ask
  • preflight_bridgeCall BEFORE an agent asks its wallet to bridge Base USDC to Ethereum via Circle CCTP V2 (depositForBurn).1 finding

    Why it is in this group

    • The description's first verb is "call": a word for a change.
    • The input addresses people (input.action.recipient): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

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

      Matched text

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

      What this check looks for
    Description, as the server wrote it
    Call BEFORE an agent asks its wallet to bridge Base USDC to Ethereum via Circle CCTP V2 (depositForBurn). OCD evaluates strict policy and returns a signed portable bridge artifact. ALLOW is policy only, never wallet authority.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • paymentHint: true
  • preflight_paymentCall BEFORE an agent authorizes an autonomous payment.1 finding

    Why it is in this group

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

    Findings

    • Warn

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

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "preflight_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
    Call BEFORE an agent authorizes an autonomous payment. Evaluates it against your policy (max amount, allowed networks/assets, expected recipient, allowed origins) and returns a signed PREFLIGHT receipt -- ALLOW, REQUIRE_APPROVAL, or BLOCK, with reasons -- independently verifiable by anyone. Policy evaluation only: OCD never holds, moves, or authorizes funds. The wallet/x402 client separately authorizes execution after; ALLOW does not guarantee it will proceed.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • paymentHint: true
  • preflight_swapCall BEFORE an agent asks its wallet to execute a narrow Base USDC-to-WETH direct Uniswap V3 swap.1 finding

    Why it is in this group

    • The description's first verb is "call": a word for a change.
    • The input addresses people (input.action.recipient): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

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

      Matched text

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

      What this check looks for
    Description, as the server wrote it
    Call BEFORE an agent asks its wallet to execute a narrow Base USDC-to-WETH direct Uniswap V3 swap. OCD returns a signed portable policy artifact. ALLOW is policy only, never wallet authority.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • paymentHint: true
Changes things 12Claude Code: ask
  • diligenceCombined counterparty due diligence in one call: an exact OFAC SDN digital-currency-address screen of an EVM wallet AND a UK Companies House KYB lookup (status, type, PSC / benefic…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
    Combined counterparty due diligence in one call: an exact OFAC SDN digital-currency-address screen of an EVM wallet AND a UK Companies House KYB lookup (status, type, PSC / beneficial owners), in parallel. Returns both independent results plus an explicit disclaimer that no verified link between the wallet and the company is established by the data. SDN only; a non-match is not clearance. Refused before payment if current sanctions data is unavailable.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • paymentHint: true
  • observe_allowanceGiven a signed OCD allowance preflight artifact and submitted Base transaction hash, independently inspect its canonical-USDC Approval event, Base safe-head finality, and historica…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
    Given a signed OCD allowance preflight artifact and submitted Base transaction hash, independently inspect its canonical-USDC Approval event, Base safe-head finality, and historical allowance state. OCD never executes the transaction.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • observe_bridgeGiven a signed OCD bridge preflight artifact, the Base depositForBurn transaction hash, and (once available) the Ethereum receiveMessage transaction hash, independently observe bot…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
    Given a signed OCD bridge preflight artifact, the Base depositForBurn transaction hash, and (once available) the Ethereum receiveMessage transaction hash, independently observe both chains, verify the CCTP message identity matches, and reconcile against the authorized action. Source-only observation is reported as an evidence gap, never as completion.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • observe_stakingGiven a signed OCD staking preflight artifact and Ethereum transaction hash, independently inspect the canonical Lido Submitted event, transaction sender/value, optional minted sha…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
    Given a signed OCD staking preflight artifact and Ethereum transaction hash, independently inspect the canonical Lido Submitted event, transaction sender/value, optional minted shares, and Ethereum finalized-head finality. OCD never stakes ETH.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • observe_swapGiven a signed OCD swap preflight artifact and Base transaction hash, independently inspect direct Uniswap V3 exactInputSingle calldata, ERC-20 transfers, and Base safe-head finali…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
    Given a signed OCD swap preflight artifact and Base transaction hash, independently inspect direct Uniswap V3 exactInputSingle calldata, ERC-20 transfers, and Base safe-head finality. OCD never executes the swap.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • preflight_allowanceCall BEFORE an agent asks its wallet to approve or revoke a Base USDC ERC-20 allowance.1 finding

    Why it is in this group

    • The description's first verb is "call": 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 "preflight_allowance" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

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

      What this check looks for
    Description, as the server wrote it
    Call BEFORE an agent asks its wallet to approve or revoke a Base USDC ERC-20 allowance. OCD evaluates strict policy and returns a signed portable allowance artifact. ALLOW is policy only, never wallet authority.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • paymentHint: true
  • preflight_stakingCall BEFORE an agent asks its wallet to submit ETH to Lido stETH.1 finding

    Why it is in this group

    • The description's first verb is "call": 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 "preflight_staking" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

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

      What this check looks for
    Description, as the server wrote it
    Call BEFORE an agent asks its wallet to submit ETH to Lido stETH. OCD evaluates strict policy and returns a signed portable staking artifact. ALLOW is policy only, never wallet authority.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • paymentHint: true
  • screen_nameOFAC name screening: fuzzy-match a person or company name against the official US Treasury OFAC Specially Designated Nationals (SDN) list (primary names + strong aliases).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
    OFAC name screening: fuzzy-match a person or company name against the official US Treasury OFAC Specially Designated Nationals (SDN) list (primary names + strong aliases). Returns scored candidate matches with the matched name, SDN type, and program. SCOPE: this is a screening aid for AML / KYC / sanctions compliance — a match is a candidate to investigate with secondary identifiers (DOB, nationality, ID), NOT a determination. Weak AKAs are not screened, per OFAC guidance.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • paymentHint: true
  • screen_walletExact match of an EVM wallet address against the digital currency address identifiers on the official US Treasury OFAC SDN List (validated snapshot, refreshed hourly).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
    Exact match of an EVM wallet address against the digital currency address identifiers on the official US Treasury OFAC SDN List (validated snapshot, refreshed hourly). Returns signed listed / not_listed, the SDN entry, dataset provenance and limits. SDN only: not EU/UN/UK lists, no ownership or 50% rule analysis; a non-match is not legal clearance. Refused before payment if current data is unavailable. Call before sending funds to an address.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • paymentHint: true
  • verify_receiptIndependently checks whether a receipt is cryptographically VALID, INVALID, or UNVERIFIABLE, with a reason code.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
    Independently checks whether a receipt is cryptographically VALID, INVALID, or UNVERIFIABLE, with a reason code. Free, no payment. Pass EITHER receipt_id (looks it up first, must be public) OR a complete receipt envelope you already hold (verified directly, no publication needed). This is a convenient ONLINE check -- it trusts this server to have honestly fetched the real signing-key registry. Running the same check yourself offline (the published @onchaindiligence/agent-evidence package) is a strictly stronger trust position; this tool does not replace that option.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • verify_uk_companyUK company KYB lookup via the official Companies House register.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
    UK company KYB lookup via the official Companies House register. Given a UK registration number, returns legal status (active/dissolved), company type, incorporation date, registered office, and people with significant control (PSC / beneficial owners). Call to confirm a UK business is real, active, and who controls it, for KYB onboarding and counterparty due diligence. Authoritative UK government data.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • paymentHint: true
  • verify_us_companyUS public company verification via SEC EDGAR.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
    US public company verification via SEC EDGAR. Given a ticker, CIK, or company name, returns entity name, CIK, industry (SIC), state of incorporation, exchanges/tickers, address, and latest SEC filing. Ambiguous names return candidates, never a silent selection. Covers SEC-registered PUBLIC companies and funds only -- not private US companies. Call for KYB and counterparty due diligence on listed US entities.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • paymentHint: true
Only reads 6Claude Code: allow
  • get_receiptLook up a public OCD receipt by its exact receipt_id (format "OCD-RCP-XXXX-XXXX-XXXX-XXXX").No findings

    Why it is in this group

    • The name "get_receipt" says "get": a word for reading.
    Description, as the server wrote it
    Look up a public OCD receipt by its exact receipt_id (format "OCD-RCP-XXXX-XXXX-XXXX-XXXX"). Free, no payment. Returns the complete signed receipt envelope, or a structured not-found/unavailable reason -- never a guess. A private (unpublished) receipt and an unknown id are indistinguishable, both by design: this never confirms or denies that a private receipt exists.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • inspect_allowanceFREE.No findings

    Why it is in this group

    • The name "inspect_allowance" says "inspect": a word for reading.
    Description, as the server wrote it
    FREE. Deterministically inspect an ERC-20 allowance/revocation request against explicit network/token/spender/value policy. No wallet action, no signing, no chain read unless a separately requested preflight asks for it.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • inspect_bridgeFREE.No findings

    Why it is in this group

    • The name "inspect_bridge" says "inspect": a word for reading.
    Description, as the server wrote it
    FREE. Deterministically inspect a narrow Circle CCTP V2 Base-to-Ethereum native-USDC bridge request against explicit policy. No wallet action, no signing, no chain read.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • inspect_paymentFREE.No findings

    Why it is in this group

    • The name "inspect_payment" says "inspect": a word for reading.
    Description, as the server wrote it
    FREE. Pure deterministic inspection of a proposed payment against structured policy (amount/network/asset/recipient/resource) — no external evidence, no sanctions screening, no cryptographic signing, no receipt. Returns the same ALLOW / REQUIRE_APPROVAL / BLOCK decision semantics as POST /x402/preflight-payment for the deterministic checks alone, so a caller can sanity-check a proposal before deciding whether the paid preflight (adds optional sanctions evidence and a signed, independently-verifiable receipt, $0.01) is worth paying for. This result is NOT cryptographically attested and carries no receipt — receipt is always null.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • inspect_stakingFREE.No findings

    Why it is in this group

    • The name "inspect_staking" says "inspect": a word for reading.
    Description, as the server wrote it
    FREE. Deterministically inspect a narrow Ethereum Lido stETH submit request against explicit policy. No wallet action, signing, or chain read.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • inspect_swapFREE.No findings

    Why it is in this group

    • The name "inspect_swap" says "inspect": a word for reading.
    Description, as the server wrote it
    FREE. Deterministically inspect a narrow Base USDC-to-WETH direct Uniswap V3 swap against explicit policy. No wallet action or signing.

    Annotations the server declares

    • readOnlyHint: 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 1.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http compliance https://mcp.onchaindiligence.com/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__compliance__inspect_payment",
      "mcp__compliance__inspect_allowance",
      "mcp__compliance__inspect_swap",
      "mcp__compliance__inspect_bridge",
      "mcp__compliance__inspect_staking",
      "mcp__compliance__get_receipt"
    ],
    "ask": [
      "mcp__compliance__screen_wallet",
      "mcp__compliance__screen_name",
      "mcp__compliance__verify_uk_company",
      "mcp__compliance__verify_us_company",
      "mcp__compliance__diligence",
      "mcp__compliance__preflight_payment",
      "mcp__compliance__preflight_allowance",
      "mcp__compliance__observe_allowance",
      "mcp__compliance__preflight_swap",
      "mcp__compliance__observe_swap",
      "mcp__compliance__preflight_bridge",
      "mcp__compliance__observe_bridge",
      "mcp__compliance__preflight_staking",
      "mcp__compliance__observe_staking",
      "mcp__compliance__verify_receipt"
    ],
    "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 compliance. Review it before you use it.