Data
Data, caching, and freshness
Where numbers come from, what is cached, and what stays empty when a provider is gated.
- Blockchain (EIP-155 4663)
- RPC / DexScreener / Gecko / RHJ / explorer
- Apogee dispatch + short in-memory caches
- MCP tools / REST / Orbit
- Applications and AI agents
Providers actually used
Robinhood Chain public RPC
- Provides: Blocks, receipts, eth_call, balances, logs for pons factories.
- Why: Source of on-chain truth for 4663.
- Freshness: Request time.
- Cache: ETH-USD (via DexScreener) cached 60s in pons helpers. No general RPC cache.
- Limits: Public RPC may rate-limit or time out. Override with APOGEE_RPC_URL server-side.
DexScreener
- Provides: Pairs, prices, liquidity, volume, trending, boosted tokens. Chain filter: slug robinhood.
- Why: Market surface for Robinhood Chain pools.
- Freshness: Near-real-time provider data.
- Cache: Not cached in Apogee except where a helper stores a short-lived result.
- Limits: Third-party terms apply. Tickers collide — resolve by contract.
GeckoTerminal
- Provides: OHLCV, pool trades, token metadata/images. Network slug robinhood.
- Why: Candles and prints for token pages and get_chart.
- Freshness: Provider refresh; not a websocket feed.
- Cache: None in Apogee.
- Limits: Pool ids are not token addresses. Base token 0x is used for /token routes.
DefiLlama
- Provides: Chain TVL used in desk / chain stats.
- Why: Public TVL figure for Robinhood Chain.
- Freshness: Provider cadence.
- Cache: Fetched with chain stats; not a dedicated long TTL.
- Limits: TVL methodology is DefiLlama's, not Apogee's.
RHJ Stock Token APIs
- Provides: Canonical Stock Token registry, multipliers, logos, corporate actions, oracle bid/ask.
- Why: Distinguish official Stock Tokens from ticker lookalikes.
- Freshness: Oracle vs DEX premium computed live; registry cached 10 minutes.
- Cache: 10 minutes for /assets.
- Limits: Stock Tokens may not be offered, sold, or delivered to persons in the United States, Canada, the United Kingdom, or Switzerland.
Blockscout explorer
- Provides: Optional tokentx / account history for holders, burns, wallet flow.
- Why: Transfer history when the API is reachable.
- Freshness: Indexed explorer data.
- Cache: None.
- Limits: Often Cloudflare 403 from some hosts. Apogee then returns empty proxies rather than invented ledgers.
Postgres (on-chain notes index)
- Provides: Indexed memos, buy/burn activity, service-wallet SOL/$ORBITX balances, and $ORBITX price for the website.
- Why: Solana RPC is the write/source of truth. Direct SQL (DATABASE_URL) keeps the UI from waiting on 429s. No Supabase JWT.
- Freshness: Written when a memo/buy/burn confirms; served immediately on later polls.
- Cache: Wallet/price snapshot reused ~20s; feed served from SQL while chain refreshes in the background.
- Limits: Requires POSTGRES_URL / DATABASE_URL on the host. Missing URL falls back to live chain scans.
pons factories (on-chain)
- Provides: TokenLaunched logs, curve/graduation state, unsigned launch helpers.
- Why: Launch indexing. Apogee does not operate pons.
- Freshness: Log lookback (default 8000 blocks), launches cached ~20s.
- Cache: 20 seconds for launch lists.
- Limits: Unaffiliated. Graduation is not quality. v2 live factory is documented in MCP instructions.
Freshness by category
- Token price / pools: Near-real-time DexScreener at request time.
- Token metadata / images: On-chain ERC-20 plus Gecko metadata at request time.
- OHLCV: GeckoTerminal candles at request time.
- Holders: Transfer/liquidity proxy. Not a full indexed ledger. May be empty if explorer is gated.
- Transactions: Public RPC receipts; explorer transfers when reachable.
- Analytics / scan scores: Calculated from live Dex + RHJ + on-chain reads.
- Stock Token registry: RHJ /assets cached ~10 minutes.
- pons launches: Factory logs, list cached ~20 seconds.
- ETH-USD (launch helpers): Cached ~60 seconds.
- On-chain notes / $ORBITX wallet: Solana is source of truth. Postgres (DATABASE_URL, no JWT) indexes memos, burns, SOL, and price so the UI does not wait on RPC.
Client caching
Do not cache prices indefinitely. Desk-style snapshots: 20–60s. Stock registry: up to 10 minutes. Launch lists: ~20s. If a tool returns ok: false or an empty holders/burns list, show empty — do not fill with guesses. This server does not emit MCP cache-control metadata on list responses.
Optional AI
Orbit uses NVIDIA NIM only when NVIDIA_API_KEY, NVIDIA_NIM_API_KEY, or NGC_API_KEY is set on the server (default model meta/llama-3.1-70b-instruct, stream false, 20s timeout). Without a key, Orbit still calls MCP tools heuristically. NVIDIA is not a data indexer.