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.
21 tools: 3 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 undone3Claude Code: ask: see these tools
- Changes things12Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
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/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "preflight_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,"openWorldHint":true}; The name "preflight_payment" says "payment": a word that usually means money moves, which cannot be taken back.
The server marks "preflight_allowance" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "call": a word for a change.
- Warnpreflight_swap
The server marks "preflight_swap" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "call": a word for a change.
- Warnpreflight_bridge
The server marks "preflight_bridge" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "call": a word for a change.
The server marks "preflight_staking" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "call": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "call": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "preflight_payment" says "payment": a word that usually means money moves, which cannot be taken back.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "call": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "call": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "call": a word for a change.
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/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__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.