← Back to trust

Midnight

After Midnight

Midnight's compiler tests reproduce a boundary on witness disclosure. Source and package analysis traces the separate custody of proving material, discovery keys and contract-maintenance authority.

ContentsBrowse sections

Abstract

Midnight’s compiler can reject an unmarked flow from a private witness to public state while a proof provider receives the material needed to construct the proof. A replay of the Compact 0.31.1 release reproduces this protection through assignments, helpers, conditional effects and exported results. Immutable source and application-lock records trace custody outside that compiler rule. A verifier can learn little from a proof while an indexer receives a discovery key. A contract can also preserve its address while a maintenance authority changes its accepted verifier keys. Network responses add a dated observation of authority configuration to this reconstruction. Privacy depends on the relation among information, receiving processes and authorized uses. The findings establish specific capabilities and configuration differences; they do not infer ecosystem prevalence, institutional intent or the security of deployed applications from source alone.

1. Where the Privacy Question Moves

Midnight’s Compact language treats witness-derived information as private for the purposes of its source analysis and requires explicit permission when that influence reaches a public result. This is a substantive protection. The existence of disclose() does not establish that disclosure is the default, nor that institutional access is unavoidable.

The broader question begins with a distinction between permission and custody. A developer can authorize a public result without intending to send the underlying witness to another organization. A user can keep a secret outside the verifier’s view while delegating proof construction to a service that receives private inputs. A viewing key can make records discoverable without changing the ledger’s ciphertext. Each arrangement creates a different relation among the information, its holder and a receiving process.

Nissenbaum’s contextual-integrity account helps specify what a purely private/public classification leaves unresolved: appropriate information use depends on the context and its norms of collection and distribution (Nissenbaum 2004). The analysis here does not adjudicate those norms for every Midnight application. It identifies the technical transfers to which such an assessment must attach: which attributes travel, to which process, under whose control and for which operation. Encryption and proof verification address parts of that problem, and their boundaries need to remain visible.

Local proving can keep witness material near the holder, while a remote prover can be deliberately selected and appropriately governed. A maintenance authority can preserve a contract through cryptographic changes while creating responsibilities for key protection and review. Agency depends in part on how an application allocates those capacities. Source paths identify the available arrangements; observing the deployed application establishes which one it uses.

2. Compiler Permission, Reproduced

The Compact witness-protection pass tracks witness-derived influence through the source program. A later pass removes the disclose() wrapper from the compiled representation (policy record; removal record). The wrapper marks a flow as permitted by the analysis; it is not itself a decryption operation or a transmission to an institution.

A controlled replay downloaded the official Compact 0.31.1 macOS arm64 release archive. Its SHA256, 57af9b0449aa96b2905ea3d7a175b6b42ab38d725612a9cb2d73eb4ef253cce2, matched the release API’s published digest. Both fixture programs declare a Uint<64> witness and assign its return value to exported ledger state. They differ only in wrapping the right-hand side in disclose().

Fixture Observed result Interpretation

publicValue = secretValue();

Compiler exit 255, with a witness-disclosure diagnostic.

This direct witness-to-ledger flow requires an explicit declaration.

publicValue = disclose(secretValue());

Compiler exit 0; JavaScript and ZKIR emitted without the wrapper.

The declaration permits the flow through the source analysis; it does not remain a separate runtime privacy operation.

Eight additional fixtures extend the result beyond a direct assignment. The same compiler rejects unmarked witness influence passed through a helper into ledger state, used to select between public ledger effects, or returned from an exported circuit. The corresponding disclosed forms compile. A private intermediate and an assertion constraining a witness also compile. The diagnostics identify undeclared disclosure rather than a syntax or type error.

These outcomes distinguish protected public outputs from permitted private computation and proof constraints. Successful proof verification can itself communicate that a constraint was satisfied, so the source check must not be read as a promise that every proposition about a witness remains hidden.

The ten fixture commands used --skip-zk, so these are compilation and emitted-representation results. The experiments do not test proof generation, circuit soundness or transaction execution. The archive and binary identity are recorded for reproduction; matching compiler passes at the cited source pin do not establish a reproducible source-to-release build.

Compact’s analysis also has an interface boundary. Imported annotations determine how a caller’s witness influence is treated, and the reference warns that another contract’s interface can permit disclosure. The selected flow tests do not prove the behavior of arbitrary contract composition, side channels, wallet state or external services.

3. A Proof and the Process That Builds It

The cited ledger’s ProofPreimage contains direct inputs, a private transcript described as the witness vector, public transcript material, binding input, a communications commitment and randomness, and a verifier-key location. The WebAssembly boundary serializes that structure before a provider call (type record; serialization record). Midnight.js labels the corresponding unsubmitted transaction data privacy-sensitive.

Two source paths locate that material differently. The wallet’s WebAssembly prover constructs a proof in a browser worker. The Midnight.js HTTP provider sends a serialized preimage to /check or /prove and accepts loopback or remote destinations. Its warning for remote plain HTTP does not establish who operates an HTTPS endpoint, what it records or which surrounding services can access the process (worker record; HTTP provider record).

