{"components":{"schemas":{"Envelope":{"properties":{"data":{},"meta":{"type":"object"}},"type":"object"},"Error":{"properties":{"error":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"}},"type":"object"}},"securitySchemes":{"apiKey":{"in":"header","name":"x-api-key","type":"apiKey"}}},"info":{"description":"Low-latency token data from our own Robinhood Chain archive node. All numbers are plain JSON numbers (never exponent notation); token amounts are exact human-unit decimals.\n\n**Auth:** `x-api-key: crs_live_…` (WS: `?api_key=`). Requests without a key get the anonymous plan limits per IP.\n\n**Envelope:** `{\"data\": …, \"meta\": {\"block\", \"block_ts\", \"lag_ms\", \"safe_block\", \"finalized_block\"}}`.\n\n**History:** fields marked `history: partial` / `since_index_start` become complete when the history backfill finishes.\n\n","title":"Crius Token API — Robinhood Chain","version":"1.0.0"},"openapi":"3.1.0","paths":{"/v1/account":{"get":{"description":"Email, plan, status, linked wallets, limits and the key in use.","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Your account","tags":["Account"]}},"/v1/account/billing":{"get":{"description":"The CriusPayments contract on Robinhood Chain, this account's payment reference (account_ref), live quotes in USDG / ETH / WETH for every plan and period, and the on-chain subscription and auto-renew state.","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Billing: pay on-chain","tags":["Account"]}},"/v1/account/billing/claim":{"post":{"description":"Signs a controller claim (valid 1 hour) for one of this account's linked wallets; submit claimController(account_ref, controller, issued_at, signature) to the contract. One per hour; needs a key with the manage scope.","parameters":[],"requestBody":{"content":{"application/json":{"example":{"wallet":"0x…"},"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Billing: claim control of the account on-chain","tags":["Account"]}},"/v1/account/coupons":{"get":{"description":"Codes this account has used: free time (applied) and bonus codes waiting for the next payment. Dashboard sign-in only.","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Coupon codes","tags":["Account"]},"post":{"description":"A free-time code adds days of its plan now (accounts on Free or on that plan); a bonus code adds extra time to the next payment (days, or a percent of the period paid). One use per code per account, one pending bonus at a time, 10 attempts an hour. Dashboard sign-in only.","parameters":[],"requestBody":{"content":{"application/json":{"example":{"code":"LAUNCH30"},"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Redeem a coupon code","tags":["Account"]}},"/v1/account/keys":{"get":{"description":"","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"List API keys","tags":["Account"]},"post":{"description":"Needs a key with the `manage` scope.","parameters":[],"requestBody":{"content":{"application/json":{"example":{"expires_in_days":365,"ip_allowlist":["203.0.113.10/32"],"limits":{"rps":50},"name":"prod-backend","scopes":["read","stream"]},"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Create API key (secret shown once)","tags":["Account"]}},"/v1/account/keys/{key_id}":{"delete":{"description":"","parameters":[{"description":"API key id","in":"path","name":"key_id","required":true,"schema":{"default":"key_…","example":"key_…","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Revoke key","tags":["Account"]},"patch":{"description":"","parameters":[{"description":"API key id","in":"path","name":"key_id","required":true,"schema":{"default":"key_…","example":"key_…","type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"ip_allowlist":["203.0.113.10/32"],"scopes":["read"]},"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Update key","tags":["Account"]}},"/v1/account/keys/{key_id}/rotate":{"post":{"description":"","parameters":[{"description":"API key id","in":"path","name":"key_id","required":true,"schema":{"default":"key_…","example":"key_…","type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"grace_period_s":3600},"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Rotate key with grace period","tags":["Account"]}},"/v1/account/signup/challenge":{"get":{"description":"No key needed. Sign the returned message with personal_sign (EIP-191) within 10 minutes, then link the wallet or sign in with it.","parameters":[{"description":"your wallet","in":"query","name":"address","required":false,"schema":{"default":"0x0000000000000000000000000000000000000000","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Wallet: get the message to sign","tags":["Account"]}},"/v1/account/signup/email":{"post":{"description":"No key needed. Emails a 6-digit code from no-reply@crius.sh, valid 10 minutes. Send the Cloudflare Turnstile token from the signup form. Disposable email domains are refused; one account per inbox (Gmail dots and +tags count as the same inbox).","parameters":[],"requestBody":{"content":{"application/json":{"example":{"email":"you@example.com","turnstile_token":"…"},"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Sign up / sign in: email a one-time code","tags":["Account"]}},"/v1/account/signup/email/verify":{"post":{"description":"Creates a Free plan account for the email (2 new accounts per IP and 5 per network a day) or signs in to the existing one, and issues an API key, shown once. With session: true (the dashboard), it returns a 7-day session key instead, replacing the previous one. 5 wrong codes void the code.","parameters":[],"requestBody":{"content":{"application/json":{"example":{"code":"123456","email":"you@example.com","session":false},"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Verify the code, get an API key","tags":["Account"]}},"/v1/account/signup/wallet":{"post":{"description":"Issues an API key for the account the wallet is linked to. Wallets can't create accounts: sign up with email, then link the wallet.","parameters":[],"requestBody":{"content":{"application/json":{"example":{"address":"0x…","signature":"0x… (personal_sign of the challenge message)"},"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Wallet: sign in with a linked wallet","tags":["Account"]}},"/v1/account/usage":{"get":{"description":"Authenticate with your key (x-api-key).","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Usage & quota","tags":["Account"]}},"/v1/account/wallets":{"get":{"description":"Wallets linked to your account (up to 10).","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Linked wallets","tags":["Account"]},"post":{"description":"Needs a key with the manage scope and a signed challenge. A wallet belongs to one account only.","parameters":[],"requestBody":{"content":{"application/json":{"example":{"address":"0x…","signature":"0x…"},"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Link a wallet","tags":["Account"]}},"/v1/account/wallets/{address}":{"delete":{"description":"Needs a key with the manage scope.","parameters":[{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Unlink a wallet","tags":["Account"]}},"/v1/chains":{"get":{"description":"","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"security":[],"summary":"Supported chains","tags":["Service"]}},"/v1/status":{"get":{"description":"Public, no key.","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"security":[],"summary":"Service and per-chain index health","tags":["Service"]}},"/v1/{chain}/dev/{address}":{"get":{"description":"Tokens created (launchpad + direct deployments), outcomes, funding.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca","example":"0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca","type":"string"}},{"description":"created | ath | market_cap","in":"query","name":"sort","required":false,"schema":{"default":"created","type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":50,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Dev profile","tags":["Wallets"]}},"/v1/{chain}/hook/{address}":{"get":{"description":"","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0xe5e702641ea86f4ae6cc3cdaed2b886f976be044","example":"0xe5e702641ea86f4ae6cc3cdaed2b886f976be044","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Hook detail","tags":["Pools"]}},"/v1/{chain}/hooks":{"get":{"description":"Permissions decoded from the hook address; live pool counts.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"pools | volume_24h","in":"query","name":"sort","required":false,"schema":{"default":"pools","type":"string"}},{"description":"","in":"query","name":"verified","required":false,"schema":{"type":"boolean"}},{"description":"","in":"query","name":"risk","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"launchpad","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":50,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Uniswap V4 hooks","tags":["Pools"]}},"/v1/{chain}/launchpads":{"get":{"description":"","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Launchpads with live stats","tags":["Launchpads"]}},"/v1/{chain}/pool/{pool}":{"get":{"description":"Real reserves, prices both ways, TVL, stats per window, hook, LP status.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Pool address (V2/V3/curve) or 32-byte poolId (V4)","in":"path","name":"pool","required":true,"schema":{"default":"0xefee979c98cbd3263ae5307bbb0fde8856e66d98d2e7a5865e1ec1338f256614","example":"0xefee979c98cbd3263ae5307bbb0fde8856e66d98d2e7a5865e1ec1338f256614","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Pool detail","tags":["Pools"]}},"/v1/{chain}/prices":{"get":{"description":"Also POST with {\"tokens\": [...]}.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"comma list","in":"query","name":"tokens","required":false,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e,0x7b8892cea949bc60d494681d1bc3ea96071ab0b8","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Batch prices (≤ 100)","tags":["Tokens"]},"post":{"description":"","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"tokens":["0x8ac48210be19378229f12060d499c3b0eae5e14e","0x7b8892cea949bc60d494681d1bc3ea96071ab0b8"]},"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Batch prices (POST)","tags":["Tokens"]}},"/v1/{chain}/search":{"get":{"description":"Prefix on name / symbol, exact on address / pool id.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"","in":"query","name":"q","required":false,"schema":{"default":"shoot","type":"string"}},{"description":"token | pool | wallet | hook","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"≤ 20","in":"query","name":"limit","required":false,"schema":{"default":10,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Search tokens / pools / wallets / hooks","tags":["Discovery"]}},"/v1/{chain}/stats":{"get":{"description":"DEX volume by DEX, txs, active wallets, gas (L2 + L1 base fee), TVL, new tokens / pools, launchpads, reorgs.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"1h | 24h | 7d","in":"query","name":"window","required":false,"schema":{"default":"24h","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Chain-wide numbers","tags":["Service"]}},"/v1/{chain}/stream":{"get":{"description":"Send {\"op\":\"subscribe\",\"channels\":[\"trades:<token>\",\"price:<token>\",\"candles:<token>:1m\",\"launches:all\",\"graduations:all\",\"pools:new\",\"lp:all\",\"tax:all\",\"wallet:<addr>\",\"dev:<addr>\",\"firehose:trades\"],\"finality\":\"latest|safe\"}; resume with {\"op\":\"resume\",\"seqs\":{channel: seq}}. Reorgs: a `reorg` message then removed events with \"removed\": true.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"WebSocket stream (upgrade)","tags":["Stream"]}},"/v1/{chain}/token/{address}":{"get":{"description":"Identity, supply, metadata & socials, creation, verification, launch, price + change + ATH, market (FDV, market cap, liquidity), stats per window, holders summary, liquidity summary, dexscreener (dex paid, community takeover, boosts; confirmed against DexScreener orders).","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Token profile","tags":["Tokens"]}},"/v1/{chain}/token/{address}/bubblemap":{"get":{"description":"Nodes = holders (+ external funders), edges = funding / transfers.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}},{"description":"≤ 500","in":"query","name":"top","required":false,"schema":{"default":100,"type":"integer"}},{"description":"","in":"query","name":"edges","required":false,"schema":{"default":"funding,transfers,common_funder","type":"string"}},{"description":"","in":"query","name":"exclude","required":false,"schema":{"default":"infra","type":"string"}},{"description":"historical","in":"query","name":"block","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Holder graph","tags":["Wallet graph"]}},"/v1/{chain}/token/{address}/bundles":{"get":{"description":"First 300 blocks of trading.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}},{"description":"sniper window","in":"query","name":"window_blocks","required":false,"schema":{"default":10,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Snipers, bundles, clusters, funding","tags":["Wallet graph"]}},"/v1/{chain}/token/{address}/candles":{"get":{"description":"Default (usd): the token's real markets merged (pools with >= $1k or >= 2% of its liquidity) plus its launch curve; ?pool=main its main market only; ?pool=all every pool. Candles open at the previous close.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}},{"description":"1s,30s,1m,5m,15m,1h,4h,6h,1d","in":"query","name":"interval","required":false,"schema":{"default":"1m","type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":500,"type":"integer"}},{"description":"","in":"query","name":"from_ts","required":false,"schema":{"type":"integer"}},{"description":"","in":"query","name":"to_ts","required":false,"schema":{"type":"integer"}},{"description":"usd | quote","in":"query","name":"currency","required":false,"schema":{"default":"usd","type":"string"}},{"description":"markets (default for usd) | main (default for quote) | all | a pool id","in":"query","name":"pool","required":false,"schema":{"type":"string"}},{"description":"open = previous close","in":"query","name":"continuous","required":false,"schema":{"default":true,"type":"boolean"}},{"description":"flat candles for buckets without trades","in":"query","name":"fill","required":false,"schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"OHLCV candles (columnar)","tags":["Trades"]}},"/v1/{chain}/token/{address}/fees":{"get":{"description":"Gas, LP fees, hook fees, creator tax, bonding-curve fees, token tax; Pons sweeps.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x7b8892cea949bc60d494681d1bc3ea96071ab0b8","example":"0x7b8892cea949bc60d494681d1bc3ea96071ab0b8","type":"string"}},{"description":"1h | 24h | 7d | all","in":"query","name":"window","required":false,"schema":{"default":"24h","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Fees, claims, receivers","tags":["Launchpads"]}},"/v1/{chain}/token/{address}/holders":{"get":{"description":"","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}},{"description":"≤ 500","in":"query","name":"limit","required":false,"schema":{"default":100,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Live holder list","tags":["Holders"]}},"/v1/{chain}/token/{address}/holders/cohort":{"get":{"description":"Continuity with reset on sell / decrease / below threshold.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}},{"description":"","in":"query","name":"from","required":false,"schema":{"default":"trading_open","type":"string"}},{"description":"","in":"query","name":"to","required":false,"schema":{"default":"now","type":"string"}},{"description":"","in":"query","name":"min_usd","required":false,"schema":{"default":50.0,"type":"number"}},{"description":"","in":"query","name":"min_balance","required":false,"schema":{"type":"number"}},{"description":"","in":"query","name":"min_pct","required":false,"schema":{"type":"number"}},{"description":"","in":"query","name":"continuous","required":false,"schema":{"default":false,"type":"boolean"}},{"description":"sell | any_decrease | below_threshold | none","in":"query","name":"reset_on","required":false,"schema":{"default":"sell","type":"string"}},{"description":"","in":"query","name":"min_hold_s","required":false,"schema":{"type":"integer"}},{"description":"","in":"query","name":"entered_before","required":false,"schema":{"type":"string"}},{"description":"infra,dev,snipers","in":"query","name":"exclude","required":false,"schema":{"type":"string"}},{"description":"hold_time | balance | entry_mcap","in":"query","name":"sort","required":false,"schema":{"default":"hold_time","type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":100,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Who held through a window","tags":["Holders"]}},"/v1/{chain}/token/{address}/holders/history":{"get":{"description":"min / max / new / exited per interval.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}},{"description":"1m,5m,15m,1h,4h,1d","in":"query","name":"interval","required":false,"schema":{"default":"1h","type":"string"}},{"description":"","in":"query","name":"from","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"to","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"min_balance","required":false,"schema":{"type":"number"}},{"description":"","in":"query","name":"min_usd","required":false,"schema":{"type":"number"}},{"description":"infra","in":"query","name":"exclude","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Holder count over time","tags":["Holders"]}},"/v1/{chain}/token/{address}/holders/snapshot":{"get":{"description":"Valued at that moment's price; compare_to=now adds change per holder.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}},{"description":"block:N | ts:MS | mcap:USD | launch | trading_open | graduation | ath | now","in":"query","name":"at","required":false,"schema":{"default":"trading_open","type":"string"}},{"description":"first | last","in":"query","name":"mcap_crossing","required":false,"schema":{"default":"first","type":"string"}},{"description":"","in":"query","name":"compare_to","required":false,"schema":{"default":"now","type":"string"}},{"description":"infra","in":"query","name":"exclude","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"min_usd","required":false,"schema":{"type":"number"}},{"description":"","in":"query","name":"min_pct","required":false,"schema":{"type":"number"}},{"description":"","in":"query","name":"tag","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":100,"type":"integer"}},{"description":"","in":"query","name":"cursor","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Holders at a past point","tags":["Holders"]}},"/v1/{chain}/token/{address}/launch":{"get":{"description":"Pons config & fees read live from the chain, graduation details.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x7b8892cea949bc60d494681d1bc3ea96071ab0b8","example":"0x7b8892cea949bc60d494681d1bc3ea96071ab0b8","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Launchpad lifecycle","tags":["Launchpads"]}},"/v1/{chain}/token/{address}/liquidity":{"get":{"description":"V2 LP-token holders, V3/V4 position NFT owners, decoded locker events (UNCX, Team Finance, Titan, HoodLock, Pons).","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"LP ownership and locks","tags":["Security"]}},"/v1/{chain}/token/{address}/pools":{"get":{"description":"Uniswap V2/V3/V4, Pons and launchpad curves, ranked by USD liquidity (2 x quote side, from each pool's own state). is_price_pool marks the market the token price comes from. meta.total = all pools.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}},{"description":"≤ 200","in":"query","name":"limit","required":false,"schema":{"default":50,"type":"integer"}},{"description":"meta.next_cursor","in":"query","name":"cursor","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"All markets of a token","tags":["Tokens"]}},"/v1/{chain}/token/{address}/price":{"get":{"description":"Deepest pool against ETH / WETH / USDG (real reserves), ETH/USD from the deepest ETH/USDG pool.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Token price (fastest call)","tags":["Tokens"]}},"/v1/{chain}/token/{address}/security":{"get":{"description":"Realized tax (30 d), eth_simulateV1 buy → transfer → sell for V2-routed tokens, owner / proxy / capabilities / limits, hook risk, LP status, flags, score.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x97aa8dd7e7c1d883471f22aeeeb5e9c0c9082082","example":"0x97aa8dd7e7c1d883471f22aeeeb5e9c0c9082082","type":"string"}},{"description":"simulated buy size","in":"query","name":"amount_usd","required":false,"schema":{"default":100.0,"type":"number"}},{"description":"1 = re-simulate now","in":"query","name":"fresh","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Security: realized tax, simulated honeypot, contract checks","tags":["Security"]}},"/v1/{chain}/token/{address}/traders":{"get":{"description":"Average cost; USD at trade time; unrealized at current price.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}},{"description":"pnl | realized_pnl | volume | buys | roi","in":"query","name":"sort","required":false,"schema":{"default":"pnl","type":"string"}},{"description":"1h | 24h | 7d | all","in":"query","name":"window","required":false,"schema":{"default":"all","type":"string"}},{"description":"","in":"query","name":"tag","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":50,"type":"integer"}},{"description":"","in":"query","name":"cursor","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Top traders with PnL","tags":["Holders"]}},"/v1/{chain}/token/{address}/trades":{"get":{"description":"Real trader attribution, USD at trade time, realized tax, gas (L2 + L1).","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}},{"description":"≤ 500","in":"query","name":"limit","required":false,"schema":{"default":50,"type":"integer"}},{"description":"meta.next_cursor","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"buy | sell","in":"query","name":"side","required":false,"schema":{"type":"string"}},{"description":"wallet","in":"query","name":"trader","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"min_usd","required":false,"schema":{"type":"number"}},{"description":"ms","in":"query","name":"from_ts","required":false,"schema":{"type":"integer"}},{"description":"ms","in":"query","name":"to_ts","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Trade tape","tags":["Trades"]}},"/v1/{chain}/token/{address}/transactions":{"get":{"description":"Trades, liquidity adds/removes, transfers, mints/burns, owner actions (decoded), locks, fee claims, launch / graduation.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x8ac48210be19378229f12060d499c3b0eae5e14e","example":"0x8ac48210be19378229f12060d499c3b0eae5e14e","type":"string"}},{"description":"comma list: buy,sell,add_liquidity,remove_liquidity,transfer,mint,burn,owner_action,lock,fee_claim,launch,graduation","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"wallet","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"min_usd","required":false,"schema":{"type":"number"}},{"description":"block:N | ts:MS | mcap:USD | launch | trading_open | graduation | ath","in":"query","name":"from","required":false,"schema":{"type":"string"}},{"description":"same forms","in":"query","name":"to","required":false,"schema":{"type":"string"}},{"description":"latest | safe | finalized","in":"query","name":"finality","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":50,"type":"integer"}},{"description":"","in":"query","name":"cursor","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Unified activity feed","tags":["Trades"]}},"/v1/{chain}/tokens":{"get":{"description":"","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"new | bonding | graduating | graduated | trending | top_volume | top_gainers | top_losers","in":"query","name":"list","required":false,"schema":{"default":"trending","type":"string"}},{"description":"1s..24h","in":"query","name":"window","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"launchpad","required":false,"schema":{"type":"string"}},{"description":"eth | usdg","in":"query","name":"quote","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"min_liquidity_usd","required":false,"schema":{"type":"number"}},{"description":"","in":"query","name":"min_volume_usd","required":false,"schema":{"type":"number"}},{"description":"","in":"query","name":"created_after_ts","required":false,"schema":{"type":"integer"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":50,"type":"integer"}},{"description":"","in":"query","name":"cursor","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Token lists","tags":["Discovery"]}},"/v1/{chain}/tokens/batch":{"post":{"description":"fields: dotted paths of the token profile.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"fields":["symbol","price.usd","market","holders.count"],"tokens":["0x8ac48210be19378229f12060d499c3b0eae5e14e"]},"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Batch token profiles with sparse fields","tags":["Tokens"]}},"/v1/{chain}/volume":{"get":{"description":"Organic DEX volume (wash round trips and mispriced outliers excluded, reported separately) for 1s, 30s, 1m, 5m, 1h, 6h, 24h, 7d, 30d, 90d, 180d with the previous window and change %; hourly and daily series; average volume by day of week and hour of day with the peak / quietest day and hour.","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"IANA time zone for series and patterns, e.g. Asia/Dubai","in":"query","name":"tz","required":false,"schema":{"default":"UTC","type":"string"}},{"description":"hourly series length (max 4320)","in":"query","name":"hours","required":false,"schema":{"default":48,"type":"integer"}},{"description":"daily series length (max 365)","in":"query","name":"days","required":false,"schema":{"default":30,"type":"integer"}},{"description":"lookback for weekday / hour-of-day patterns (7..365)","in":"query","name":"pattern_days","required":false,"schema":{"default":90,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Chain-wide on-chain volume","tags":["Service"]}},"/v1/{chain}/wallet/{address}":{"get":{"description":"","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x119aae6709b3ea160829bc1fbd4f6c4362c57002","example":"0x119aae6709b3ea160829bc1fbd4f6c4362c57002","type":"string"}},{"description":"1d | 7d | 30d | all","in":"query","name":"window","required":false,"schema":{"default":"30d","type":"string"}},{"description":"","in":"query","name":"min_value_usd","required":false,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Wallet profile, holdings, PnL","tags":["Wallets"]}},"/v1/{chain}/wallet/{address}/connections":{"get":{"description":"","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x119aae6709b3ea160829bc1fbd4f6c4362c57002","example":"0x119aae6709b3ea160829bc1fbd4f6c4362c57002","type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":25,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Connected wallets (funding graph)","tags":["Wallets"]}},"/v1/{chain}/wallet/{address}/trades":{"get":{"description":"","parameters":[{"description":"Chain slug or chain id","in":"path","name":"chain","required":true,"schema":{"default":"robinhood","example":"robinhood","type":"string"}},{"description":"Address (token / wallet / dev / hook)","in":"path","name":"address","required":true,"schema":{"default":"0x119aae6709b3ea160829bc1fbd4f6c4362c57002","example":"0x119aae6709b3ea160829bc1fbd4f6c4362c57002","type":"string"}},{"description":"","in":"query","name":"token","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"side","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"min_usd","required":false,"schema":{"type":"number"}},{"description":"","in":"query","name":"from_ts","required":false,"schema":{"type":"integer"}},{"description":"","in":"query","name":"to_ts","required":false,"schema":{"type":"integer"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":50,"type":"integer"}},{"description":"","in":"query","name":"cursor","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"description":"Key missing / rejected"},"403":{"description":"Plan / scope / IP not allowed"},"404":{"description":"Not found"},"429":{"description":"Rate limited (Retry-After, x-ratelimit-*)"}},"summary":"Wallet trades","tags":["Wallets"]}}},"security":[{"apiKey":[]},{}],"servers":[{"url":"/"}],"tags":[{"name":"Service"},{"name":"Tokens"},{"name":"Trades"},{"name":"Holders"},{"name":"Security"},{"name":"Launchpads"},{"name":"Wallet graph"},{"name":"Wallets"},{"name":"Pools"},{"name":"Discovery"},{"name":"Stream"},{"name":"Account"}]}