Laboratory handbook
Methodology
RadeoStock is transparent, not mysterious. Every test below states what it reads, how it calculates, which instrument provides the data, and what happens when the instrument fails. There is no hidden score.
Liquidity Test
- Data read
- factory.getPair(TOKEN, USDG) and factory.getPair(TOKEN, WETH) on the UNISWAP-V2 FACTORY (0x8bceaa40b9acdfaedf85adf4ff01f5ad6517937f), then pair.getReserves() and pair.token0() at the pinned observation block.
- Calculation
- Quote-side reserves are formatted with real token decimals. USDG is counted as $1 (it is the USD-pegged quote asset); WETH depth converts through the canonical WETH/USDG pool read at the same block. Depths across pools are summed.
- Provider
- On-chain RPC (eth_call), no intermediary.
- Fallback
- If no pool exists the report states MARKET SOURCE NOT FOUND. If USD conversion cannot be established the report shows native quote units and states USD REFERENCE UNAVAILABLE. TVL is never invented.
- Limitations
- Only the calibrated V2 factory is scanned; liquidity on other venues is invisible to this instrument.
- Reserves can change or be withdrawn in the next block.
Depth Test
- Data read
- The same pinned-block reserves as the liquidity test.
- Calculation
- Exact UniswapV2 constant-product mathematics (x·y=k with a 0.30% fee): amountOut = (in·997·Rout)/(Rin·1000 + in·997), simulated for buys of 0.1%, 0.5%, 1% and 2% of the quote reserve. Price impact is the shortfall of execution price versus spot.
- Provider
- Deterministic local computation over on-chain reserves.
- Fallback
- If pool mathematics cannot safely be reproduced for a market type, the report states DEPTH TEST UNAVAILABLE FOR THIS MARKET TYPE rather than approximating.
- Limitations
- Single-pool simulation; multi-hop routing is not modeled.
Price Integrity Test
- Data read
- The pool reserve ratio at the pinned block; the Blockscout indexer’s published exchange_rate for the token when one exists; the spot price of every discovered pool.
- Calculation
- Pool price = quote reserve / token reserve (decimals-adjusted). When a reference exists, deviation = |pool − reference| / reference; above 2% the price is stamped DIVERGENT, otherwise ALIGNED. When two pools exist their cross-route deviation is also printed.
- Provider
- On-chain RPC + Blockscout indexer.
- Fallback
- Without any reference the stamp is NO EXTERNAL REFERENCE — the absence of a reference is never treated as evidence of a wrong price.
- Limitations
- The reference is an indexer-published rate, not an oracle attestation.
Concentration Test
- Data read
- https://robinhoodchain.blockscout.com/api/v2/tokens/{address} and /holders — the indexer’s real holder table and total supply.
- Calculation
- Top-1/5/10 shares of visible supply, with known burn addresses (0x0, 0xdead) excluded from both numerator and denominator. CONCENTRATED is flagged above 30% for the largest holder or 75% for the top ten.
- Provider
- Blockscout indexer.
- Fallback
- If the indexer is unreachable the report states HOLDER INSTRUMENT UNAVAILABLE. No distribution is ever claimed without it.
- Limitations
- Shares are computed from the first indexer page (top 10 addresses).
- Contract-held balances (lockers, LPs) are not classified.
Freshness Test
- Data read
- The head block number and timestamp from the RPC; the observation time of every other instrument.
- Calculation
- Age = laboratory clock − source timestamp. FRESH ≤ 30s, AGING ≤ 120s, STALE beyond that. Old data is printed with its age — never hidden.
- Provider
- On-chain RPC.
- Fallback
- A stale chain head marks the whole sheet STALE SAMPLE.
- Limitations
- Clock skew between the laboratory and the chain is not corrected.
Drift (Volatility) Sample
- Data read
- pair.getReserves() at the pinned block and again 2,000 blocks earlier via archive eth_call.
- Calculation
- Two-point price drift over the window; above 5% the specimen is flagged VOLATILE.
- Provider
- On-chain RPC (archive state).
- Fallback
- If the RPC does not serve archive state, the test reports itself SKIPPED.
- Limitations
- A two-point window cannot capture intra-window swings.
The Verdict Engine
Verdicts are categorical, never a 0–100 score. Flags raised by the tests above combine in a fixed priority: no market evidence → INSUFFICIENT EVIDENCE; two or more serious flags → CONTAMINATED SAMPLE; thin liquidity (< $25,000 quote-side) or 1% depth impact above 5% → THIN SAMPLE; then CONCENTRATED, VOLATILE (drift or divergent price), STALE — and STABLE SAMPLE only when every instrument that could run returned readings within these published thresholds. The report prints the exact evidence and reason behind each verdict.
Sources
- RPC: https://rpc.mainnet.chain.robinhood.com — Robinhood Chain (chain id 4663)
- Indexer: https://robinhoodchain.blockscout.com
- DEX: UNISWAP-V2 FACTORY at 0x8bceaa40b9acdfaedf85adf4ff01f5ad6517937f
- Quote assets: USDG 0x5fc5360d0400a0fd4f2af552add042d716f1d168 · WETH 0x0bd7d308f8e1639fab988df18a8011f41eacad73