Route Receiving process Additional evidence needed for an application

Browser-worker proving

A worker on the selected device.

The actual wallet path, device/browser environment and artifact integrity.

Loopback proof service

A service addressed locally by the client.

Local service configuration and the processes able to access it.

Remote HTTP proof service

The configured remote service receives serialized proving material.

Destination, operator, authorization, transport, logging and retention arrangements.

Zero knowledge limits what the verifier learns from the proof under its security assumptions. It does not, by itself, conceal the preimage from the process entrusted to construct that proof. Conversely, an HTTP-provider capability does not establish that a deployed application sends secrets to a remote operator. Endpoint selection must be observed at the relevant deployment.

The official ZKLoan and Leaderboard examples illustrate this distinction. Their examined browser paths construct an HTTP proof provider from the connected wallet’s prover URI. Statements about data remaining on the user’s machine therefore require an account of that selected URI and its locality, rather than an inference from the presence of zero-knowledge code (ZKLoan record; Leaderboard record).

ZKLoan also supplies an epistemic boundary. Its example attestation API checks field presence and signs caller-supplied credit attributes; its circuit verifies a signature under the registered provider key. The signature establishes a relation to that key. Establishing the truth of the attributes requires a separate attestation basis. The examined handler contains no authentication step, but this source observation is not a report of an exploited production service (API record; circuit record).

4. Discovery Keys and the Meaning of Selectivity

The cited indexer exposes a connect(viewingKey) mutation accepting a shielded secret encryption key and returning a session identifier. It encrypts stored key material, hashes it for deduplication and reconstructs the secret during server-side relevance tests. At-rest encryption protects one storage boundary; processing the reconstructed key is another (decoder record; storage record; scan record).

A wallet-session key used to test transaction relevance differs from a token revealing one selected transaction or proposition. Transaction-selective credentials can be designed at the application layer, but their properties cannot be read into a session API accepting a broader discovery key. “Selective disclosure” needs an object and a scope.

The examined Shielded Wallet 3.0.2 code takes another path: it subscribes to global Zswap events using a cursor and filters locally with wallet secrets. The unshielded wallet supplies its public address (local filtering record). These source paths provide alternatives with different custody arrangements. They establish neither the proportion of users on each route nor a ranking of deployed wallet privacy.

Public and concealed fields also coexist. The cited indexer schema exposes contract addresses, public state, entry points, events, commitments, nullifiers, ciphertexts and maintenance authority. Public transcripts carry declared effects. An application can protect witness contents while making other relations observable. Evaluating that design requires specifying the protected attribute and the information available in the surrounding record (public surface record).

5. Privacy That Must Be Maintained

A private contract remains usable only while the network accepts the relevant proving and verification machinery. Midnight’s Contract Maintenance Authority can change its committee and insert or remove verifier keys. The cited semantics permit the contract address, application ledger state and balance to persist across an authorized key change (capability record). Address continuity therefore does not identify an unchanged accepted circuit.

The default depends on the entry point. The raw ledger constructor creates an empty maintenance committee with threshold one, which cannot authorize an update. The cited high-level deployment helper samples a signing key when its optional input is omitted. The resolved Compact.js package also implements a one-member, threshold-one authority in that case (ledger record; helper record; package record).

A new retrieval reconstructed nine selected deployment sites in official application and scaffold repositories. Each selected call omits the optional signing key. Eight repositories supply a lockfile: seven resolve Contracts 4.1.1 and Compact.js 2.5.1; Counter resolves Contracts 4.0.4 and Compact.js 2.5.0. The corresponding package archives and integrity values were recovered, and their implementing members were re-extracted. Create-mn-app’s template declares package versions, but a generated application’s lockfile is unavailable. This is a purposive source comparison, including test paths, not an ecosystem prevalence estimate.

The arrangement carries a continuity obligation as well as an authority. Generating a key is not the same as retaining it. The examined Private Party manual test receives a maintenance signing key, proves and submits the deployment, and then persists application private state without persisting that key in the same function. That identifies a handoff to examine, rather than establishing an actual lost-key incident or the behavior of every surrounding program (key custody record).

Counter presents a different issue. Its cited storage password is derived deterministically from a public coin key. The resolved private-state provider encrypts private state and stored maintenance keys through that password-backed layer and warns against public material. Obtaining an encrypted database and the relevant public key remains necessary for the exposure described by this design observation (password record). No exploitation or deployed-user impact is established.

The institutional question is how an application makes this authority understandable and durable. A custody statement should identify the committee, threshold, key-generation and storage path, recovery arrangement and verifier-key history. A user deciding whether to rely on a contract needs more than its address; the authority capable of changing its accepted operation matters as well.

6. Network configuration and access

The source chain extends beyond the application. The cited node starts AURA, GRANDPA and BEEFY services. Its selection machinery consumes Cardano candidate data and an epoch nonce alongside Midnight’s D parameter. Development code gives Root authority over system parameters and supports federated approval through Council and Technical Committee bodies. These are source-level mechanisms; the cited chain specification’s keys and thresholds are not automatically the deployed membership at a later block (service record; selection record; governance record).

