Midnight Indexer Now Official — Scala Indexer Fully Deprecated
Last month, we introduced the Midnight Indexer, a modular, high-performance indexing service written in Rust. Today, we’re excited to share that the Rust-based Midnight Indexer has officially replaced the legacy Scala-based Pub-Sub Indexer.
As of the latest release — v2.1.1 — the new Indexer is now the only supported indexing service for applications building on the Midnight network.
What is the Midnight Indexer?
The Midnight Indexer is a high-performance, modular system that turns raw node data into queryable information for wallets and applications. It:
- Fetches and processes blocks from the Midnight node
- Indexes transactions, contract actions, and events
- Exposes a GraphQL API supporting queries, mutations, and real-time subscriptions
- Connects to wallets securely, delivering filtered, session-scoped data
- Supports both PostgreSQL (cloud) and SQLite (local/standalone)
How it works
The Indexer is composed of three core components:
- Chain Indexer - Connects to the node, fetches blocks, extracts transactions and contract activity, and writes to the database.
- Wallet Indexer - Monitors active wallets and links them to relevant events, enabling personalized real-time data feeds.
- Indexer API - Serves all indexed data over GraphQL with support for:
- Specific queries (by block height/hash, tx ID, or contract address)
- Live subscriptions (new blocks, wallet activity, contract calls)
- Secure sessions that scope data access per wallet
Latest release v2.1.1 highlights
The v2.1.1 release brings important patches and internal improvements to the Indexer. It includes bug fixes that correct queries for transactions and contract actions, ensuring they return accurate results. Additionally, the release features refactors that simplify and streamline the application of transactions in the Chain Indexer, using a more idiomatic approach. This version is fully compatible with Midnight Node v0.12, Midnight Wallet v5.0.0 or later, and Lace Wallet v3.0.0 or later.
What’s been added since launch?
Since the initial release, the Indexer has seen continuous improvements, including:
-
GraphQL API Enhancements
- Tracing and counters for operations
- Redesign of wallet subscription updates
- Cleaner schema naming and contract action handling
-
Improved Developer Experience
- Support for Bech32m encoding
- Better error logging and observability
- Easier configuration and deployment
-
More Secure and Stable Sessions
- Wallet session tracking with minimal overhead
- Silent handling of harmless database states
-
Documentation Updates
- Revised API docs and onboarding materials
- Migration notes for teams upgrading from Scala Indexer
What this means for you
What This Means for You
The Scala-based Indexer is no longer supported and will not receive further updates. All new development, tooling, and wallet integrations are now aligned with the Rust-based Midnight Indexer.
What action do I need to take?
To ensure full compatibility:
-
Update your endpoint
- Replace the legacy Scala endpoint with
https://indexer-rs.testnet-02.midnight.network/api/v1/graphql
- Replace the legacy Scala endpoint with
-
Test your integrations
- Validate all GraphQL operations (queries, mutations, subscriptions) against the new Indexer.
-
Update dependencies
- Midnight Node v0.12+
- Midnight Wallet v5.0.0+
- Lace Wallet v3.0.0+
The Scala Indexer is no longer supported. All future development is focused on the Rust-based Indexer.
Open source release
The Rust-based Midnight Indexer is now open-sourced. This means you can view the source code, contribute enhancements, report issues, or fork the project to build your own tools — all directly from GitHub.
We welcome contributions from developers at all levels — whether it’s fixing bugs, improving performance, or extending functionality.