Odel
web3ctx

web3ctx

@farseenshHTMLMITUpdated 1w ago

Version-true web3 docs, ABIs and human-validated integration recipes over MCP.

Server endpointStreamable HTTPNo authProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

web3ctx

The last mile before your agent signs.

Human-validated, chain-run web3 integration recipes, served version-true over MCP.

integration projects 630 specification ids 1,193 units 1.34M recipes 26 · human-run endpoint live access free · no key

Five tools

toolwhat it does
web3_searchranked, version-scoped units — plus the human-validated recipe when the question earns one
web3_grepexact identifier lookup across the corpus
web3_fetchfull bodies by stable selector, cursor paging for long content
web3_depsdependency closure, stepped by depth
web3_lookuptyped records — deployment addresses, ABIs, EIPs — or an honest NOT_FOUND

A real answer

“how do I bridge USDC with CCTP” — one call to the authless endpoint, 2026-08-28:

{
  "intent": "lookup",
  "recipe": {
    "project_id": "cctp",
    "version": "2",
    "recipe_type": "usdc-bridge-send",
    "last_validated": "2026-08-07",
    "validated_by": "farseen (github: FarseenSh)",
    "receipts": {
      "validated_on": "2026-08-07",
      "validated_by": "farseen (github: FarseenSh)",
      "checks": [
        "attest",
        "test"
      ],
      "chains_exercised": [
        "base-sepolia",
        "arbitrum-sepolia"
      ],
      "on_chain": [
        {
          "kind": "txHash",
          "hash": "0xd4b4e6395f52ad726dd6062e7a7ec47a2d3a7875d36f20fbb154cde756a3d0f5",
          "role": "approve",
  // … 207 more lines — the receipts, the
  // validated recipe body, and ten citations each pinned to a commit or an exact package version.

The whole response is 26,191 bytes (sha256 bc58a9feba1f6309…) and it publishes byte-for-byte: evidence/showcase/cctp-search.json. Diff it against your own call.

Why this exists

It does not get fooled by a wrong premise. Ten questions built on premises verified false before the run — an archived repo, a renamed package, a version that does not exist. web3ctx was deceived 0 of 10; every other arm was deceived at least once (1–3 of 10). 🔴 Our own intent=integrate row was deceived once, and it publishes here beside the other: a stray line in one recipe cited an archived repository. The ten traps and every arm’s answer →

Citations you can re-fetch. Every unit carries project@version and a URL pinned to a 40-character commit: 142 of 144 across the audited payloads, against ~0 for every tool compared. The audit protocol →

When it does not know, it says so. Asked about eight projects it does not index, it declines all eight and names what would resolve each one. Competitors answer most of them. ⚠ Zero confabulated rows anywhere, including ours — that column separates nobody, and it is reported rather than claimed as an advantage. Abstention honesty →

The recipes are the moat. Each one was run by a human against live chains and ships with the transaction receipts, so anyone can check the claim by RPC rather than trusting the stamp.

Freshness, stated honestly

Every unit carries as_of — the committer date of the commit we pinned — and a citation that resolves to an immutable, re-fetchable reference. Rebuilds are dated events, stamped into corpus_version and visible on the coverage page along with when the index was last loaded. 🔴 No refresh cadence is claimed anywhere, because we could not keep one. A 2020 date on an archived repository is not staleness — it is the newest thing upstream ever published. Per-project dates and coverage →

Quickstart

claude mcp add --transport http web3ctx https://mcp.scarai.xyz/mcp
{ "mcpServers": { "web3ctx": { "type": "http", "url": "https://mcp.scarai.xyz/mcp" } } }

Cursor, Windsurf, Zed and any MCP client: add the same URL — https://mcp.scarai.xyz/mcp — as a remote HTTP server. No key, no signup — the free tier is the read path and always will be.

How a question is answered

flowchart LR
  A[Resolve<br/>entities from the query] --> B[Bind or ABSTAIN<br/>version from evidence]
  B --> C[Filter then rank<br/>predicate first, BM25 within]
  C --> D[Budget-true payload<br/>citations before bodies]

Deterministic end to end — no model on the serving path.

The evidence

This repository carries every measurement behind the claims above — including the experiments that failed, the gates we did not clear, and the corrections to things we published wrong. Competitor payload bytes are withheld by rule; their protocol, hashes and counts are all here, so any count can be re-run against the live tools.

Read the evidence → · overview · evals · coverage — is your stack in there? · who runs it, and what it logs · architecture

Licensed MIT (code and site) and CC BY 4.0 (the evidence documents) — why there are two. Every unit the server returns is an excerpt of a third-party open-source repository, served under its own licence with a commit pin.


630 integration projects + 1,193 specification ids (609 ERC + 583 core EIP + 1 in both repos) = 1,823 total · 1,339,786 units · 26 human-stamped recipes. Every number on this page is read from the live database at publish time; none is typed.