# DeltaVerse — chainmarketcap > chainmarketcap ranks 2,700+ blockchain networks by the market cap of the token > they actually run on, and hands you the RPCs, explorers, logos and contract > addresses to act on that. This file is for agents: everything below is > machine-actionable, and the semantics section is the part that will save you > from confidently reporting something false. The DeltaVerse is **robot positive**. Read freely, no key, no auth, no rate-limit games on the open surfaces. What is asked in return is accuracy: this data describes real chains where a wrong contract address costs somebody real money. Where a value is uncertain, the surfaces below say so rather than guessing, and you should carry that uncertainty forward instead of flattening it. - Board: https://deltaverse.pythai.net/chainmarketcap.html - Logo collection: https://deltaverse.pythai.net/coinlogos/ ## Open endpoints (same-origin, no key, CORS enabled) CoinMarketCap will not answer a browser directly — it sends no `Access-Control-Allow-Origin` on any endpoint, `pro-api` and `mcp` alike. These routes are a caching proxy that adds it. Quotes are cached ~280 s, token info ~24 h, so poll politely; a cache hit is reported in `_proxy`. - `GET /cmc/health` — key state, cache size, minute window, credit burn. - `GET /cmc/quotes?symbol=BTC,ETH,NEAR` — CMC quotes. Batch your symbols: 88 in one call costs **1 credit**, 88 separate calls cost 88. Max 200 per call. - `GET /cmc/info?symbol=ARB` — token metadata incl. `contract_address[]` per platform. Read the semantics below before you trust those addresses. - `GET /coinlogos/index/chains.json` — 210 EVM chain-id → logo path, 560 chain natives. - `GET /coinlogos/index/symbols.json` — 13,142 ticker → logo path. - `GET /coinlogos/index/caip19.json` — CAIP-19 asset id → logo path. - `GET /coinlogos/index/stats.json` — collection counts, build timestamp. - `GET /coinlogos/manifest.ndjson` — 45,201 records, one JSON object per line. One invalid symbol fails the whole `/cmc/*` call with a 400 naming it — split and retry rather than dropping the batch. ## Paid endpoints (x402 — Base USDC, Algorand USDC) Blocktime-confirmed price history, one batch per 5 minutes, 88 coins per batch. - `GET /pricepoints/health` — **free.** Batch count, point count, coin count, last batch. - `GET /pricepoints/latest?id=` — 402, 200 µUSD. - `GET /pricepoints/history?id=` — 402. `id` is required (422 without). - `GET /pricepoints/change?id=` — 402. `id` is required. - `GET /pricepoints/batches` — 402, 300 µUSD. A 402 returns an `accepts` block with the rails: Base USDC `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` (chainId 8453) and Algorand ASA `31566704`. Fee model is `bankon-golden-ratio`, φ = 1.618033988749895. Read the rails from the 402 rather than hard-coding them — a Moonbeam USDC.wh rail was retired here on 2026-08-28 when that chain's public RPCs stopped answering, and a settlement attempt on a withdrawn rail is a lost payment, not a failed one. ## Semantics — read this before reporting any number **1. `0xeeee…eeee` is not a contract.** CoinMarketCap lists a chain's own gas coin with the 40-`e` ERC-7528 native placeholder. It is ~31% of contract rows. A gas coin has no contract *on its own chain* — it is issued by the chain. Its real contracts are the bridged copies on *other* chains. Never link or quote the sentinel as an address. **2. Gas token ≠ protocol token.** Arbitrum's protocol token is ARB; you pay gas in ETH. Both are "the chain's token" in different senses, and conflating them produces nonsense — matching a chain to CMC by its gas symbol once compared ARB against ETH and reported a 2,780,750% divergence. The board labels each. **3. A coin's market cap belongs to exactly one chain.** Dozens of rollups report ETH as their native coin; assigning ETH's cap to each would give Unichain and Mint $293B apiece. Rules applied here: curated mapping wins; otherwise lowest chain id; testnets never carry a cap (they price fine — CoinGecko lists testnet platforms with the *mainnet's* coin id, which once gave Arc Network Testnet $73.6B); and a chain may only claim a cap if the coin is not wrapped/bridged/staked/stable, its ticker matches the gas symbol, and the chain is nameable as that asset's chain. GOAT Network otherwise takes wrapped-bitcoin's $9B, Stable Mainnet takes usdt0's $4B, DuckChain takes TON's $3.8B. **4. Tickers are not unique.** Cross-provider comparison past 25% is a ticker clash — two different assets sharing a symbol — not a disagreement. Below that, CoinGecko and CoinMarketCap typically agree to ~0.02% on price and disagree far more on *rank*, because they rank different universes. **5. Identifier shapes differ per platform.** `contract_address` holds EVM 20-byte addresses, Solana/Avalanche base58, Cosmos `ibc/<64-hex>` denoms, Aptos `0x1::aptos_coin::AptosCoin`, THORChain `THOR.RUNE`, XRP Ledger `xrp`, Tron20 literally `0`. Validate the shape before constructing an explorer URL; most explorers return HTTP 200 for a nonsense path and render an empty page. **6. Explorer hosts rot.** `ftmscan.com` and `hecoinfo.com` no longer resolve at all; `subnets.avax.network` now redirects to `build.avax.network`. Check DNS before trusting a chain registry's explorer field. ## Upstreams and attribution Chain universe from `chainid.network/chains.json`; prices from CoinGecko (`/coins/markets`, `/asset_platforms` for the 269-chain id→coin mapping); market data "Powered by CoinMarketCap"; 4h seeds from DeFiLlama. RPC endpoints are live-verified with `eth_chainId` and ordered by measured latency — an endpoint answering with the wrong chain id is flagged, because a wallet added from it would sign against the wrong network. ## Etiquette The board refreshes every 5 minutes and so should you. `/cmc/*` shares one upstream minute-budget across all callers; the underlying CMC MCP endpoint enforces **24 tool calls per minute** (not the documented 30 — measured), as a fixed calendar-minute window, and returns rate-limit errors as **HTTP 200** with error code 1008 in the body. Status codes are not a reliable success signal on that API; check the payload.