Simon-Pierre Boucher
All apps & projects
CoinExplorer icon
Web Platform
Python

CoinExplorer

A blockchain explorer with zero API keys

A self-hosted indexer, API, and dashboard for stablecoins and major crypto across 24 chains — built entirely on free public RPCs.

24

chains indexing live

94

on-chain verified assets

20M+

transfers indexed

<200 ms

hot API endpoints

22

API endpoints

0

API keys required

Overview

coinexplorer is a complete blockchain explorer platform built from scratch — indexer, REST/WebSocket API, and an 8-page dashboard — that reads raw JSON-RPC and REST from free public endpoints only. No Etherscan keys, no Infura, no paid data vendors: point it at the internet and it indexes 11 stablecoins and major crypto across four chain families.

Every transfer from 21 EVM chains, Tron, Solana, and Bitcoin lands in one canonical event schema, making the API, WebSocket stream, and dashboard fully chain-agnostic. The production instance at www.coinexplorer.io has indexed over 20 million transfers, with hot endpoints answering in under 200 ms at any index size thanks to incrementally maintained aggregates.

The platform is engineered for hostile free infrastructure: per-endpoint token buckets, health-scored failover with exponential cooldowns, adaptive range halving for oversized queries, reorg-safe cursors with automatic rollback, and a watchdog that rebuilds any dead worker thread within 30 seconds.

Key Features

Four chain families, one schema

EVM logs, Tron tx-infos, Solana balance diffs, and Bitcoin UTXOs all normalize into a single canonical transfer event.

Zero paid API keys

Reads raw JSON-RPC and REST from free public endpoints only — no Etherscan, no Infura, no data vendors.

Whale watch, live

Incremental whale extraction with a $100K floor — a $72M BTC move was caught minutes after boot.

Real-time WebSocket feed

wss stream pushes every transfer above your chosen USD floor, straight from the indexer.

Stablecoin issuance signals

Net mints minus burns per token, on-chain supply history per chain, native versus bridged tagging.

Reorg-safe indexing

Parent-hash chain-linking on every cursor advance plus chain-specific confirmation depths, with automatic rollback.

Scale-proof reads

Background workers maintain aggregates incrementally, so no UI query rescans the transfers table — 26 s cut to 2 ms, measured.

Add a chain in 30 lines

New EVM chains are config-only YAML; non-EVM families are roughly 150-line adapters, with 13 chains pre-verified and waiting.

Verified before indexed

Every EVM token address is checked on-chain via symbol() and decimals() before a single transfer is stored.

How It Works

  1. RPC pools

    Per-endpoint token buckets respect documented rate limits before getting 429'd, with health-scored EMA failover and exponential cooldowns across free public endpoints.

  2. Family adapters

    Four adapters — EVM, Tron, Solana, Bitcoin — decode raw chain data into one canonical transfer event, including a from-scratch Base58Check codec.

  3. Two-cursor indexing

    Head-tailing always has priority while history grows backwards one slice per cycle, with reorg detection and rollback on every cursor advance.

  4. Background workers

    Prices, supply, whale extraction, and rolling aggregates are maintained incrementally by dedicated workers, each supervised by a watchdog that rebuilds dead threads within 30 seconds.

  5. FastAPI layer

    REST /v1, a live WebSocket transfer stream, Prometheus /metrics, and the dashboard all read from the same database over either SQLite or PostgreSQL.

Tech Stack

Backend

Python 3.12+
FastAPI
WebSocket
Prometheus metrics

Storage

SQLite WAL
PostgreSQL
one codebase, both engines

Chain access

Raw JSON-RPC
eth_getLogs + hand-rolled ABI decoding
TronGrid
Solana RPC
esplora REST

Frontend

8-page responsive dashboard
hand-rolled SVG charts
native dark mode

Deployment

Docker Compose
bare-metal venv
MIT license

Highlights

  • Live in production at www.coinexplorer.io — the README's BTC/ETH price badges render from the platform's own API
  • 94 asset deployments verified on-chain (symbol() + decimals()) before indexing — the verifier refuses wrong addresses and chain IDs
  • A $72M BTC whale move was detected minutes after first boot
  • Incremental aggregates turned a 26-second table scan into a 2-millisecond read, measured
  • 13 additional chains (XRPL, Stellar, TON, Aptos, Sui, Starknet, ...) already configured with verified identifiers, awaiting adapters
  • Four test suites, 19 checks: token-bucket pacing, failover classification, reorg rollback, Base58Check vectors, TRC-20/SPL decoding

Explore CoinExplorer

Self-hosted blockchain explorer — the full source is on GitHub.