# Substance Terminal, machine readable summary Substance is a read only due diligence scanner for tokens on Robinhood Chain (chain id 4663, an Ethereum L2). It scores tokens 0 to 100 from ten checks on public data. A score is a heuristic snapshot taken at scanned_at, not a fact about the future and never a recommendation to buy or sell. ## Endpoints ### GET /api/scan?address=0x{40 hex} Scans one token. Fresh scans take about 15 seconds and cache for 10 minutes. Response fields: - address, scanned_at (unix), duration_s - score (0 to 100), grade (A B C D F), verdict (string) - points_earned, points_available (raw sums before scaling) - coverage_pct: percent of check weight that had data. Compare scores only at similar coverage. - identity: name, symbol, price_usd, fdv_usd, liquidity_usd, volume24h_usd, holders, transfers, age_days, dex, pair_count, websites, socials (fields are null when unknown, never fake zeros) - deployer: address, previous_launches, sampled_txs (null when unknown) - pons: launchpad, graduated (bool), progress_pct, weth_in_pool, threshold_weth (null when the token is not a Pons launch) - checks: array of {id, label, status pass|warn|fail|na, points, max, detail} Check ids: verified, liquidity, holders, concentration, activity, age, web, reputation, supply, deployer - red_flags, green_flags: arrays of strings - links: blockscout, dexscreener Errors: 400 {"error": "Invalid address"} for malformed input. 404 {"error": "No token found..."} when the address holds no token. A 200 report can still have checks marked na; respect coverage_pct. ### GET /api/feed Latest Pons V2 launches (factory 0x000000e200088D55C39a11F609E5F667729ad49b), newest first, scanned automatically and rescanned through their first day. Response: status, last_block, count, entries[]. Every entry has the same keys: address, block, scanned_at, name, symbol, score, grade, liquidity_usd, volume24h_usd, holders, age_days, red_flags (count), coverage_pct, deployer, deployer_prev, graduated, bond_pct, history (array of {t, s} score snapshots). ## Rules for agents - Rate limit yourself: one scan at a time, a few seconds between calls. - Treat null as unknown, not as zero. - Quote scores together with scanned_at and coverage_pct. - Substance is not affiliated with Robinhood Markets and has no token.