{"openapi":"3.1.0","info":{"title":"RobinX — Robinhood Chain Intelligence API","version":"0.3.0","description":"Deployer reputation, insider-flow detection, and token buy-risk verdicts for Robinhood Chain (chain 4663), from complete on-chain history. Pay-per-call over x402 (USDC on Base). Docs: https://robinx.io","contact":{"name":"RobinX","url":"https://robinx.io","email":"jaime@crypterian.io"},"x-guidance":"Score WHO deployed a Robinhood Chain token before buying. Free: /stats, /basket, /proof.json. Paid tools (/verdict, /deployer, /token, /feed/new, /leaderboard) settle USDC on Base via x402; pass a PAYMENT-SIGNATURE header, or use `npx robinx-mcp` with a funded wallet for auto-pay.","x-discovery":{"ownershipProofs":["0xA13d363AeCCCF878Ec64f6eB687Eb4A771FB0599"]}},"servers":[{"url":"https://api.robinx.io"}],"paths":{"/verdict/{token}":{"get":{"operationId":"verdict","summary":"Composite token buy-risk verdict","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"},"example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4","description":"Token contract address 0x…"}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/deployer/{address}":{"get":{"operationId":"deployer","summary":"Deployer reputation rap sheet + 0-100 score","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string"},"example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4","description":"Deployer wallet 0x…"}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/token/{address}":{"get":{"operationId":"token","summary":"Token on-chain stats + deployer score","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string"},"example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4","description":"Token contract address 0x…"}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/feed/new":{"get":{"operationId":"feed","summary":"Newest launches scored by deployer reputation (pollable). Realtime settles $0.01 over x402; add ?tier=free for the 10-min-delayed free feed.","parameters":[{"name":"tier","in":"query","required":false,"schema":{"type":"string","enum":["free"]},"description":"Set to \"free\" for the 10-min-delayed free feed (no payment). Omit for realtime (x402)."},{"name":"min_score","in":"query","required":false,"schema":{"type":"integer"},"example":70,"description":"Only launches whose deployer scores >= this"},{"name":"since","in":"query","required":false,"schema":{"type":"string"},"description":"ISO cursor from a prior call"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"example":25}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/badge/{token}":{"get":{"operationId":"badge","summary":"Embeddable SVG verdict badge for a token (free) — for token pages and communities","security":[],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4"}}],"responses":{"200":{"description":"SVG image","content":{"image/svg+xml":{}}}}}},"/pulse/{token}":{"get":{"operationId":"pulse","summary":"X synthesis: narrative, sentiment, proven-caller activity (Claude over live X + caller-lift)","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"},"example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4","description":"Token contract address 0x…"}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/callers":{"get":{"operationId":"callers","summary":"Measured X caller leaderboard (who measurably moves price). ?chain=solana|base serves the mirrored cross-chain records as RAW win/loss/decisive counts — NOT comparable across chains (each chain's shrunk_winrate is shrunk toward its own cohort prior) and with freshness unverified; that lane is being rebuilt.","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","enum":["solana","base"]},"description":"omit for Robinhood Chain"}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/leaderboard":{"get":{"operationId":"leaderboard","summary":"Top trusted deployers","x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/stats":{"get":{"operationId":"stats","summary":"Coverage stats (free)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/basket":{"get":{"operationId":"basket","summary":"Live forward paper-basket track record (free)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/report/{token}":{"get":{"operationId":"report","summary":"Full token dossier: verdict + deployer record + measured social callers (free up to 25/day per IP, then $0.05 over x402)","security":[],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/wallet/{address}":{"get":{"operationId":"wallet","summary":"Wallet reputation: deployer record + insider-flow history (off-market supply acquired, WETH realized, % of flagged wallets) for any address (free)","security":[],"parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","example":"0xcdfc08a1c1fbafb355645e5ddc32122e5716ca90"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/search":{"get":{"operationId":"search","summary":"Token search by $symbol, name, or address — returns ranked candidates + symbol-collision warning (free)","security":[],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","example":"CASHCAT"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/forensics/{token}":{"get":{"operationId":"forensics","summary":"Deep supply-flow forensics: mint pattern, deployer flows, top off-market recipients (POST to queue, GET for results; free)","security":[],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/structure/{token}":{"get":{"operationId":"structure","summary":"Labeled holder-structure diff over ~24h: frozen/added/trimmed/exited wallets with exact balance deltas, each labeled (insider-linked record, deployer record, ENS/Farcaster identity, multi-wallet entities, round-number allocation flags) + a structure verdict (rotation vs distribution vs accumulation). POST (free) queues the scan; GET pays for computed results.","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/proof.json":{"get":{"operationId":"proof","summary":"Live calibration / out-of-sample proof (free)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/caller/{handle}":{"get":{"operationId":"caller","summary":"Caller Report Card: an X account's MEASURED Robinhood Chain track record — early_rate (calls placed before the run), momentum_rate, median 1h forward return, mutual-follow-cluster flag, recent calls. Measured since chain genesis; calls preserved as captured. Free, cached. Human page: robinx.io/c/{handle}","security":[],"parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string","example":"gleobets"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/signals/calls":{"get":{"operationId":"signals","summary":"Pollable stream of fresh RH-chain calls by X accounts with a measured early-call record. Params: since (captured_at cursor), min_early_rate (default 0.5), min_calls (default 4), include_coordinated, limit. The highest-alpha event this dataset emits.","parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string"},"description":"captured_at cursor from a prior call"},{"name":"min_early_rate","in":"query","required":false,"schema":{"type":"number"},"example":0.5},{"name":"min_calls","in":"query","required":false,"schema":{"type":"integer"},"example":4},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"example":25}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/structure/{token}/smart-holders":{"get":{"operationId":"smartHolders","summary":"Holders of this token crossed with RobinX's chain-wide extraction index (4,000+ measured wallets) and deployer records — the join no snapshot service can compute. Strong signal, ambiguous direction (accumulation OR insider-linked loading) — not a buy call. Free for watched tokens with a Founders key.","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"},"example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4","description":"Token contract address 0x…"}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/entity/{address}":{"get":{"operationId":"entity","summary":"One wallet-entity's appearances across the accumulated holder-snapshot archive (balance then/now per token) + ENS/Farcaster identity + insider/deployer records. The archive cannot be reconstructed retroactively.","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string"},"example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4","description":"Wallet address 0x…"}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/mentions/{token}":{"get":{"operationId":"mentions","summary":"Token social tape: the latest 200 X mentions with the caller's measured accuracy record attached (true total + truncation flag) — hourly velocity from a full 24h count, first-ever mention, clustered-vs-independent voice counts. No tweet text redistributed.","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"},"example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4","description":"Token contract address 0x…"}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/caller/{handle}/calls":{"get":{"operationId":"callerCalls","summary":"Measured call log for one X handle: the most recent 100 RH-chain calls with token outcomes (real/dead, FDV) + true total and truncation flag, preserved as captured. The paid tape behind the free /caller/{handle} report card.","parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"},"example":"gleobets","description":"X handle, with or without @"}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/social/momentum":{"get":{"operationId":"socialMomentum","summary":"Tokens ranked by measured caller-accuracy weight, then independent voices, then mention count — mutual-follow clusters collapsed to one voice. Attention quality, not raw hype.","parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer"},"example":6,"description":"window 1-48h, default 6"}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/agent/features":{"get":{"operationId":"agentFeatures","summary":"THE AGENT FEATURE ROW. The token-level measurements for one Robinhood Chain token in a single call, shaped to be folded into your own model. Split by epistemic status: identity (immutable launch facts), current_state (recomputed in place — carries NO history, so joining it to a past timestamp is lookahead bias), observed (append-only, immutable capture clock — safe to reason about historically). Includes the is_real crossing block, exact mention counts, how many mentioning accounts are MEASURED callers, and mutual-follow cluster share. Robinhood Chain only. We publish inputs, not predictions — no score, no recommendation, no expected return. point_in_time is always false today; an as_of mode requires recomputation at a block and is withheld until it can be answered honestly.","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string"},"example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4","description":"Robinhood Chain token address (0x + 40 hex)"}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/social/follows":{"get":{"operationId":"socialFollows","summary":"Pollable tape of follow/unfollow transitions by Robinhood Chain principal X accounts (checked ~6-hourly; X exposes only current state, so this history cannot be rebuilt retroactively). Each followed handle is crossed with its measured RobinX caller record. Baseline edges — already following when tracking began — are marked and never reported as dated follows.","parameters":[{"name":"watched","in":"query","required":false,"schema":{"type":"string"},"example":"vladtenev","description":"filter to one watched principal"},{"name":"event","in":"query","required":false,"schema":{"type":"string","enum":["follow","unfollow"]}},{"name":"since","in":"query","required":false,"schema":{"type":"string"},"description":"ISO cursor from a prior call (inclusive; dedupe by id)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"example":50}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/follows/{handle}":{"get":{"operationId":"follows","summary":"Which watched Robinhood Chain principal accounts follow this X handle, and since when — plus any observed follow/unfollow history. Baseline edges are labelled already_following_when_tracking_began with a null followed_at (free).","security":[],"parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"},"example":"cashcat_token","description":"X handle, with or without @"}],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/identify":{"post":{"operationId":"identify","summary":"Identify which Robinhood Chain token a price-chart screenshot shows: vision extracts the printed ticker/last price, then matches against live per-token prices + volume rank (visible ticker wins; otherwise a ±20% price band with a confidence meter). Charts from other chains are resolved cross-chain via DexScreener rather than force-matched. Free 5/day per IP, then $0.02 over x402.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image":{"type":"string","description":"base64 chart screenshot (raw or data: URL)"},"media_type":{"type":"string","enum":["image/png","image/jpeg","image/webp","image/gif"],"description":"defaults to image/png; inferred from a data: URL"}},"required":["image"]}}}},"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"network":"eip155:8453","asset":"USDC"},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"402":{"description":"Payment required (x402). Settle USDC on Base, then retry."}}}},"/watchlist/{token}":{"post":{"operationId":"watchlistAdd","summary":"Founders: watch a token (auto structure-scan daily, results free with your key). GET /watchlist lists; DELETE removes. Requires x-robinx-key header ($29/mo — https://robinx.io/#price).","security":[],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}},"401":{"description":"Founders API key required"}}}},"/alerts/webhook":{"post":{"operationId":"alertsWebhookSet","summary":"Founders: set a webhook for push alerts — structure_flip on watched tokens + proven_deployer_launch (score>=70 AND >=2 prior real; max 1/deployer/day). Returns the HMAC secret once; deliveries signed X-RobinX-Signature: t=<unix>,v1=<hmac_sha256(secret,\"<t>.<body>\")>. GET shows config + recent deliveries; DELETE removes; POST /alerts/test fires a test event. Requires x-robinx-key header.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"https:// endpoint to receive alert POSTs"}},"required":["url"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{}}},"401":{"description":"Founders API key required"}}}},"/structure/{token}/history":{"get":{"operationId":"structureHistory","summary":"Founders: longitudinal holder-snapshot history (daily for watched tokens). Requires x-robinx-key header.","security":[],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","example":"0x020bfC650A365f8BB26819deAAbF3E21291018b4"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}},"401":{"description":"Founders API key required"}}}}}}