The new network collection preserves a more complete point-in-time observation. The responding endpoint returned finalized hash 0x8eb072a6592b2d6e91767580a892918b25893ce60e356086c631a25687dec3b0, whose header number was 3,060,710. Fixed-hash calls returned runtime specVersion 1000300 and code hash 0x39568eeb0802fa59d74ac0bc5c7ab62fc05c23ea947937458a4b011558516138. The node reported client version 1.0.400-c338b9ac. The public repository API did not resolve that client suffix; no source-to-runtime bridge is inferred.

At that hash, D specified 130 permissioned entries and zero registered entries. AURA and GRANDPA runtime API responses each decoded to 130 authority entries under 13 distinct keys, each occurring ten times; GRANDPA’s entries carried unit weights. An epoch-scoped committee response separately reported the same multiplicity. Authority entries are not independent organizations. The result makes that measurement distinction concrete without alleging an attack or identifying control of the keys.

The freshly retained tokenomics PDF identifies itself as May 2026, version 1.81. On printed page 45, physical PDF page 46, it states that the Foundation operates two of thirteen federated nodes and contracts and pays the other operators (Midnight Network 2026, 45). This is the project’s institutional account, not an independently reconstructed mapping from organizations to the queried cryptographic keys. Both records matter, and their relation remains unverified.

Public-service access changed during the same period. The current documentation source says the Midnight-hosted Mainnet and Preprod endpoints were retired and directs users to token-authenticated Blockfrost services. The live documentation request returned 429; the exact repository source at 61f60097aef76c946a151b4bbb9357af7cf5123f was recovered instead. The documentation also says the old Mainnet RPC may continue answering temporarily. It did answer the observation above. Availability of that retired endpoint does not establish a supported future access route.

This migration is relevant to provisioning and access, while proving custody remains a separate question. A provider serving public state is not thereby shown to receive a user’s proof preimage or discovery key. A complete application account must connect its node, indexer, prover and wallet paths rather than infer one recipient from another service’s hostname.

7. What a Formal Result Settles

Kachina formalizes a class of private smart contracts through state transition, explicit leakage and dependency functions in an ideal NIZK setting over a simplified ledger. Its stated interaction and construction limits matter when connecting that model to implementation (Kerber et al. 2021; model records). A refinement argument from Compact, ZKIR, the prover, wallet, indexer and runtime to that model is not established by this study. Structural resemblance supplies no such argument.

The ledger specification itself excludes a proof of complete Midnight behavior and leaves parts of the system outside its scope. The implementation contains private/public transcripts, declared effects and a richer Zswap structure. Zswap supplies a relevant distinction between stages of information use: partial swap transactions expose the asset imbalances needed for matching, while balanced transactions conceal amounts and types under its model. Its authors leave integration with private smart contracts as an open question (Engelmann et al. 2022, 508–509). That result concerns the specified transaction construction and adversarial view; it establishes no correspondence with the current Midnight implementation or the custody of an application’s proving material.

Cryptographic and audit records deserve equally specific treatment. The pinned proof family uses PLONK-related machinery and KZG commitments over BLS12-381. Fixed proof constants for particular Zswap and DUST operations do not establish constant size for arbitrary contract proofs. A development IVC module’s stated folded-step behavior does not establish its integration into the separately examined ledger lock. The trusted-setup repository documents ceremony lineage and a verification procedure; its full multi-gigabyte contribution chain was not replayed here. Remediation notes and unaudited-library disclaimers describe named scopes and revisions (Gabizon et al. 2019; proof record; dependency record; setup record; audit record).

The compiler fixtures establish selected source-analysis behavior, package members identify default-generation code, and live responses record what one endpoint returned for a fixed hash and named epochs. Joining those observations into an application privacy claim still requires the application’s actual information path.

8. Method and Further Inquiry

The method combines release-compiler fixtures, pinned source paths, application lockfiles and package members, and dated network responses. These establish different parts of the information path: permitted source influence, material supplied to a prover, discovery-key processing, maintenance defaults and returned authority configuration. The comparisons do not join those parts into an observed deployed application.

The application comparison follows nine selected official deployment call sites, including tutorials and tests. It establishes neither dominant third-party practice nor private-state handling in a deployed instance. The compiler experiments comprise ten fixtures on a named macOS release: four rejected unmarked flows and six accepted disclosed, private-intermediate or predicate cases. They make no whole-language soundness claim. The network sample uses one still-answering retired endpoint; it is not an independent validator census, and epoch queries are kept distinct from fixed-block calls.

An application-level follow-up could join four records: its compiled public effects, the actual proof-provider destination, discovery-key custody and maintenance-authority history. That would turn an architectural possibility into an observed information path. Consent, recipient obligations, retention and recovery could then be evaluated in their application context. Separately, contract-level measurements could examine which maintenance authorities are retained, exercised or lost. Neither prevalence nor institutional motive should be supplied by a repository count.

Conclusion

