Midnight Indexer 4.3.0
Midnight Indexer 4.3.0 Release Notes
Compatibility note: This release pairs with node 1.0.0 and ships as part of the Midnight 1.1 bundle (May release). Refer to MNF advisories for current deployment recommendations. Operators currently on node 0.22.x should follow the 4.0.x maintenance line (latest: 4.0.2) instead.
- Release date: 2026-04-30
- Release type: Bundle component, Midnight 1.1
- Git tag: v4.3.0
- Tree hash: cc0edf48419bdb942ea8e4bb0aecbb90e71ae9c5
- Environment: Development line, ships to public networks once the Midnight 1.1 bundle is promoted (currently exercised on QAET secondary against node 0.22.2; formal QA against node 1.0.0 happens before promotion)
High-level summary
Development-line release on the node 1.0.0 / ledger 8.1 track, the indexer side of the Midnight 1.1 bundle. Three new features (SPO indexer in standalone SQLite mode, CLI --version without config, dust generation dtime updates in the subscription stream) and three bug fixes (in-memory pub/sub drain task lifecycle, dust subscription input validation, /api/v3 and /api/v4 redirect loop). No GraphQL schema breaking changes.
Dependencies
This release is part of Midnight Release 1.1:
- Bundle tracking issue: midnightntwrk/midnight-engineering#1
- Paired ledger: 8.1
- Paired node: 1.0.0 (supports 0.22.x as well)
- Sibling release: indexer 4.0.x maintenance line continues to ship for operators still on node 0.22.x (latest: 4.0.2)
Docker Images
Five images publish at this tag (per .github/workflows/build-indexer-images.yaml at v4.3.0):
midnightntwrk/chain-indexer:4.3.0midnightntwrk/indexer-api:4.3.0midnightntwrk/wallet-indexer:4.3.0midnightntwrk/indexer-standalone:4.3.0midnightntwrk/spo-indexer:4.3.0
Audience
These release notes are intended for:
- Operators running the Midnight Indexer against node 1.0+
- Developers integrating against the Indexer API (queries and subscriptions)
- QA and release managers tracking bundle component versions for the May release
(Operators on node 0.22.x should track the 4.0.x maintenance line, not this release.)
What changed
| Change | Type | PR |
|---|---|---|
| SPO indexer in standalone SQLite mode | New feature | #979 |
--version flag works without config |
New feature | #1083 |
DustGenerationDtimeUpdate in dustGenerations subscription |
New feature | #1080 |
| In-memory pub/sub drain tasks survive lag | Bug fix | #1063 |
| Dust subscription input validation tightened | Bug fix | #1090 |
Infinite redirect loop on unknown /api/v3 and /api/v4 paths |
Bug fix | #1093 |
New features
SPO indexer in standalone SQLite mode (#979)
indexer-standalone (the single-binary, SQLite-backed deployment) now bundles the SPO indexer alongside the existing chain-indexer / indexer-api / wallet-indexer paths. Previously SPO indexing required the cloud topology (separate spo-indexer binary against PostgreSQL plus NATS). Standalone operators can now produce SPO data without the cloud-mode dependency stack. External community contribution from hlolli.
--version without config (#1083)
indexer --version (and the per-binary CLIs) now print version output without requiring a valid configuration file. Aligns with standard CLI conventions and removes an unnecessary failure mode in environments where config has not yet been mounted (debugging, CI inspection, container introspection).
DustGenerationDtimeUpdate in dustGenerations subscription (#1080)
The dustGenerations GraphQL subscription now emits DustGenerationDtimeUpdate events alongside the existing dust-generation events. Wallet integrators get the dtime-advance signal directly through the subscription stream instead of needing to poll for it.
New features requiring configuration updates
None.
Improvements
None in this release. (Performance work continues on subsequent releases; perf entries in 4.1.0 introduced DataLoader batching across several lookups.)
Deprecations
None.
Breaking changes
None. This is a drop-in upgrade for operators already on the indexer 4.x.y development line. The Indexer API GraphQL schema is unchanged at v4.
Known issues
No new known issues introduced by this release. The broader audit-finding work-in-progress (subscription guardrails per SSE #196, CI/CD hardening, etc.) is tracked under separate tickets and is not specific to 4.3.0.
Fixed defect list
The following defects were fixed in Indexer 4.3.0:
| Defect / PR | Description |
|---|---|
| #1063 | Standalone-mode in-memory broadcast pub/sub drain tasks could exit after a lag event, leaving subscribers without further messages. Drain tasks now stay alive across lag. |
| #1090 | Dust subscription accepted overly permissive input. Validation tightened against malformed input on the dust subscription path. |
| #1093 | Unknown paths under /api/v3 and /api/v4 triggered an infinite redirect loop. Redirect handling no longer loops on unknown sub-paths under each API version prefix. |
Links and references
- Full changelog: https://github.com/midnightntwrk/midnight-indexer/blob/v4.3.0/CHANGELOG.md
- GitHub release: https://github.com/midnightntwrk/midnight-indexer/releases/tag/v4.3.0
- Indexer API GraphQL schema: https://github.com/midnightntwrk/midnight-indexer/blob/v4.3.0/indexer-api/graphql/schema-v4.graphql
- Indexer API docs and examples: https://github.com/midnightntwrk/midnight-indexer/blob/v4.3.0/docs/api/v3/api-documentation.md
- Midnight 1.1 bundle issue: midnightntwrk/midnight-engineering#1
(Per-PR links are embedded in the What changed and Fixed defect tables above.)