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.
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 area | Component | Version | Notes |
|---|---|---|---|
| Network | Node (Midnight) | 1.0.400 | Preview network node |
| Runtime and contracts | Compact devtools (compact) | 0.5.1 | Installs compilers, compiles contracts |
Compact toolchain (compact compile) | 0.31.1 | Contract compiler for Midnight | |
| Compact runtime | 0.16.0 | Runtime library for contracts | |
| Compact JS | 2.5.1 | TypeScript execution environment for compiled contracts | |
| Platform JS | 2.2.4 | Core abstractions and types | |
| On-chain runtime | 3.0.0 | On-chain runtime support (v3) | |
| SDKs and APIs | Wallet SDK | 1.2.0 | SDK for building wallet integrations |
| Midnight.js | 4.1.1 | DApp framework: contracts, types, providers | |
| testkit-js | 4.1.1 | E2E testing framework | |
| DApp Connector API | 4.0.1 | Interface between DApps and wallets | |
| Indexing and data | Midnight Indexer | 4.3.5 | Preview indexer |
| ZK and proving services | Proof server | 8.1.3 | Handles ZKP proof generation |
Preprod support matrix
| Functional area | Component | Version | Notes |
|---|---|---|---|
| Network | Node (Midnight) | 1.0.400 | Preprod network node |
| Runtime and contracts | Compact devtools (compact) | 0.5.1 | Installs compilers, compiles contracts |
Compact toolchain (compact compile) | 0.31.1 | Contract compiler for Midnight | |
| Compact runtime | 0.16.0 | Runtime library for contracts | |
| Compact JS | 2.5.1 | TypeScript execution environment for compiled contracts | |
| Platform JS | 2.2.4 | Core abstractions and types | |
| On-chain runtime | 3.0.0 | On-chain runtime support (v3) | |
| SDKs and APIs | Wallet SDK | 1.2.0 | SDK for building wallet integrations |
| Midnight.js | 4.1.1 | DApp framework: contracts, types, providers | |
| testkit-js | 4.1.1 | E2E testing framework | |
| DApp Connector API | 4.0.1 | Interface between DApps and wallets | |
| Indexing and data | Midnight Indexer | 4.3.302 | Preprod indexer |
| ZK and proving services | Proof server | 8.1.3 | Handles ZKP proof generation |
Mainnet support matrix
| Functional area | Component | Version | Notes |
|---|---|---|---|
| Network | Node (Midnight) | 1.0.400 | Mainnet network node |
| Runtime and contracts | Compact devtools (compact) | 0.5.1 | Installs compilers, compiles contracts |
Compact toolchain (compact compile) | 0.31.1 | Contract compiler for Midnight | |
| Compact runtime | 0.16.0 | Runtime library for contracts | |
| Compact JS | 2.5.1 | TypeScript execution environment for compiled contracts | |
| Platform JS | 2.2.4 | Core abstractions and types | |
| On-chain runtime | 3.0.0 | On-chain runtime support (v3) | |
| SDKs and APIs | Wallet SDK | 1.2.0 | SDK for building wallet integrations |
| Midnight.js | 4.1.1 | DApp framework: contracts, types, providers | |
| testkit-js | 4.1.1 | E2E testing framework | |
| DApp Connector API | 4.0.1 | Interface between DApps and wallets | |
| Indexing and data | Midnight Indexer | 4.3.302 | Mainnet indexer |
| ZK and proving services | Proof server | 8.1.3 | Handles 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.
| Combination | Result |
|---|---|
| Compact runtime 0.19.0 or 0.20.0 with Midnight.js 4.1.1 | Midnight.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.0 | Importing 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.0 | Importing 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 Mainnet | These 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>.