Midnight’s compiler protection is real at the tested boundary. Programmable privacy then depends on further allocations: who constructs the proof, who can discover records, which public effects an application produces, who maintains its accepted verifier keys, and which institutions keep the network and its access services operating.

An application privacy claim must identify the information encountered by its verifier, proof service and key-holding indexer, together with the authority that can change its accepted verifier keys. Observing those arrangements would permit an assessment of agency, appropriate use and continuity in a particular application. The source reconstruction identifies what to inspect; it leaves that claim about practice open.

Appendix. Cardano integration boundaries

The cited implementation distinguishes User Transfers, which support recipient claimability, from Reserve Transfers, which distribute Midnight reserve value for block rewards. Candidate source maps a missing bridge checkpoint or main-chain script configuration to an inert provider state. Development source contains an additional approval-set mechanism. These are different source states whose relation to a deployed runtime must be established separately (flow record; configuration record).

On the Cardano side, the examined reserve validator accumulates ADA and cNIGHT from consumed inputs at the guarded credential and requires a continuing output preserving at least those amounts. That is a statement about the cited validator logic. Testing an actual Cardano transaction would require the complete inputs, outputs and relevant script identity; it does not require an atomic Midnight observation merely to evaluate the Cardano-side rule (preservation record).

A stronger joined claim about reserve consumption and Midnight issuance would need both sides' records and their correspondence. The historical July summaries recorded an empty checkpoint and an unspent Cardano reserve at separate times, but their raw responses were not retained. This revision does not promote those summaries into current bridge-state evidence or repeat them as a reproducible cross-chain observation. The source-level result remains useful: execution and continuity depend on external data and on authorities that configure how those data are recognized.

References

Engelmann, Felix, Thomas Kerber, Markulf Kohlweiss, and Mikhail Volkhov. 2022. “Zswap: zk-SNARK Based Non-Interactive Multi-Asset Swaps.” Proceedings on Privacy Enhancing Technologies 2022(4): 507–527. https://doi.org/10.56553/popets-2022-0120. Publisher PDF: https://petsymposium.org/popets/2022/popets-2022-0120.pdf.

Gabizon, Ariel, Zachary J. Williamson, and Oana Ciobotaru. 2019. “PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive Arguments of Knowledge.” Cryptology ePrint Archive, report 2019/953. https://eprint.iacr.org/2019/953. Consulted author PDF: https://research.protocol.ai/publications/plonk-permutations-over-lagrange-bases-for-oecumenical-noninteractive-arguments-of-knowledge/gabizon2019a.pdf.

Kerber, Thomas, Aggelos Kiayias, and Markulf Kohlweiss. 2021. “Kachina—Foundations of Private Smart Contracts.” In 2021 IEEE 34th Computer Security Foundations Symposium (CSF), 1–16. IEEE. DOI. Accepted author manuscript: https://www.pure.ed.ac.uk/ws/portalfiles/portal/217971659/Kachina_KERBER_DOA19042021_AFV.pdf. Formal theorem record.

Midnight Network. 2026. “Midnight Tokenomics and Incentives Whitepaper.” May 2026, version 1.81; edition captured October 17, 2026. Whitepaper.

Midnight Network. n.d. Trusted setup. Ceremony record.

Midnight Network. n.d. “Compact Language Reference.” Reference.

Midnight Network. n.d. “Environments and Endpoints.” Source revision 61f60097aef76c946a151b4bbb9357af7cf5123f, captured October 17. https://github.com/midnightntwrk/midnight-docs/blob/61f60097aef76c946a151b4bbb9357af7cf5123f/docs/relnotes/network.mdx.

Midnight Network. n.d. “Making a Decision on Contract Updatability.” Guide.

Nissenbaum, Helen. 2004. “Privacy as Contextual Integrity.” Washington Law Review 79(1):119–158. https://digitalcommons.law.uw.edu/wlr/vol79/iss1/10/.

Repository and network records

Compact, Ledger, and Application Stack

LFDT Minokawa. Compact compiler. Witness-protection record and disclose-removal record.

Midnight Network. Midnight.js source. HTTP proof-provider record and deployment-helper record.

Midnight Network. Wallet source. local WebAssembly prover record.

Midnight Network. Indexer source. viewing-key decoder record and wallet storage record.

Midnight Network. Shielded Wallet 3.0.2 source. local filtering record.

Proof implementation records

Midnight Network. Proof implementation and ledger dependency records. Proof-size model record and ledger proof-size record.

Consensus, Governance, and Bridge

Midnight Network. Historical candidate source snapshot 8af7d08a, reviewed separately from the October observation. The October client suffix c338b9ac did not resolve; this candidate supplies no source-to-runtime bridge for it. Bridge-handler record and checkpoint boundary record.

Midnight Network. Reserve-contract source. Reserve-logic record.

Midnight mainnet RPC. October 17, 2026 observation at finalized hash 0x8eb072a6592b2d6e91767580a892918b25893ce60e356086c631a25687dec3b0, block 3,060,710. Raw requests and response bodies are retained in the October reconstruction packet. The older July observation at block 1,866,780 remains a separate historical summary whose raw responses are unavailable.

