A modern, real-time blockchain explorer for Substrate-based chains with support for quantum-safe cryptography.
This explorer provides a unified interface for monitoring and analyzing multiple Substrate chains, with special support for quantum-safe chains using ML-DSA (Dilithium) signatures and Poseidon hashing.
- Multi-chain Support: Switch between different chains (Resonance, Quantus, Heisenberg)
- Real-time Activity: Live block and extrinsic monitoring via WebSocket connections
- Block Details: Deep dive into blocks, extrinsics, and events with full decoding
- Search: Find blocks by number or hash
- Runtime Timeline: Visual history of runtime upgrades with version tracking
- Mining Statistics: Leaderboards and performance metrics for PoW chains
- Chain Status: Real-time display of block production, finalization, and runtime version
- Quantum-Safe Support: Full support for ML-DSA signatures and Poseidon hashing
- Runtime Discovery: Automatic detection of all runtime versions used by a chain
- Metadata Decoding: Runtime-aware decoding of extrinsics and events
- SS58 Address Formatting: Proper address display for each chain
- Dark/Light Theme: Automatic theme detection with manual toggle
- Responsive Design: Works seamlessly on desktop and mobile
- Case-Insensitive Search: Flexible block hash searching
- Progressive Loading: Smooth data loading with visual feedback
- Node.js 20+
- pnpm
cd explorer
pnpm installpnpm devThe application will be available at http://localhost:5173
pnpm buildpnpm deploy # Deploys to Cloudflare Pages- Frontend: React 19 with TypeScript
- Styling: Bootstrap 5 with custom theme system
- Build Tool: Vite
- Deployment: Cloudflare Pages
- Blockchain Interaction: Direct WebSocket RPC connections
- Activity Monitor: Real-time block and transaction feed
- Block Explorer: Detailed block inspection with extrinsic decoding
- Runtime Timeline: Visual representation of runtime upgrade history
- Chain Status: Live chain metrics and health indicators
- WebSocket connections to chain endpoints for real-time data
- Runtime metadata fetching for accurate decoding
- Local caching of metadata and chain properties
- Progressive enhancement with lazy loading
Chains are configured in src/chains.ts. Each chain requires:
- Display name
- Genesis hash
- WebSocket endpoints
- Optional: Indexer URL for mining statistics
- Optional: Treasury address
- Add chain configuration to
src/chains.ts - Ensure WebSocket endpoints are accessible
- Add any chain-specific decoding logic if needed
explorer/
├── src/
│ ├── components/ # React components
│ ├── decoders/ # Blockchain data decoders
│ ├── utils/ # Utility functions
│ ├── hooks/ # React hooks
│ ├── types.ts # TypeScript definitions
│ └── chains.ts # Chain configurations
├── public/ # Static assets
└── dist/ # Build output
Contributions are welcome! Please ensure:
- Code follows existing patterns
- TypeScript types are properly defined
- Components are responsive
- Dark/light themes are supported
This project is open source. See LICENSE file for details.