Prove your security posture.Disclose nothing.
Every security review forces the same trade: to prove your codebase is healthy, you hand over your source, your CI logs, and your vulnerability findings. The evidence is the exposure. The verifier never needed it — they needed a boolean.
The asymmetry
One artifact. Two irreconcilable views.
Every number on the left is absent from the right — and absent from the chain. The verifier gets the boolean it actually needed.
user-name/repo-name · never written to Midnight
- Critical vulnerabilities0
- High vulnerabilities0
- Total vulnerabilities3
Private — not written to Midnight
npm CI Baseline v1 · satisfied
- No critical vulnerabilities
- At most 5 high vulnerabilities
- Lint check passed
- Build check passed
- Evidence validity no longer than 30 days
artifact 3d8f21a90b…03b41e
How it works
Four steps, with findings kept off chain.
- 01
Your CI measures
The repository's own workflow runs the checks and writes a small evidence artifact for the requested commit.
- 02
The local runtime commits
The paired runtime validates the GitHub run and artifact, adds a private salt, and derives the exact Compact commitment.
- 03
The commitment is anchored
Only the commitment enters Midnight, inserted into a historic Merkle tree. The evidence is nowhere on chain.
- 04
You prove, locally
A zero-knowledge proof generated on your machine shows the anchored evidence satisfies a published policy. One boolean is disclosed.
Why this needs Midnight
Remove the zero-knowledge layer and you are back to emailing a PDF.
Predicates over private data
A public chain would need the evidence on chain to check the policy. Compact evaluates the predicate and discloses only the result.
Compiler-enforced disclosure
Every disclose() is a deliberate hole a reviewer can audit. The comparison is disclosed; the operands never are.
Anonymous set membership
A historic Merkle tree lets a repository prove it belongs to the attested set without revealing which member it is.
Local proving
Proofs are generated on the developer's machine. The chain receives only public identifiers and the policy verdict.
Where it applies
Vendor security review
Answer fifty enterprise questionnaires without fifty NDAs and fifty document exchanges.
Supply chain assurance
A dependency demonstrates green CI and zero criticals continuously, without publishing a map of its weak points.
Continuous compliance
Per-commit control attestation with an expiry date, instead of an annual snapshot in a shared drive.
Attest your first repository
Sign in with GitHub. The workflow artifact is passed to your paired local runtime; only a commitment and verdict reach Midnight.