EVIDIQ Clause
OfficialIntegrates with OKX's payment SDK to settle x402 payments in USDT0 on X Layer for paid tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EVIDIQ ClauseSummarize this lease agreement and flag any risks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Live on OKX.AI as Agent #10584 (ASP, 8 services, A2MCP only). Endpoint
https://mcp.evidiq.dev/clause/mcp, x402 gate enforced, USDT0 on X Layer.
Tools
Tool | Price | What it does |
| 0.05 | Plain-language rendering, section by section, every statement cited |
| 0.10 | Seven hazards enumerated with severity, quote and why it matters |
| 0.10 | Dated duties as a schedule, relative dates resolved |
| 0.15 | Two documents diffed on meaning, with which side each change favours |
| 0.25 | Decode + flags + calendar + bottom line, two-pass, EIP-191 signed, 0G-anchored |
| free | Tools, prices, models with TEE status, limits |
| free | Re-verifies digest, signature, chain and every citation — no model, ever |
| free | x402 challenge for any paid tool |
Related MCP server: TrustAtom MCP Server
The three promises
Citations are checked, not trusted. Every statement carries a quote plus offsets; the server locates the quote verbatim in your document and drops any statement whose quote is not there (
citationsDropped). An invented clause is mechanically impossible.The reasoning step is attributable. Inference runs on 0G Compute, only on models whose
tee_attestedis true, checked against the router's live registry at call time. Each report records model, provider, request id, TDX attestation and cost in wei.The record is sealed. JCS digest, EIP-191 signature, chained (a removed record shows as a sequence gap), anchored to 0G Storage — the anchored body sealed with AES-256-GCM unless
anchorInClearis set. Checking is free:verify_reportre-verifies everything against your source.
Models: qwen3-vl-30b (extraction; the only one that accepts images) ·
deepseek-v4-flash (independent review pass, verdict_report only) ·
0gm-1.0-35b-a3b (fallback) — all TDX/dstack.
Architecture
flowchart TB
agent["<b>AI agent / caller</b><br/>MCP client"]
request{"Tool call<br/>free or paid?"}
agent -->|POST /clause/mcp| request
free["Free preflight & verification<br/>capabilities · verify_report · quote<br/>never call the model"]
gate["x402 v2 gate<br/>EIP-3009 exact · pay per answer<br/>402 unpaid · settles on X Layer"]
xlayer[("X Layer<br/>USD₮0 · eip155:196")]
request -->|free helper| free
request -->|paid answer| gate
gate -. verify and settle .-> xlayer
subgraph clause["EVIDIQ Clause trust boundary"]
direction TB
intake["1. Document intake<br/>text or base64 pages in the request<br/>no URL fetching · size limits"]
teegate["2. TEE gate<br/>tee_attested read live from the router registry<br/>non-attested model refuses"]
extract["3. Extract pass<br/>qwen3-vl-30b (0gm fallback)<br/>every statement citation-checked; fakes dropped"]
review["4. Review pass<br/>deepseek-v4-flash · verdict_report only<br/>justify or drop each flag"]
seal["5. Seal<br/>JCS digest + EIP-191 + chain (seq/prevHash)<br/>AES-256-GCM sealed anchor · manifest readable"]
intake --> teegate
teegate --> extract
extract --> review
review --> seal
end
og[("0G Storage<br/>sealed body + readable manifest<br/>chain 16661")]
free --> seal
gate --> seal
seal -. root + tx .-> og
og -. anchor .-> response
response["<b>MCP response</b><br/>report + citations + compute trace<br/>digest · signature · anchorKey"]
classDef client fill:#312e81,stroke:#a78bfa,color:#ffffff,stroke-width:2px;
classDef payment fill:#052e16,stroke:#4ade80,color:#ffffff,stroke-width:2px;
classDef core fill:#0f172a,stroke:#38bdf8,color:#ffffff,stroke-width:2px;
classDef output fill:#4c1d95,stroke:#c4b5fd,color:#ffffff,stroke-width:2px;
class agent,request client;
class free,gate,xlayer,og payment;
class intake,teegate,extract,review,seal core;
class response output;
style clause fill:#0f172a,stroke:#38bdf8,color:#e0f2fe,stroke-width:2px;Settled on X Layer (2026-08-06)
Tool | Amount | Settlement |
| 0.05 | |
| 0.10 | |
| 0.10 | |
| 0.15 | |
| 0.25 |
Total 0.65 USDT0, every one status settled. Signed verdict from that run (seq 6,
citationsDropped 0, 0G anchor 0x832f9330…17d92)
and all five outputs: docs/live-test/.
Live test recording

