Skip to main content
Glama
OnChainDiligence Agentverse Adapter

OnChainDiligence Agentverse Adapter

by Qazza1

OnChainDiligence — Agentverse Adapter

A thin distribution adapter making OnChainDiligence (OCD) reachable from Agentverse / ASI:One via the Agent Chat Protocol (ACP). It reimplements nothing: every reply is the unmodified result of one call to OCD's existing, public, no-auth MCP surface.

Agentverse / ASI:One
        ↓  Agent Chat Protocol
this adapter (FastAPI, stateless)
        ↓  plain HTTPS tools/call
https://mcp.onchaindiligence.com/public/mcp
        ↓
existing OCD backend (same policy / receipt / verification semantics)

Agent profile

  • Name: OnChainDiligence

  • Handle: @onchaindiligence

  • Short description: Accountability and reconciliation for autonomous agent payments.

  • About: OnChainDiligence compares what an agent was permitted to do with provider claims and independently observed evidence, then shows what matched, what disagreed and what remains unknown.

Related MCP server: mesa-mcp

Summary

OnChainDiligence (OCD) answers one question about an autonomous agent's payment: did it do what it was authorized to do — and can I prove it? It inspects a proposed payment against policy before execution, and independently verifies signed payment receipts against Base settlement after execution.

Key Features

  • Inspect a proposed payment against a policy (max amount, allowed network/asset)

  • Retrieve a public, signed OCD receipt by its exact ID

  • Verify a receipt's cryptographic proof: VALID, INVALID, or UNVERIFIABLE

  • Free, no account, no wallet connection required for any of the above

Usage

Ask things like:

Inspect a $0.001 USDC payment on Base against a $1 maximum.
Retrieve OCD receipt OCD-RCP-NB51-QG4S-VCAN-Y57F.
Verify that receipt and tell me what it does and doesn't prove.

Use Cases

  • An agent developer sanity-checking a payment before it executes

  • A support team investigating whether a past agent payment actually settled

  • Anyone who received an OCD receipt and wants to independently confirm it

Limitations

  • Read-only: this agent cannot send payments, custody funds, or authorize a wallet on your behalf

  • Inspection is a deterministic policy comparison only — no sanctions screening, no signing

  • VALID confirms cryptographic integrity/authenticity under the OCD verifier contract, not that the underlying action succeeded or was safe

  • "Preflight" requests return a free, unsigned preview via inspect_payment only; a durable, signed PREFLIGHT receipt requires OCD's paid preflight_payment tool, which this adapter never calls on your behalf

Architecture / capabilities exposed

Intent

OCD tool called

Cost

INSPECT_PAYMENT

inspect_payment on /public/mcp

Free

GET_RECEIPT

get_receipt on /public/mcp

Free

VERIFY_RECEIPT

verify_receipt on /public/mcp

Free

PREFLIGHT_INFO

inspect_payment (preview) + a pointer to the paid preflight_payment tool

Free

No new OCD endpoint exists or was added. No OCD API key is required or held by this adapter — it calls the same free, no-auth surface any external client (Claude, ChatGPT) already uses.

The intent router (app/intents.py) is deterministic keyword/regex matching — no LLM classifier. Missing required fields (amount, network, asset, recipient) are always asked for, never guessed. A request to actually send/sign/authorize a payment is always refused, routed to no tool — this adapter has no wallet and no payment capability of any kind.

Local development

python -m venv venv && source venv/bin/activate  # or venv\Scripts\activate on Windows
pip install -r requirements-dev.txt
uvicorn app.main:app --reload

GET /status and POST /chat are then available at http://127.0.0.1:8000.

Testing

pytest -m "not live"   # unit tests, no network
pytest -m live         # live, read-only calls against the real OCD endpoint

Identity

python scripts/generate_identity.py

Generates exactly one dedicated Agentverse identity for this adapter (a random seed → a uagents_core address). This is a new identity — never the Technocore DID, any OCD signing key, any wallet key, or any API credential. The seed is written to a local, gitignored .env and never logged or printed; only the resulting public agent1q... address is printed, which is safe to share (it's how other agents address this one).

Registration (operator step — not run by this repo's automation)

scripts/register_agentverse.py is ready to run once you have an Agentverse.ai account and API key:

export AGENTVERSE_AGENT_SEED=<from .env>
export AGENTVERSE_API_KEY=<your Agentverse API key>
export ADAPTER_PUBLIC_URL=https://<your-deployed-adapter>/chat
python scripts/register_agentverse.py

Known differences from the D2.10I research

The D2.10I spec (based on 2026-era blog/doc summaries) suggested a uAgents process could self-register to the testnet Almanac purely from a local seed, with no Agentverse account. Checked directly against the currently installed uagents-core==0.4.9 source (not just docs) before writing any registration code: register_chat_agent() — the current, official, chat-protocol-aware entry point — requires agentverse_api_key in every code path. There is no registration function in this library version that succeeds without one. Creating that account/API key is account creation, which is outside what this build session performs — it's the one required operator step before registration (testnet or mainnet) can happen at all.

Mainnet cost

Not established by this build — register_chat_agent()'s registration call itself is an Agentverse API call, not a specific on-chain FET spend visible from the library source. The wider Fetch.ai ecosystem documents a small, periodically-renewed (~48h) FET fee for Almanac registration generally; testnet is faucet-funded. Confirm the exact current mainnet fee/renewal amount in the Agentverse dashboard before registering on mainnet — do not assume a figure from older research.

Known unknowns

  • Exact /chat wire semantics on Agentverse's real external-agent adapter path are not fully pinned down by current public docs. This implementation's best-effort reading: POST a ChatMessage, receive a reply ChatMessage as the HTTP response body. Verified correct against this adapter's own test suite and a real local HTTP round trip (see tests/test_chat_endpoint.py); not yet verified against a live Agentverse registration, since that requires the account above. Re-verify this once registered.

  • Agentverse's exact avatar technical spec (size/format) is not published anywhere found during research — a square PNG reusing OCD's existing site seal/mark is the safe default.

Security

  • No OCD credential of any kind is held by this adapter.

  • No wallet key, no payment capability — PREFLIGHT_INFO deliberately never calls the paid preflight_payment tool.

  • The only new secret this integration introduces is the Agentverse agent seed — store and treat it like any other provider secret in this project: never in source, never logged.

  • Chat input is untrusted text routed through a fixed keyword matcher, not given to an LLM with tool-call autonomy over OCD.

  • Receipt content and pasted envelopes are treated as untrusted data, not instructions — matching OCD's own MCP tool descriptions.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables MCP hosts to verify agent spending mandates and receipts, providing stateless tools for authorization, chain verification, credential verification, and DID resolution.
      Apache 2.0
    • A
      license
      A
      quality
      B
      maintenance
      Enables agents to query a read-only ledger of machine payments, exposing tools for spending totals, purchases with event chains, verdicts, payer passports, and fiscal reporting data.
      7
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Exposes MCP tools that let an agent search a catalog, inspect a paid service's pricing, fetch it with payment handled automatically, and check its remaining budget and active spending limits. Payments are authorized against a signed mandate from the owner, so agents can buy API access over HTTP 402 without ever holding the owner's private key.
      382 npm
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables agents to discover peers and published agents without credentials, register a wallet-approved scoped identity, send requests, replies, events and payment proposals, and read and acknowledge durable inbox messages. Also supports linking messaging to a directory agent owned by the verified wallet.
      MIT