Midnight Indexer 4.3.3-rc.3
Pre-releaseMidnight Indexer 4.3.3-rc.3 Release Notes
Release date: 2026-05-29
Release type: Pre-release (development line)
Git tag: v4.3.3-rc.3
Tree hash: 45a08a986c7190e344a9519eb2c6e94881ab6bfa
Environment: All public networks (mainnet, preprod, preview, devnet, qanet)
Note: this release candidate pairs with node 1.0.0 and ledger 8.1.0 and is the fast-follow patch on the Midnight 1.1 indexer line. Refer to MNF advisories for current deployment recommendations.
Summary
Release candidate on top of 4.3.3-rc.2. Adds per-tree end indexes to the Block GraphQL type so clients can read a chain-aligned upper bound without walking transactions, and renames the dust nullifier byte fields with a LeBytes suffix so their constant-length little-endian encoding is explicit. Both surfaces are @ beta. Also aligns the node test fixtures to the node 1.0.0 release tag.
Dependencies
- Node: 1.0.0 (supports 0.22.x as well)
- Ledger: 8.1.0
- Bundle tracking issue: Midnight Release 1.1
Both the node 1.0.0 and ledger 8.1.0 moves on this line are rc → release tag alignments (node from 1.0.0-rc.3, ledger from 8.1.0-rc.1) with no functional change for the indexer.
Docker Images
midnightntwrk/chain-indexer:4.3.3-rc.3midnightntwrk/indexer-api:4.3.3-rc.3midnightntwrk/wallet-indexer:4.3.3-rc.3midnightntwrk/indexer-standalone:4.3.3-rc.3midnightntwrk/spo-indexer:4.3.3-rc.3
Audience
- Operators running an indexer on public networks (paired with node 1.0.0).
- Testnet and devnet administrators.
- DApp and wallet developers integrating against the indexer GraphQL API, in particular consumers of the
dustNullifierTransactionssubscription and theBlock*EndIndexfields. - QA and release managers.
What Changed
| Change | Type | PR |
|---|---|---|
Add per-tree end indexes to Block |
New feature | #1197 |
Rename dust nullifier byte fields with LeBytes suffix |
Improvement (@ beta) | #1199 |
New Features
Per-tree end indexes on Block (#1197)
Adds zswapEndIndex, dustCommitmentEndIndex (@beta), and dustGenerationEndIndex (@beta) to the Block type. Clients get a chain-aligned upper bound for dustGenerations and the zswap / dust-commitment merkle update queries directly from block(offset), without walking back through transactions to find a RegularTransaction (the only variant that carries these on the transaction level). The values are the chain's per-tree first_free as of each block, monotonic non-decreasing.
Improvements
- Renamed the dust nullifier byte fields and prefix argument on the
dustNullifierTransactionssubscription with aLeBytessuffix (#1199) so the constant-length little-endian encoding is explicit in the name:nullifier→nullifierLeBytes,commitment→commitmentLeBytes,nullifierPrefixes→nullifierLeBytesPrefixes. These are@betafields introduced in 4.3.2, the wire contract is unchanged (still raw little-endian bytes), and the only consumer (the wallet team) has been notified. The shielded nullifier surface is unchanged.
Breaking Changes or Required Actions
None for stable API consumers. The dust nullifier fields renamed in #1199 are @beta (no stability guarantee) and were only introduced in 4.3.2, so the rename is within the in-flight caveat rather than a stable-API break.
Links and References
- Full changelog: CHANGELOG.md
- GitHub release: https://github.com/midnightntwrk/midnight-indexer/releases/tag/v4.3.3-rc.3
- GraphQL schema: schema-v4.graphql
- Bundle tracking issue: Midnight Release 1.1
- Cumulative 4.3.3 patch release note (network-ops):
releases/patches/indexer-4-3-3/indexer-4-3-3.md
(Per-PR links are embedded in the What Changed and Breaking Changes sections above.)