{"slug":"portfolio-chain-coverage","title":"Wallet portfolio API chain coverage, listed vs probe-verified","subtitle":"Chains where each wallet-portfolio API actually returns balances for identical public test addresses, probed daily and published next to the vendor's own self-declared chain list.","category":"Aggregators","metric":"Chain coverage","unit":"count","status":"live","higherIsBetter":true,"value":134,"leader":{"name":"CoinStats","slug":"coinstats","value":134},"rankings":[{"name":"CoinStats","slug":"coinstats","ms":{"p50":134,"p90":151,"p99":137,"mean":134},"successRate":100,"sampleSize":134},{"name":"Mobula","slug":"mobula","ms":{"p50":61,"p90":79,"p99":66,"mean":61},"successRate":100,"sampleSize":61},{"name":"Zerion","slug":"zerion","ms":{"p50":42,"p90":65,"p99":48,"mean":42},"successRate":100,"sampleSize":42},{"name":"Moralis","slug":"moralis","ms":{"p50":15,"p90":17,"p99":15,"mean":15},"successRate":100,"sampleSize":15}],"sparkline":[134,134,134,134,134,134,134,134,134,134,134,134,134,134],"sampleSize":252,"asOf":"2026-07-08T13:35:31.148Z","headline":"CoinStats leads chain coverage at 134 (24h) on Wallet portfolio API chain coverage, listed vs probe-verified.","quote":"CoinStats leads chain coverage at 134 (24h) on Wallet portfolio API chain coverage, listed vs probe-verified. Source: OpenChainBench (https://openchainbench.com/benchmarks/portfolio-chain-coverage).","cite":{"plain":"OpenChainBench. \"Wallet portfolio API chain coverage, listed vs probe-verified\". Retrieved 2026-07-08. https://openchainbench.com/benchmarks/portfolio-chain-coverage","bibtex":"@misc{ocb_portfolio_chain_coverage,\n  author = {OpenChainBench},\n  title  = {Wallet portfolio API chain coverage, listed vs probe-verified},\n  year   = {2026},\n  url    = {https://openchainbench.com/benchmarks/portfolio-chain-coverage},\n  note   = {Retrieved 2026-07-08}\n}","apa":"OpenChainBench. (2026). Wallet portfolio API chain coverage, listed vs probe-verified. Retrieved July 8, 2026, from https://openchainbench.com/benchmarks/portfolio-chain-coverage"},"pageUrl":"https://openchainbench.com/benchmarks/portfolio-chain-coverage","ogImage":"https://openchainbench.com/api/og/portfolio-chain-coverage","source":"https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/portfolio-chain-coverage","methodology":["Identical test addresses for every provider: one shared EVM address (0xF977814e90dA44bFA03b6295A0616a897441aceC, Binance 8 hot wallet, covers every EVM chain in one sweep) plus a pinned set of ~63 public high-balance non-EVM addresses, one per chain (exchange cold wallets, protocol treasuries, Cosmos community-pool accounts). The full list and sourcing rules live in the harness source; every provider that accepts an address type receives the identical address.","Verified threshold: a chain counts when the returned balance value exceeds $1; when a response carries no USD pricing at all, a native token amount above 0 counts instead. This filters dust and spam-token noise.","listed = chains the vendor self-declares via its own machine-readable catalog endpoint. verified = chains where the probe observed a real balance. The two are never mixed; both are published because self-declared lists can be inflated and verified is an address-dependent lower bound.","probed = chains tested with an address known to hold a real balance (validated against the chain's own explorer when pinned) where the API answered definitively. A miss only counts against a vendor when the wallet's target chain appears in the vendor's OWN catalog, so nobody is debited for chains they never claimed. verified/probed is the demonstrable indexer success rate on the vendor's claimed surface; listed minus probed is the residue no funded public address could be sourced for.","Providers without a catalog endpoint (Moralis) publish listed with listed_source=probe: the count of chains their portfolio API acknowledged during the probe, bounded by the harness candidate list. It is a floor on the vendor's surface, not a self-declared claim, and the metric label keeps the two comparable but distinguishable.","Invocation policy: every vendor is probed through its most precise documented invocation, never a convenience shortcut. CoinStats gets one call per catalog connectionId, Mobula gets explicit blockchains= targeting over its own catalog, Zerion gets one portfolio call per EVM probe wallet (45s timeout: it computes on demand), Moralis gets one net-worth call per accepted chain. A vendor is never penalized for a weakness of the probe protocol.","Cadence: one probe cycle every one to two days. Multi-chain sweeps space calls by 1.5s so no vendor sees a burst; per-call timeout is 20s (45s for vendors that compute on demand) with a single retry on 5xx or timeout only, never on 4xx. CoinStats long-tail probes rerun every ~9 days to respect its credit budget; its catalog and EVM sweep refresh every cycle and cached long-tail results are merged, so published numbers stay complete each cycle.","Failures (timeouts, rate limits, auth errors) leave the provider's previous gauges in place and increment portfolio_probe_errors_total, so a temporary outage does not silently drop a provider off the leaderboard.","Cohort limited to providers with free, reproducible API access; expansions welcome. Zapper is excluded pending an API key, DeBank offers no free tier, and Codex gates its balances query behind the paid Growth plan.","Source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/portfolio-chain-coverage"],"license":"CC-BY-4.0"}