Source Records

Repository excerpts and immutable locators

LFDT Minokawa. track-witness-data; LFDT-Minokawa/compact@cb5f94e; compiler/analysis-passes/track-witness-data.ss, including lines 18–23, 469–474, and 539–549. Git blob e2f3c59da06c7d4040aaf71adedb25fc5d448d4d. Policy. Analysis.

LFDT Minokawa. remove-disclose; LFDT-Minokawa/compact@cb5f94e; compiler/analysis-passes/remove-disclose.ss, lines 18–23. Git blob 7941daccb580a7981efb5f6b7a59a4de7a1530d0. Source.

Midnight Network. ProofPreimage; midnightntwrk/midnight-ledger@e1edad2; transient-crypto/src/proofs.rs, lines 696–729. Git blob 7b60458755b34124bebb8f11a1654e96c1edfede. Source.

Midnight Network. Proof-preimage serialization and provider calls; midnightntwrk/midnight-ledger@e1edad2; ledger-wasm/src/tx.rs, lines 370–443. Git blob 46f77545f605350fd37046834ecf29f8008aace6. Source.

Midnight Network. Privacy-sensitive transaction-data annotations at midnightntwrk/midnight-js@6120d35; packages/contracts/src/tx-model.ts, lines 25–50 and 195–239. Git blob 245a74b2fe41f1b4a5a67e8b50eeba0caac752c6. Source.

Midnight Network. HTTP check and prove; midnightntwrk/midnight-js@6120d35; packages/http-client-proof-provider/src/http-client-proving-provider.ts, lines 83–169. Git blob a37d71c6965cb53209884204d6d533e4732dae18. Source.

Midnight Network. Local WebAssembly proof provider; midnightntwrk/midnight-wallet@1b0bfb2; client at packages/prover-client/src/effect/WasmProver.ts, lines 146–255, Git blob 2740b2f56ce59ea0854bb4d55569509083ae4e0d; worker runtime at packages/prover-client/src/proof-worker.ts, lines 25–105, Git blob 5372e806d9053ab1315d81eea9ba0a41d120b086. Client. Worker.

Midnight Network. ZKLoan browser proof-provider configuration and attestation request; midnightntwrk/example-zkloan@a0846fd; zkloan-credit-scorer-ui/src/contexts/ZKLoanContext.tsx, lines 299–315 and 532–549. Git blob 194c098e9baa32271e7043a9403b232f54e64365. Source.

Midnight Network. ZKLoan private-state and witness material; midnightntwrk/example-zkloan@a0846fd; contract/src/witnesses.ts, lines 24–78, Git blob 9586afe2a6af6432d1f6df3a1b3b563aa505cc61. The UI passes amount and PIN as requestLoan circuit arguments in zkloan-credit-scorer-ui/src/contexts/ZKLoanContext.tsx, lines 518–588, Git blob 194c098e9baa32271e7043a9403b232f54e64365. Witness source. Circuit-call source.

Midnight Network. Open CORS policy, presence-only validation, and signing of caller-supplied ZKLoan values; midnightntwrk/example-zkloan@a0846fd; zkloan-credit-scorer-attestation-api/src/server.ts, lines 10–60, Git blob 3e5031aa0242cc9954b3bb941a0e6521bd3c42e8; and README.md, lines 232–236, Git blob 1faf964be0cf06631736abc8cebb6815455b58ad. Service source. Claim source.

Midnight Network. ZKLoan provider-signature verification in the examined circuit; midnightntwrk/example-zkloan@a0846fd; contract/src/zkloan-credit-scorer.compact, lines 117–132. Source.

Midnight Network. Leaderboard proof locality; midnightntwrk/midnight-leaderboard@e715681; browser provider at leaderboard-ui/src/contexts/BrowserLeaderboardManager.ts, lines 100–129, Git blob c42ee5aae0c8f8f54c5c5cd64c460fe7c49ae72d; README claim at lines 7–16, Git blob 5e0b9a5a0eb030f08c4810d6c57d416266145957; and secret witness at contract/leaderboard.compact, lines 68–79, Git blob b16567f833c560dd6422d5b67b5ac8f089c7a945. Provider source. Claim source. Witness source.

Midnight Network. Viewing-key API decoder; midnightntwrk/midnight-indexer@4565e5b; indexer-api/src/infra/api/v4/viewing_key.rs, lines 23–47. Git blob 27ebd172e86779bee9f4bb1b13a93fc69837d333. Source.

Midnight Network. Viewing-key encryption, hash identity, and session storage; midnightntwrk/midnight-indexer@4565e5b; indexer-common/src/domain/viewing_key.rs, lines 25–100, Git blob a24b45f89df85ce5928be36f79d2306812bb1a9b; and indexer-api/src/infra/storage/wallet.rs, lines 24–72, Git blob 197bb0cd027387c9d5bf973e276940a70c533d1a. Key source. Storage source.