MP4: clause-livetest.mp4 · raw log:
clause-livetest-out.log. Genuine
asciinema capture with --idle-time-limit 2 (waits over two seconds shortened;
session ~3 min, GIF 19.3s; no frame edited; latencies are wall-clock from the log).
Tests
40/40, twelve gates C1 C2 C3 T1 T2 F1 F2 G1 V1 B1 S1 L1 — the three that guard the promises: a fabricated citation is dropped (C1), a non-attested model is refused (T1), no free tool ever reaches the router (F1).
Boundaries
A reading aid, not legal advice. No outbound fetching (documents arrive as text,
up to 200,000 characters, or 20 base64 image pages). Not verified yet: scanned
image input (code exists, fails safe) and an independent 0G indexer re-check in
verify_report.
Fast start
npm install && npm run build && npm testEnvironment in .env.example (slots empty). Container evidiq-clause, port
3024, Traefik at mcp.evidiq.dev/clause.
TypeScript SDK
A typed client for the live endpoint lives in sdk/index.ts — 8 tools (3 free, 5 paid). Free tools answer a bare call; paid tools run the x402 flow automatically (402 challenge → pay hook → replay with the x-payment header). No key lives in the file.
import { ClauseClient } from "./sdk/index.js";
const client = new ClauseClient(); // endpoint defaults to https://mcp.evidiq.dev/clause/mcp
// free
const caps = await client.callTool("clause_capabilities", {});
// paid — settle the 402 challenge via the constructor's pay hook, or omit it
// to receive a PaymentRequiredError carrying the full x402 v2 challenge
const result = await client.callTool("some_paid_tool", { arg: "value" });The pay hook receives the decoded x402 v2 challenge ({ x402Version, resource, accepts[] } — payTo, asset, amount) and returns the value for the x-payment header, e.g. an EIP-3009 transferWithAuthorization settled via the official OKX SDK. Without a hook, paid calls throw PaymentRequiredError so the caller can settle however it wants.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI document intelligence: extract, summarize, claim-check, notarize, and signed action receipts.
- ClmentOAuthcom.clment
Contract review that keeps your contracts: cited answers, Word redlines, key-date alerts.
Privacy-first document verification anchored to the public ledger.
ContractOracle - 10 contract analysis tools: clause extraction, redlines, DORA mappings.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to sign decisions with post-quantum cryptographic proofs and maintain secure audit trails for compliance. It provides tools for stamping events, verifying chain integrity, and exporting audit data across industries like finance and healthcare.431 npmMIT
- AlicenseAqualityBmaintenanceProvides cryptographic signing and verification for AI decisions to generate verifiable, Ed25519-signed receipts for compliance and auditing. It automatically maps AI actions to regulatory frameworks like HIPAA and SOX with high-performance, sub-3ms signing.4MIT
- FlicenseNot gradedqualityAmaintenanceVerifiable document intelligence for AI agents. Extract, summarize, claim-check, and notarize PDFs & URLs with cryptographic proofs, cross-document search, and on-chain attestation via Base L2.-
- AlicenseAqualityBmaintenanceVerifiable document intelligence for AI agents. Extract text, tables, and structured data from PDFs and URLs. Summarize, answer questions, check claims, and translate — all with cited evidence. Store tamper-evident evidence bundles with cryptographic signatures and on-chain attestation via Base L2. Cross-document semantic search and Q&A across named collections. Pay per call with USDC229 npm1MIT