Skip to main content
For the complete documentation index, see llms.txt

Compatibility matrix


This compatibility matrix, also called the support matrix, lists the Midnight component versions tested against Preview, Preprod, and Mainnet. For releases that don't work with these versions, see Known incompatible combinations.

note

This matrix only reflects the latest tested versions. Earlier versions may still work, but we do not guarantee compatibility or provide support for them.

Preview support matrix​

Functional areaComponentVersionNotes
NetworkNode (Midnight)1.0.400Preview network node
Runtime and contractsCompact devtools (compact)0.5.1Installs compilers, compiles contracts
Compact toolchain (compact compile)0.31.1Contract compiler for Midnight
Compact runtime0.16.0Runtime library for contracts
Compact JS2.5.1TypeScript execution environment for compiled contracts
Platform JS2.2.4Core abstractions and types
On-chain runtime3.0.0On-chain runtime support (v3)
SDKs and APIsWallet SDK1.2.0SDK for building wallet integrations
Midnight.js4.1.1DApp framework: contracts, types, providers
testkit-js4.1.1E2E testing framework
DApp Connector API4.0.1Interface between DApps and wallets
Indexing and dataMidnight Indexer4.3.5Preview indexer
ZK and proving servicesProof server8.1.3Handles ZKP proof generation

Preprod support matrix​

Functional areaComponentVersionNotes
NetworkNode (Midnight)1.0.400Preprod network node
Runtime and contractsCompact devtools (compact)0.5.1Installs compilers, compiles contracts
Compact toolchain (compact compile)0.31.1Contract compiler for Midnight
Compact runtime0.16.0Runtime library for contracts
Compact JS2.5.1TypeScript execution environment for compiled contracts
Platform JS2.2.4Core abstractions and types
On-chain runtime3.0.0On-chain runtime support (v3)
SDKs and APIsWallet SDK1.2.0SDK for building wallet integrations
Midnight.js4.1.1DApp framework: contracts, types, providers
testkit-js4.1.1E2E testing framework
DApp Connector API4.0.1Interface between DApps and wallets
Indexing and dataMidnight Indexer4.3.302Preprod indexer
ZK and proving servicesProof server8.1.3Handles ZKP proof generation

Mainnet support matrix​

Functional areaComponentVersionNotes
NetworkNode (Midnight)1.0.400Mainnet network node
Runtime and contractsCompact devtools (compact)0.5.1Installs compilers, compiles contracts
Compact toolchain (compact compile)0.31.1Contract compiler for Midnight
Compact runtime0.16.0Runtime library for contracts
Compact JS2.5.1TypeScript execution environment for compiled contracts
Platform JS2.2.4Core abstractions and types
On-chain runtime3.0.0On-chain runtime support (v3)
SDKs and APIsWallet SDK1.2.0SDK for building wallet integrations
Midnight.js4.1.1DApp framework: contracts, types, providers
testkit-js4.1.1E2E testing framework
DApp Connector API4.0.1Interface between DApps and wallets
Indexing and dataMidnight Indexer4.3.302Mainnet indexer
ZK and proving servicesProof server8.1.3Handles ZKP proof generation

Known incompatible combinations​

Preview, Preprod, and Mainnet run ledger 8. Compact toolchains 0.34.0 and 0.35.0 target ledger 9, and so do Compact runtimes 0.19.0 and 0.20.0. They don't work with the versions in this matrix.

CombinationResult
Compact runtime 0.19.0 or 0.20.0 with Midnight.js 4.1.1Midnight.js 4.1.1 pins @midnight-ntwrk/compact-runtime to 0.16.0 and @midnight-ntwrk/onchain-runtime-v3 to 3.0.0. Compact runtime 0.19.0 and 0.20.0 depend on @midnightntwrk/onchain-runtime-v4 instead. Even when the toolchain matches the runtime, deployContract throws Failed to configure constructor context with coin public key. The coin public key isn't the cause: Midnight.js 4.1.1 doesn't support contracts compiled for ledger 9.
Compact toolchain 0.34.0 or 0.35.0 with Compact runtime 0.16.0Importing the compiled contract throws Version mismatch: compiled code expects 0.19.0, runtime is 0.16.0. For toolchain 0.35.0, the expected version is 0.20.0.
Compact toolchain 0.31.1 with Compact runtime 0.19.0 or 0.20.0Importing the compiled contract throws Version mismatch: compiled code expects 0.16.0, runtime is 0.20.0. For Compact runtime 0.19.0, the message ends with runtime is 0.19.0.
Contracts compiled with Compact toolchain 0.34.0 or 0.35.0, deployed to Preview, Preprod, or MainnetThese toolchains compile for ledger 9. Ledger 8 can't read the initial contract state of these contracts, so you can't deploy them to these networks.

A bare compact update installs the newest toolchain and makes it the default. In a project that doesn't list the Compact runtime yet, npm install @midnight-ntwrk/compact-runtime without a version adds the newest runtime. To stay on the versions in this matrix, run compact update <version> and npm install @midnight-ntwrk/compact-runtime@<version>.