Midnight Network. Shielded Wallet 3.0.2 global Zswap subscription and local secret-key filtering; midnightntwrk/midnight-wallet@7365f98; packages/shielded-wallet/src/v1/Sync.ts, lines 238–310, Git blob 01da3e663783d385e952b9c2e9d413bdcf0a7821; retained Connect query at packages/indexer-client/src/graphql/queries/Connect.ts, lines 16–22, Git blob 7ff33eec38e504c08170efbc36a09a5625e2dc9b. Sync source. Query source.

Midnight Network. New contract maintenance state; midnightntwrk/midnight-ledger@e1edad2; onchain-state/src/state.rs, lines 700–720. Git blob 585f6150625309168938d8818728240e8eaf893b. Source.

Midnight Network. Optional deployment signing key; midnightntwrk/midnight-js@6120d35; packages/contracts/src/deploy-contract.ts, lines 32–53 and 91–97. Git blob 5880b8f693c4710daf71016a1a7debda2ac3f40b. Source.

Midnight Network. Generated one-of-one maintenance authority; midnightntwrk/midnight-sdk@80e6707; compact-js/compact-js/src/effect/ContractExecutable.ts, lines 672–693. Git blob 115eb0c7fccf6d44fd976f5483c4186687a90133. Source.

Midnight Network. Stable deployment helper and nine retained application or scaffold paths that omit signingKey. Midnight.js 5f8a5d1, Git blob 21fe1c30af1b59b6a8862aa95968580f97449709; create-mn-app d159206, blob a65c5c6ba4fb15ebd9b5bd911fd0111d9f3c6336; Battleship 7512cb3, blob 33bb2a6f9277e51dea51fac0186538e0f2e4fe14; BBoard 0b68b23, blob f19f2021b3a13255f46a0010da3fb5dadabc84f4; Counter d7dd408, source blob 4b044d71958dbedcdae711eb11f12d3aedd1e867 and lockfile blob 6807510debf413a0327ad60c5087721a284c64a3; Hello World 96f323b, blob 0b2dac93dcedbd8e569da026e34ae9b56aac0201; Private Party 837975a, blob 4b01306909f7b763320fbb9841b18ec21d927db6; ZKLoan a0846fd, blob 194c098e9baa32271e7043a9403b232f54e64365; Leaderboard e715681, blob 065d5e5782963d652c038e9681c3baad1c8f85e5; Wallet DApp 457b589, blob 1398a923eda900cf239d85a9a4d798cda1280a72. Counter’s lock resolves Contracts 4.0.4 and Compact JS 2.5.0; retained archives have SHA-256 d0c45a1c0b8b2ef72038d3781490d7b8071ecb8a588a1e9519cfe3a22b735284 and fc699818139d7abe8429d9499877e2b93435ffb16b1cde968ec28b728ccf7fb0. Seven other repositories have retained locks resolving Contracts 4.1.1 and Compact JS 2.5.1. Create-mn-app declares Contracts and Protocol 4.1.1 in its template manifest; its generated application closure is unavailable. Helper. Scaffold. Battleship. BBoard. Counter. Counter lock. Hello World. Private Party. ZKLoan. Leaderboard. Wallet DApp.

Midnight Network. Midnight.js 5f8a5d1 returns an unproven deployment’s maintenance signing key in private deploy data at packages/contracts/src/unproven-deploy-tx.ts, lines 109–156, Git blob a554221f1afacfd12a37fc50ea70807690d9c980. Private Party’s manual path proves and submits that deployment, then persists only application private state at midnightntwrk/example-private-party@837975a, src/test/party.test.ts, lines 410–445, Git blob 4b01306909f7b763320fbb9841b18ec21d927db6. Its declared Contracts 4.1.1 profile resolves Compact JS 2.5.1; the retained Compact archive SHA-256 is df8be5fe83483bcda5fbade157be7423c5833c3a44dc777a908026ad9fa13a67, and its ContractExecutable.js member SHA-256 is 173260f05faa4e61a60f54db774e8576ae7bfdd6e535a5105ca2b2c3b7bcc2a6. Deploy-data source. Tutorial source.

Midnight Network. Counter derives its storage password from a public coin key; midnightntwrk/example-counter@d7dd408; counter-cli/src/api.ts, lines 529–548, Git blob 4b044d71958dbedcdae711eb11f12d3aedd1e867; exact lockfile lines 607–619, Git blob 6807510debf413a0327ad60c5087721a284c64a3. The lock selects Level Private State Provider 4.0.4; retained archive SHA-256 4f96b81d08e734925e2f0ff2b4eb7520b58b8781afc88ff2504b93c70e58c350. Its dist/index.mjs member, SHA-256 4b9dd81b306945488776f58ec030fa28a0578bd47286b701754f1fff41360a4a, implements the password-backed encryption of private state and stored maintenance keys. The dist/index.d.mts declarations, SHA-256 f59264ec30a46f158f691eae586b98eb8e71b4990ac35a509e286becb450a774, warn against public material. Examined source revision 5f8a5d1 carries the same warning, Git blob f14bf07e708f33ccf0036a0611e8b1dd834dd55b. Example source. Exact lock. Provider source.

