loading…
Search for a command to run...
loading…
Wash-filtered intelligence layer for x402. 36k+ services indexed, 8-label buyer detection, daily CC0 datasets, MCP server with 5 read-only tools.
Wash-filtered intelligence layer for x402. 36k+ services indexed, 8-label buyer detection, daily CC0 datasets, MCP server with 5 read-only tools.
Wash-filtered intelligence layer for the x402 ecosystem — free public dashboard, daily CC0 datasets, x402-native paid API, and a remote MCP server.
Live License: Apache 2.0 Data: CC0 MCP Registry Smithery Glama
Public x402 dashboards count transactions. x402watch classifies them.
Every 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.
curl https://api.x402.printmoneylab.com/api/v1/landing-stats
curl https://api.x402.printmoneylab.com/api/v1/categories
curl 'https://api.x402.printmoneylab.com/api/v1/services?search=ai'
Rate limit: 60 req/hour per IP. No API key. CC0-licensed.
smithery mcp add bakyang2/x402watch
Or add to any MCP client manually (Claude Desktop, Cursor, Cline):
{
"mcpServers": {
"x402watch": {
"transport": "streamable-http",
"url": "https://api.x402.printmoneylab.com/mcp"
}
}
}
import asyncio, os
from eth_account import Account
from x402 import x402Client
from x402.mechanisms.evm.exact import ExactEvmClientScheme
from x402.http.clients.httpx import x402HttpxClient
async def main():
acct = Account.from_key(os.environ["PRIVATE_KEY"])
payer = x402Client()
payer.register("eip155:8453", ExactEvmClientScheme(acct))
async with x402HttpxClient(payer, base_url="https://api.x402.printmoneylab.com") as c:
r = await c.post("/api/v1/wash/check", json={"address": "0x..."})
print(r.json()["label"])
asyncio.run(main())
The 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.
| Endpoint | Description |
|---|---|
GET /api/v1/landing-stats |
Real-time market overview (services, transactions, real volume %) |
GET /api/v1/categories |
All 33 x402 service categories with stats |
GET /api/v1/categories/{slug} |
Category detail + 30-day time series + top services |
GET /api/v1/services |
Paginated service list with filters |
GET /api/v1/services/{id} |
Service detail: stats, time series, top buyers, label distribution |
GET /api/v1/trends |
24-hour ecosystem trends |
GET /api/v1/wash-report |
Aggregate wash patterns + anonymized case studies |
| Endpoint | Price | Use case |
|---|---|---|
GET /api/v1/services/{id}/wash-detail |
$0.005 | Operator audit — top 50 buyers + signal breakdown |
GET /api/v1/buyers/{address}/profile |
$0.005 | Wallet research |
GET /api/v1/services/{id}/transactions |
$0.01 | Custom analysis — raw 30-day transactions |
GET /api/v1/categories/{slug}/full-history |
$0.02 | Longitudinal research — 365-day hourly series |
POST /api/v1/wash/check |
$0.05 | Real-time wash analysis for any address |
Settled via the Coinbase Developer Platform x402 facilitator. Bazaar discovery extensions declared per route.
Full reference: /api · Swagger UI
Listed on the official MCP Registry as io.github.printmoneylab/x402watch. Streamable-http at https://api.x402.printmoneylab.com/mcp. Five read-only tools:
| Tool | What it returns |
|---|---|
x402_get_categories |
All 33 categories with services count, 24h volume, real-volume %, label distribution |
x402_get_service |
One service's full record: stats, 30-day daily volume, top buyers, label mix |
x402_check_wash |
Aggregate wash-report dataset (per-address analysis is the paid POST /wash/check endpoint) |
x402_search_services |
Search 36k+ services with filters (category, chain, sort, page) |
x402_get_trends |
24h trends: new services, hot services, category volume movers |
| Layer | Stack |
|---|---|
| Frontend | Next.js 16 (App Router) + Tailwind v4 + Recharts |
| Backend | FastAPI + PostgreSQL (TimescaleDB) + Redis (5-min cache) |
| Indexing | Bazaar discovery + EVM RPC (Alchemy) + Solana RPC (Helius) |
| Wash detection | NetworkX cohort signals, vanity clustering (strict + broad), single-buyer concentration analysis |
| AI classification | Claude Haiku 4.5 (per-service categorization), Claude Sonnet 4.5 (cross-validation) |
| Payments | x402 SDK 2.8.0, CDP facilitator on Base mainnet (USDC) |
| MCP server | FastMCP 3.x, streamable-http transport |
| Hosting | Oracle ARM (backend, free tier) + Vercel (frontend) + Cloudflare DNS |
Open, version-controlled, deterministic from public on-chain data:
→ https://x402.printmoneylab.com/docs/methodology
Covers 8-label priority order, cohort signal thresholds, vanity-cluster math, and the conservative developer label. Source markdown lives in content/methodology.md.
https://api.x402.printmoneylab.com/mcpThis repo holds the public Next.js site under src/. The methodology markdown lives in content/methodology.md and is rendered at /docs/methodology. The FastAPI backend and indexers live on a separate Oracle host.
Pull requests welcome. For methodology questions, dispute a label, or report a misclassified service, please open a GitHub Issue — labels are deterministic and reproducible from public on-chain data, so we'll walk through the signals that triggered the classification.
Phase 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.
Built by PrintMoneyLab.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"x402watch": {
"command": "npx",
"args": []
}
}
}