{"path":"/tokenized-equities","service_name":"Tokenized Equities","method":"GET","allowed_methods":["GET"],"category":"DeFi & Markets Data","class":"read-only","summary":"Live registry of tokenized US stocks and ETFs on Robinhood Chain: symbol, token address, decimals and the executable buy price.","description":"The live registry of tokenized US equities & ETFs on Robinhood Chain (chainId 4663): symbol, canonical token address, decimals, listed-on-rail routability, and the EXECUTABLE buy price -- what a $100 buy actually pays per token on the live route, at the route's minimum output -- published next to LI.FI's catalog reference price and `referenceDeviationPct`, the gap between them, so a stale catalog reference is visible rather than inherited. Every served row's token address is bound to a hand-verified identity pin; an unpinned address is refused, never published under a ticker. The on-chain settlement layer for tokenized-equity exposure, not a data-coverage claim. Optional `?thesis=` filters the registry to a matched shortlist (per-row match reason + an honesty contract). Informational only; not a quote or a recommendation. Flat JSON, refreshed hourly. $0.001 per call.","schema":{"params":[{"name":"thesis","required":false,"description":"Optional natural-language thesis (e.g. \"semiconductors\", \"AI infrastructure\", \"chinese tech\"). Present -> a matched shortlist (relevance-ordered, capped at shortlistCap=12) with a per-row human-readable matchReason plus an honesty contract: matched, matchedCount (score>0 rows across the WHOLE universe -- it can exceed the returned rows), fellBackToUniverse, matchedTradableSampled (execution samples among the RETURNED rows). universeSize and tradableSampled keep their universe-level meaning on a thesis read. A no-match/degenerate thesis honestly browses the universe (matched:false, matchedCount:0). Omit -> the full registry, byte-compatible with the pre-thesis shape.","location":"query"}],"body":null,"note":"Request schema derived from the Otto catalog -- not output-measured."},"sample_output":null,"cost":{"price_usd":0.001,"pricing_mode":"fixed","currency":"USDC","pricing_note":"Indicative. The live 402 PAYMENT-REQUIRED header is the single source of truth -- set maxPayment from it, never from this map.","settlement_note":"Settlement is on success only: a 4xx/5xx response is not settled, so a rejected or failed call does not charge you. (A 200 that returns an error body still settles.)"},"auth":{"type":"x402","note":"Pay per call in USDC via x402 V2 (EIP-3009 or Permit2). The networks THIS route accepts are in its own 402 accepts[] (returned in both the PAYMENT-REQUIRED header and the 402 JSON body): USDC on Base is accepted on every route, Solana only where that route lists it."},"signals":[{"id":"otto-money-back-guarantee","type":"guarantee","summary":"Money-back guarantee on Otto's own services: if a paid result misses, request a refund via /feedback with the payment tx_hash ($0.01 per tx, up to 10×/day system cap). Otto's own services and Full Auto only -- not third-party Bazaar picks.","status":"active","last_verified":"2026-07-01"},{"id":"otto-first-party","type":"characteristic","summary":"Served by an Otto-operated agent backend (first-party), not a re-listed third-party marketplace endpoint.","status":"active","last_verified":"2026-07-01"}],"patterns":[],"measured":{"quality_score":null,"uptime_pct":null,"measured_at":null,"note":"Not yet measured by the QA crawler -- quality/uptime stay null, never fabricated."},"catalog_hash":"59cee5639558d239baac94b127e7dda3c34970a67a11839de2a58ebf59203db3","snapshot_generated_at":"2026-09-08T08:43:34.873Z","you_were_not_charged":true}