{
  "markdown": "# x402watch\n\n> Wash-filtered intelligence layer for the x402 ecosystem — free public dashboard, daily CC0 datasets, x402-native paid API, and a remote MCP server.\n\n[![Live](https://img.shields.io/badge/live-x402.printmoneylab.com-3ee0a3)](https://x402.printmoneylab.com)\n[![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)\n[![Data: CC0](https://img.shields.io/badge/data-CC0-lightgrey)](https://github.com/printmoneylab/x402watch-data)\n[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-io.github.printmoneylab%2Fx402watch-7c3aed)](https://registry.modelcontextprotocol.io/v0/servers?search=printmoneylab)\n[![Smithery](https://img.shields.io/badge/Smithery-bakyang2%2Fx402watch-1f6feb)](https://smithery.ai/servers/bakyang2/x402watch)\n[![Glama](https://glama.ai/mcp/servers/printmoneylab/x402watch/badge)](https://glama.ai/mcp/servers/printmoneylab/x402watch)\n\n## What is x402watch\n\nPublic x402 dashboards count transactions. **x402watch classifies them.**\n\nEvery active buyer wallet is tagged with one of eight labels — `organic_user`, `self_test`, `developer`, `suspected_wash`, `ai_agent`, `analytics_bot`, `exchange_user`, or `verifier` — using cohort signals + vanity clustering. Real-volume reporting excludes the synthetic categories, so service rankings reflect actual demand instead of self-funded noise.\n\n## 4-Axis Differentiation\n\n1. **Wash filter** — 8-label buyer classification, cohort signal detection (uniform_amount, coordinated_start, uniform_tx_count, time_burst), strict + broad vanity clustering, conservative developer label.\n2. **Free public data** — every label, every benchmark. Daily CC0 snapshots in [`printmoneylab/x402watch-data`](https://github.com/printmoneylab/x402watch-data).\n3. **AI-native** — public REST API, x402-native paid endpoints, [llms.txt](https://x402.printmoneylab.com/llms.txt), [OpenAPI spec](https://api.x402.printmoneylab.com/openapi.json), [RSS](https://x402.printmoneylab.com/feed.xml), [/.well-known/x402](https://x402.printmoneylab.com/.well-known/x402), and an MCP server.\n4. **Coverage** — 36,000+ services indexed across **Base, Solana, Polygon, and Arbitrum**.\n\n## Quick Start\n\n### Free API\n\n```bash\ncurl https://api.x402.printmoneylab.com/api/v1/landing-stats\ncurl https://api.x402.printmoneylab.com/api/v1/categories\ncurl 'https://api.x402.printmoneylab.com/api/v1/services?search=ai'\n```\n\nRate limit: 60 req/hour per IP. No API key. CC0-licensed.\n\n### MCP server (one command)\n\n```bash\nsmithery mcp add bakyang2/x402watch\n```\n\nOr add to any MCP client manually (Claude Desktop, Cursor, Cline):\n\n```json\n{\n  \"mcpServers\": {\n    \"x402watch\": {\n      \"transport\": \"streamable-http\",\n      \"url\": \"https://api.x402.printmoneylab.com/mcp\"\n    }\n  }\n}\n```\n\n### Paid endpoint (x402)\n\n```python\nimport asyncio, os\nfrom eth_account import Account\nfrom x402 import x402Client\nfrom x402.mechanisms.evm.exact import ExactEvmClientScheme\nfrom x402.http.clients.httpx import x402HttpxClient\n\nasync def main():\n    acct = Account.from_key(os.environ[\"PRIVATE_KEY\"])\n    payer = x402Client()\n    payer.register(\"eip155:8453\", ExactEvmClientScheme(acct))\n    async with x402HttpxClient(payer, base_url=\"https://api.x402.printmoneylab.com\") as c:\n        r = await c.post(\"/api/v1/wash/check\", json={\"address\": \"0x...\"})\n        print(r.json()[\"label\"])\n\nasyncio.run(main())\n```\n\nThe 402 round-trip pays USDC on Base mainnet via the CDP facilitator, retries with the signed payment header, and returns 200 with the data — no signup, no API keys.\n\n## API Endpoints\n\n### Free (60 req/hour per IP)\n\n| Endpoint | Description |\n| --- | --- |\n| `GET /api/v1/landing-stats` | Real-time market overview (services, transactions, real volume %) |\n| `GET /api/v1/categories` | All 33 x402 service categories with stats |\n| `GET /api/v1/categories/{slug}` | Category detail + 30-day time series + top services |\n| `GET /api/v1/services` | Paginated service list with filters |\n| `GET /api/v1/services/{id}` | Service detail: stats, time series, top buyers, label distribution |\n| `GET /api/v1/trends` | 24-hour ecosystem trends |\n| `GET /api/v1/wash-report` | Aggregate wash patterns + anonymized case studies |\n\n### Paid (x402, USDC on Base)\n\n| Endpoint | Price | Use case |\n| --- | --- | --- |\n| `GET /api/v1/services/{id}/wash-detail` | $0.005 | Operator audit — top 50 buyers + signal breakdown |\n| `GET /api/v1/buyers/{address}/profile` | $0.005 | Wallet research |\n| `GET /api/v1/services/{id}/transactions` | $0.01 | Custom analysis — raw 30-day transactions |\n| `GET /api/v1/categories/{slug}/full-history` | $0.02 | Longitudinal research — 365-day hourly series |\n| `POST /api/v1/wash/check` | $0.05 | Real-time wash analysis for any address |\n\nSettled via the [Coinbase Developer Platform x402 facilitator](https://docs.cdp.coinbase.com/x402/welcome). Bazaar discovery extensions declared per route.\n\nFull reference: [/api](https://x402.printmoneylab.com/api) · [Swagger UI](https://api.x402.printmoneylab.com/docs)\n\n## MCP Tools\n\nListed on the [official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=printmoneylab) as `io.github.printmoneylab/x402watch`. Streamable-http at `https://api.x402.printmoneylab.com/mcp`. Five read-only tools:\n\n| Tool | What it returns |\n| --- | --- |\n| `x402_get_categories` | All 33 categories with services count, 24h volume, real-volume %, label distribution |\n| `x402_get_service` | One service's full record: stats, 30-day daily volume, top buyers, label mix |\n| `x402_check_wash` | Aggregate wash-report dataset (per-address analysis is the paid `POST /wash/check` endpoint) |\n| `x402_search_services` | Search 36k+ services with filters (category, chain, sort, page) |\n| `x402_get_trends` | 24h trends: new services, hot services, category volume movers |\n\n## Architecture\n\n| Layer | Stack |\n| --- | --- |\n| Frontend | Next.js 16 (App Router) + Tailwind v4 + Recharts |\n| Backend | FastAPI + PostgreSQL (TimescaleDB) + Redis (5-min cache) |\n| Indexing | Bazaar discovery + EVM RPC (Alchemy) + Solana RPC (Helius) |\n| Wash detection | NetworkX cohort signals, vanity clustering (strict + broad), single-buyer concentration analysis |\n| AI classification | Claude Haiku 4.5 (per-service categorization), Claude Sonnet 4.5 (cross-validation) |\n| Payments | x402 SDK 2.8.0, CDP facilitator on Base mainnet (USDC) |\n| MCP server | FastMCP 3.x, streamable-http transport |\n| Hosting | Oracle ARM (backend, free tier) + Vercel (frontend) + Cloudflare DNS |\n\n## Methodology\n\nOpen, version-controlled, deterministic from public on-chain data:\n\n→ **<https://x402.printmoneylab.com/docs/methodology>**\n\nCovers 8-label priority order, cohort signal thresholds, vanity-cluster math, and the conservative developer label. Source markdown lives in [`content/methodology.md`](content/methodology.md).\n\n## Resources\n\n- 🌐 Site: <https://x402.printmoneylab.com>\n- 📡 API: <https://api.x402.printmoneylab.com/api/v1> · [Swagger](https://api.x402.printmoneylab.com/docs)\n- 🤖 MCP: `https://api.x402.printmoneylab.com/mcp`\n- 📦 Open dataset: [`printmoneylab/x402watch-data`](https://github.com/printmoneylab/x402watch-data)\n- 🤝 [Smithery](https://smithery.ai/servers/bakyang2/x402watch) · [MCP Registry](https://registry.modelcontextprotocol.io) · [Glama](https://glama.ai/mcp/servers/printmoneylab/x402watch)\n- 🐦 Twitter: [@printmoneylab](https://twitter.com/printmoneylab)\n\n## Repository Layout\n\nThis repo holds the public Next.js site under `src/`. The methodology markdown lives in [`content/methodology.md`](content/methodology.md) and is rendered at [/docs/methodology](https://x402.printmoneylab.com/docs/methodology). The FastAPI backend and indexers live on a separate Oracle host.\n\n## Contributing\n\nPull requests welcome. For methodology questions, dispute a label, or report a misclassified service, please open a [GitHub Issue](https://github.com/printmoneylab/x402watch/issues) — labels are deterministic and reproducible from public on-chain data, so we'll walk through the signals that triggered the classification.\n\n## License\n\n- **Code**: Apache 2.0 (see [LICENSE](LICENSE))\n- **Data**: CC0 (public domain), published daily to [`x402watch-data`](https://github.com/printmoneylab/x402watch-data)\n\n## Status\n\nPhase 1 MVP — actively developed. 9 systemd services running on the Oracle backend (api, mcp, 7 indexer/labeller/stats jobs). Daily snapshots commit to the data repo at 04:00 UTC.\n\n---\n\nBuilt by [PrintMoneyLab](https://printmoneylab.com).\n",
  "bytes": 8502,
  "sha": "0fd2c93c2b47f2ccb9499b0053ee685d20f93916caf373bc2cbdde0c03632661",
  "repo_slug": "printmoneylab/x402watch",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_printmoneylab_x402watch_fe0eb464/readme"
}