Midnight Network. Formal-security and specification scope; midnightntwrk/midnight-ledger@e1edad2; spec/properties.md, lines 1–6, Git blob cb5182c04a75b66c7df78438bca31dafc060db6a; and spec/README.md, lines 8–16, Git blob a8b3188c33d8f36fa86c8e3a29e8327f1e1e48fd. Properties. Scope.

Kerber et al. Kachina theorem; tkerber/kachina@f97ec7e; proof/theorem.tex, lines 1–6. Git blob d679d07b99fc1b9554afa31c78f19368e83a4d44. Source.

Midnight Network. Proof-size cost model used by ledger proof-system family; midnightntwrk/midnight-zk@0e3ebfa; proofs/src/dev/cost_model.rs, lines 129–250. Git blob a6d71871e99b2bca84bafde6aba8f970c9eefcdf. Source.

Midnight Network. Zswap and DUST proof constants and tests; midnightntwrk/midnight-ledger@e1edad2; zswap/src/structure.rs, lines 629–633, Git blob b21db4eb7db151cad58d9c73e9ddf2487bafeddf; and ledger/src/dust.rs, lines 2101–2144, Git blob 70bf0e74a8f08585d5792f27017921a13c8e7713. Zswap source. DUST source.

Midnight Network. AURA, BEEFY, and GRANDPA service startup; midnightntwrk/midnight-node@706fc087; node/src/service.rs, lines 744–898. Git blob 65f8abaa4bd13bda914eb5ccdabae73ab7811bd0. Source.

Midnight Network. Cardano-derived authority-selection inputs; midnightntwrk/midnight-node@706fc087; partner-chains/toolkit/committee-selection/authority-selection-inherents/src/select_authorities.rs, lines 14–58. Git blob 6f4e464292a69a468713a48cb1fc208db8a08178. Source.

Midnight Network. Approved-motion Root dispatch; midnightntwrk/midnight-node@706fc087; pallets/federated-authority/src/lib.rs, lines 267–318. Git blob 54c1b8250434a67020a3716ff809921ec702a316. Source.

Midnight Network. Bridge transfer handler at the separately pinned historical candidate source; midnightntwrk/midnight-node@8af7d08a; runtime/src/c2m_bridge.rs, lines 25–88. Git blob 9bddd72de27b50fd68ad1ea8ca165a9688a8a829. Source.

Midnight Network. Bridge inherent-data provider configuration boundary at the separately pinned historical candidate source; midnightntwrk/midnight-node@8af7d08a; partner-chains/toolkit/bridge/primitives/src/lib.rs, lines 411–428. Git blob 837af976cb4d21aa1798b610a5d8c2cb8a14b7ce. Source.

Midnight Network. Documented Reserve Transfer and User Transfer effects at development revision 706fc087; docs/c-to-m-bridge.md, lines 13–34. Git blob c05a920c84fa8efd5a6fb3d99f491122bfd8a150. The documentation distinguishes reserve distribution for block rewards from recipient claimability and limits the approval-set special case to User Transfers. Runtime identity at the recorded head remains unresolved. Source.

Midnight Network. Reserve value-preservation rule; midnightntwrk/midnight-reserve-contracts@3eecaa0; lib/logic/script.ak, lines 14–77. Git blob 998183e01fb50ae5da47dc65a7bb852ccbe02eee. Source.

Midnight Network. Server-side wallet connection and relevance scan at midnightntwrk/midnight-indexer@4565e5b: mutation blob 69d55e013a019459725b5371f0a3844a6eff529d; schema blob 66eab2bf6139fe74ab965ec4fea44d7ef1bee7d8; transaction-relevance blob f8a20722b822efa64f68765a91d126c74eb00fcb; wallet-scan blob a1d37bf61f2e0a69d9b95a4a87a5f16c70dd9df6. The transaction-granular documentation and wallet-session API are retained at midnightntwrk/midnight-docs@0771012, blobs 36c907a2774ffa7500afd96aace5afb559befa1a and ede6a4d8ff0b4ea9e0f315df0d7add518986ac92. Mutation. Scan. Documentation.

Midnight Network. Public contract and transaction fields in Indexer GraphQL schema v4, Git blob 66eab2bf6139fe74ab965ec4fea44d7ef1bee7d8. Ledger contract-call transcripts at midnightntwrk/midnight-ledger@e1edad2, blob acbb9f2f216c3041f54afc4480707c7a35c3ffc6; transcript structure blob 09fb1abc6bac5270588fac9d62b53cbe7b114980; declared-effects application blob bf7f0be835432d26c8e3c2e3f121b3d5aac0035a. Contract schema. Transaction schema. Contract call.

Midnight Network. Maintenance update types, application, and authorization at midnightntwrk/midnight-ledger@e1edad2: ledger/src/structure.rs, lines 2684–2722, Git blob acbb9f2f216c3041f54afc4480707c7a35c3ffc6; ledger/src/semantics.rs, lines 1472–1526, blob 7c423bfcd603bae3620e00637e6a2baf14c7b296; ledger/src/verify.rs, lines 1738–1787, blob 78c179480377e30656f13a318c01d18836ddb052. Types. Application. Authorization.

