# OnChainDiligence

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

- name: com.onchaindiligence/compliance
- version: 1.2.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 69/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.onchaindiligence%2Fcompliance
- tools: https://api.protogrid.dev/v1/servers/com.onchaindiligence%2Fcompliance/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "compliance": {
      "type": "http",
      "url": "https://mcp.onchaindiligence.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-7d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 69/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 21 of 21 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: inspect_swap (destructiveHint, idempotentHint); observe_swap (destructiveHint, idempotentHint); screen_wallet (destructiveHint, idempotentHint); …
- pass `tools.token_cost`: about 6,463 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 8 tool changes in 30 days
- fail `stability.rug_pull`: 4 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 21, about 6,463 tokens to load them all
- tool set hash: 20c672eec80c9b8489c6a81e59604344
- tools last changed: 2026-10-17T13:50:44.715Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.onchaindiligence/compliance.svg)](https://protogrid.dev/servers/com.onchaindiligence/compliance)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-17 `inspect_payment` changed (description)
  - before: 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 policy-only preflight (adds 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.
  - after: 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.
- 2026-10-17 `preflight_payment` changed (description, inputSchema)
  - before: Evaluate a proposed payment before execution against your amount, network, asset, recipient and origin policy. Returns a signed PREFLIGHT receipt: ALLOW, REQUIRE_APPROVAL or BLOCK with reasons. Recipient sanctions screening is currently unavailable; requests requiring it are rejected before payment. OCD never holds, moves, or authorizes funds. The wallet separately authorizes execution; ALLOW does not guarantee it will proceed.
  - after: 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.
- 2026-10-17 `diligence` changed (description) **meaning changed**
  - before: Unavailable: combined wallet/company diligence is suspended because its wallet sanctions source is deprecated. Returns an explicit error before payment. Standalone UK company verification remains available; it does not establish wallet ownership or sanctions status.
  - after: 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.
- 2026-10-17 `screen_wallet` changed (description) **meaning changed**
  - before: Unavailable: wallet sanctions screening is suspended because the Chainalysis oracle is deprecated and unmaintained (last update 2026-03-18). Returns an explicit error before payment, not a negative sanctions finding.
  - after: 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.
- 2026-10-16 `inspect_payment` changed (description)
  - before: 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.
  - after: 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 policy-only preflight (adds 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.
- 2026-10-16 `preflight_payment` changed (description, inputSchema)
  - before: 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.
  - after: Evaluate a proposed payment before execution against your amount, network, asset, recipient and origin policy. Returns a signed PREFLIGHT receipt: ALLOW, REQUIRE_APPROVAL or BLOCK with reasons. Recipient sanctions screening is currently unavailable; requests requiring it are rejected before payment. OCD never holds, moves, or authorizes funds. The wallet separately authorizes execution; ALLOW does not guarantee it will proceed.
- 2026-10-16 `diligence` changed (description) **meaning changed**
  - before: Combined counterparty due diligence in one call: runs sanctions screening on a crypto wallet (Chainalysis oracle — OFAC SDN, EU, UN) AND a UK Companies House KYB lookup (status, type, PSC / beneficial owners) in parallel. Built for compliance agents vetting a counterparty that has both an on-chain wallet and a UK company. Returns both independent results, plus an explicit disclaimer that no verified link between the wallet and the company is established by the data.
  - after: Unavailable: combined wallet/company diligence is suspended because its wallet sanctions source is deprecated. Returns an explicit error before payment. Standalone UK company verification remains available; it does not establish wallet ownership or sanctions status.
- 2026-10-16 `screen_wallet` changed (description) **meaning changed**
  - before: Sanctions-screen an EVM wallet address against the Chainalysis on-chain oracle (OFAC SDN, EU, UN designations). Reflects current status, including delistings -- a once-designated address may now screen clean. Returns a sanctioned / not-sanctioned boolean (no case-level detail). Call before sending USDC or other funds to an address, for AML compliance and counterparty due diligence.
  - after: Unavailable: wallet sanctions screening is suspended because the Chainalysis oracle is deprecated and unmaintained (last update 2026-03-18). Returns an explicit error before payment, not a negative sanctions finding.

Full history: https://api.protogrid.dev/v1/servers/com.onchaindiligence%2Fcompliance/changes

## Remotes

- https://mcp.onchaindiligence.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (21)

- `diligence`: 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.
- `get_receipt`: 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.
- `inspect_allowance`: 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.
- `inspect_bridge`: 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.
- `inspect_payment`: 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.
- `inspect_staking`: FREE. Deterministically inspect a narrow Ethereum Lido stETH submit request against explicit policy. No wallet action, signing, or chain read.
- `inspect_swap`: FREE. Deterministically inspect a narrow Base USDC-to-WETH direct Uniswap V3 swap against explicit policy. No wallet action or signing.
- `observe_allowance`: 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.
- `observe_bridge`: 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.
- `observe_staking`: 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.
- `observe_swap`: 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.
- `preflight_allowance`: 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.
- `preflight_bridge`: 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.
- `preflight_payment`: 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.
- `preflight_staking`: 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.
- `preflight_swap`: 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.
- `screen_name`: 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.
- `screen_wallet`: 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.
- `verify_receipt`: 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.
- `verify_uk_company`: 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.
- `verify_us_company`: 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.
