TermalStockTermalstock
The Method

Methodology

Observation is not prediction. TermalStock never produces BUY, SELL, or sentiment. Its verdicts describe data quality and market structure — nothing else.

What TermalStock reads

One scan touches up to five independent sources: the official Robinhood Stock Token API (asset registry and quote endpoints), Robinhood Chain JSON-RPC (block header, ERC-20 state, pool reserves), the Blockscout explorer (holder table, indexed 24h volume, the explorer's published rate), a Chainlink-style AggregatorV3 feed when one is verifiably configured, and supported DEX contracts. Each result is labeled with its source and the block or timestamp it was read at.

Canonical contract verification

A ticker resolves to the contract address published in the official Robinhood Stock Token registry. A pasted address is compared against that same registry. A token that merely shares a ticker is printed as NOT CANONICAL — sharing a symbol proves nothing.

Where prices come from

The official market quote (bid/ask) comes from the Robinhood Stock Token price endpoint and is shown with its own generatedAt time. The onchain pool spot price is computed from real pool reserves at the scan block. The two are never silently merged; both raw values are always printed beside any comparison.

Price age

PRICE AGE is the current time minus the source's own update timestamp. TermalStock labels ages with its own heuristics (the source does not assign these): under 30s is FRESH, up to 120s is AGING, beyond that STALE. Thresholds live in config/verdicts.ts.

Deviation

When two compatible token-denominated prices exist, deviation is |onchain − reference| ÷ reference × 100. Robinhood Stock Tokens can carry a corporate-action multiplier; TermalStock only compares surfaces with identical multiplier semantics (both official quote and pool spot are per-token). Under 0.5% is treated as aligned; above 2% as diverged.

Liquidity classification

Liquidity is only reported from DEX adapters that read a supported venue onchain (currently a UniswapV2-compatible factory on Robinhood Chain). The figure shown is the quote-side reserve at the scan block. Classification is a TermalStock heuristic: DEEP ≥ $250,000, HEALTHY ≥ $25,000, THIN ≥ $1,000, else VERY THIN. No supported pool means exactly that — no number is invented.

The oracle chamber

TermalStock never fabricates an oracle address. A feed is read only when it is present in the verified feed configuration. As of this build no AggregatorV3 feed on Robinhood Chain has been confirmed from official documentation, so scans print ORACLE / NOT RESOLVED. When a verified feed is configured, the report shows the feed address, its answer, decimals, and update age.

What TermalStock cannot infer

Off-registry token legitimacy, custody or reserve backing of Stock Tokens, intent behind holder positions, and any future price. Holder concentration and 24h volume come from the Blockscout explorer and are labeled as the explorer's figures — when the explorer does not answer, those rows fall back into the "WHAT TERMALSTOCK COULD NOT PROVE" section, which every report carries.

Sources

  • Robinhood Stock Token API — asset registry & official quotes
  • Robinhood Chain JSON-RPC (chain id 4663)
  • Blockscout explorer — holder table, indexed volume, published rate
  • Chainlink AggregatorV3 interface — when a verified feed is configured
  • Supported DEX contracts — UniswapV2-compatible factory reads

TermalStock is an independent analytics interface. It is not affiliated with, operated by, or endorsed by Robinhood. Stock Tokens are tokenized real-world assets; they are not ordinary ownership of the underlying stock. Nothing here is financial advice.