Kerber et al. Kachina model and stated limits at tkerber/kachina@f97ec7e: state and leakage, blob fc81a2a3d106d814292fe874092190efd35f9979; contract class, e5b65e8698f24bbc1c146ba10a6e17f19055cddc; emulation boundary, 0098598e7c3492fee8034f11e10b27308073725d; interaction boundary, 2642375f0aa39a5a12b3cb5620c82c3635f858e2; implementation boundary, 5c49dcb8c07d4a02241c2e670fb5c821d8068f2b; simplified ledger, fc9d7d6f8151691ba1f9e8e626446a2173da34dc. State and leakage. Class. Implementation boundary.

Midnight Network. Zswap proving test and implementation model at midnightntwrk/midnight-ledger@e1edad2: proving test blob 75a11ac5ef60a989ac0072f9580c6589c6faef38; contract-owned, segmented, and transient coin structure blob b21db4eb7db151cad58d9c73e9ddf2487bafeddf; executable intent and segment structure blob acbb9f2f216c3041f54afc4480707c7a35c3ffc6; explanatory intent specification blob 7bd6aa127a20454b9946760fd4cbf7fe6529ab0e. Zswap structure. Intent model. Proving test.

Midnight Network. Proof lineage and 128-bit truncated challenge record at midnightntwrk/midnight-zk@31435e9, proofs/README.md, Git blob 228665a0a9197fc6a52b1a9fc98eaef74f622690; truncation utility warning, blob bcdc707e94f01b44b7d5ac8f31bd7b810f16458c; ledger PLONK/KZG construction at midnightntwrk/midnight-ledger@e1edad2, blob 7b60458755b34124bebb8f11a1654e96c1edfede. Proof record. Ledger construction.

Midnight Network. Development IVC module at midnightntwrk/midnight-zk@31435e9, aggregation/src/ivc/mod.rs, lines 1–20, Git blob daf0dfc70e6586054abe4e5a4f5bcb375587e0e2. Examined ledger dependency lock at midnightntwrk/midnight-ledger@e1edad2, Git blob 6c42ead8aabb024d671e62b0d575b16a27a38108; no midnight-aggregation name appears in the retained Cargo manifests or lockfile. IVC. Dependency lock.

Midnight Network. Ceremony lineage, final artifact, verification procedure, and drand-derived final update at midnightntwrk/midnight-trusted-setup@3ea6102, README.md, lines 1–237, Git blob 5f594cfa428aa51e8865e2c957f739ba750fc416. Lineage and verification. Final update.

Midnight Network. Audit disclaimers and remediation history at midnightntwrk/midnight-zk@31435e9: Circuits README blob 7525b2ace124a75151ffff9b4fe669ea738e566e; Standard Library README blob 9736ed947e13bfd1b91a3a17676dce6c1774d343; Proofs changelog blob ee21f4b5415c72beb1d1f1ada50847071b536c9a; Circuits changelog blob 9104ef9ae5721f995b2745eb7578fe2377103685. Release-family disclaimers at 1c158e2: Circuits blob f413829c904a49ebab0d181f120bf5552ed4ca0b; Standard Library blob f2762e9320a0cfef96f60122fb4cecb3fb888fd1. Proof remediation. Revision disclaimer. Release-family disclaimer.

Midnight Network. Cardano follower health and block-production failure paths at midnightntwrk/midnight-node@706fc087: db-sync health blob 9e91e7fdb9b9223947d552c1065f29856ce5edcf; main-chain reference classification blob 21504e0aaf6b4ef94750be1a2ff1eea98dbc5f75; proposal and verification inherent-data blob 8391603523bfc4f2caed86d5c544bc0680f37945; proposal digest failure blob f14e83216b04e7e613dedbb47f09f5160b73635f; retry and rejection verifier blob bd53dea9ed4f2d610a7100466294dffa5a7f03ca. Inherent data. Verifier.

Midnight Network. D-parameter storage and governance origin at midnightntwrk/midnight-node@706fc087: system-parameters pallet blob 10f57bcb32528e02f7fbbe3c723b0d4541571ad1; runtime wiring blob 41b40d84e8ba83e940d31cead5f405abe7f7b23e. Storage. Runtime origin.

Midnight Network. Mainnet chain-spec membership and development federated authority at midnightntwrk/midnight-node@706fc087: mainnet specification blob 411e47099344f911ab9961e283e9b449ff72444a; threshold composition blob 41b40d84e8ba83e940d31cead5f405abe7f7b23e; Root dispatch blob 54c1b8250434a67020a3716ff809921ec702a316; Cardano reference replacement blob c49bc3658ae8db8287d44ffd7454f1368cddbf86. Chain specification. Thresholds. Reference replacement.

Midnight Network. Disabled on-chain GRANDPA and BEEFY equivocation-report paths in the development runtime; midnightntwrk/midnight-node@706fc087; runtime/src/lib.rs, lines 1515–1687. Git blob 41b40d84e8ba83e940d31cead5f405abe7f7b23e. Source.