Free tier includes 3 repositories · Enterprise from custom pricing See pricing →
V-1.0 · Living Whitepaper · 2026

Check your code is
quantum-ready.
Without showing your code to anyone.

zkAssess scans your codebase for quantum-vulnerable and classically weak cryptography, then issues a signed, cryptographically committed attestation. The analysis runs entirely inside your trust boundary — only a redacted score ever leaves it.

repository — full visibilityowner's machine
import crypto from 'node:crypto'
crypto.generateKeyPair('rsa', { modulusLength: 1024 })RSA_USAGE
crypto.createHash('aes-256-gcm')
.update(payload, 'utf8')
crypto.createHash('md5')MD5_HASH
trust boundary
attestation — signed & redactedverifier receives
score39 / 100
pattern_set_version2026.07.1
policynist-cnsa-2.0
🔒 HMAC-SHA256 verified
Simple, Transparent Pricing

The price is the point.

No sales call required to get a number. Start free, scale as your repository count grows, and see exactly what changes at each tier.

Hacker
Free
No credit card needed
Best for trying it out
  • 3 repositories scanned per month
  • Baseline compliance profile only
  • Community support
Start free →
Team
$499/mo
25 repositories included
Best for a single engineering org
  • 25 repositories, re-scanned every commit
  • All 5 preset compliance profiles
  • CI/CD integration
  • Email support
Integrate now →
Enterprise
Custom
Unlimited repositories
Best for full-scale deployments
  • Unlimited repositories
  • On-prem / TEE deployment option
  • 24-hour SLA, 7 days a week
  • Custom compliance profiles
Speak to founder →
All tiers: source code never leaves your boundary — pricing scales with repositories scanned, not with what we see.
The Problem

Most organizations don't know what cryptography they're running — or where.

Cryptography accumulates quietly: an old library here, a half-finished migration there, a config file nobody's revisited in years. Ask most security teams for a complete, current picture of every algorithm running across their systems, and the honest answer is that no one fully has one.

Hidden risk, revealed

zkAssess surfaces the quantum-vulnerable and classically weak cryptography that's already running in production — the risk you can't fix because no one's found it yet.

Scattered pieces, one picture

Findings across every repository and service are pulled into a single, reproducible inventory — not a pile of disconnected scan results nobody has time to reconcile.

Guesswork, automated away

Deterministic, versioned pattern matching replaces manual code review and best-guess audits with something any verifier can reproduce.

Continuous, not one-time

Run zkAssess in CI on every commit, and your cryptographic inventory stays current instead of going stale the moment something changes.

Continuous visibility replaces guesswork with clarity — so you can move toward the post-quantum transition with confidence, not uncertainty.

Never leaves your boundaryDeterministic, not discretionaryEvery finding is provableReproducible by any verifier Never leaves your boundaryDeterministic, not discretionaryEvery finding is provableReproducible by any verifier
Zero-Knowledge, Literally

"Zero-knowledge" isn't a slogan here. We mean it in the most literal sense: we never take your code or your data.

0

We don't take your code. We don't take your data.

zkAssess doesn't upload your repository, doesn't cache your source, and doesn't retain a copy anywhere on our side — because it never runs on our side. The scanner executes entirely inside your machine, your CI runner, or your TEE. The only thing that ever reaches us is a signed, redacted attestation: a score, which pattern IDs matched, and a cryptographic proof that each finding is real.

We can't leak what we never had. That's not a policy promise — it's the architecture.

We search blind. Then we plan around your company.

The pattern engine doesn't read your business logic, your comments, or your architecture to understand what your product does — it only matches lines against a fixed, versioned list of known cryptographic patterns. It's deliberately blind to everything except "does this line match a known-weak or known-safe primitive."

Once that blind scan produces findings, that's where your company enters the picture: your scoring policy, your compliance profile, your risk tolerance decide what the findings mean and what happens next — never the other way around.

01 · Why Zero-Knowledge Doesn't Directly Apply

A security scan is open-ended discovery. A zero-knowledge proof needs a known claim.

A ZK proof establishes that a specific, already-identified statement holds — it can't discover a vulnerability nobody has named yet. So zkAssess splits the problem into the two shapes each technique actually handles.

PHASE 1

Discovery (open-ended)

A deterministic scanner checks every line against a fixed, versioned list of known-bad and known-good cryptographic patterns. This needs full visibility, so it stays inside your trust boundary — local, in CI, or inside a TEE.

PHASE 2

Attestation (narrow, known claim)

Once a finding exists, "this exact redacted line is really present in a file with hash H, at line N" is precisely the narrow, provable statement that selective-disclosure techniques are built for.

Inside the repository owner's trust boundary
Pattern engine scans the repository
Findings redacted at the point of detection
Merkle tree built, inclusion proofs generated
Score computed, attestation signed
Crosses the boundary
Signed attestation only
02 · Detection Engine

Deterministic pattern matching. Not an AI's opinion.

"This codebase uses RSA" is checkable. "This codebase is insecure" isn't — it's an unbounded judgment call. zkAssess keeps the provable part of the pipeline entirely deterministic: regex and syntax matching against a public, versioned pattern list.

CategoryExamplesWhy it matters
QUANTUM-VULNERABLE RSA, ECDSA / ECDH / EdDSA and named curves, Diffie-Hellman, DSA Breakable by Shor's algorithm on a sufficiently large quantum computer
CLASSICALLY WEAK MD5, SHA-1, DES, 3DES, RC4, RC2 Already broken or impractically weak, independent of quantum computing
CONFIGURATION ECB mode, RSA keys under 2048 bits, static IVs / salts The primitive may be sound but the usage pattern undermines it
QUANTUM-SAFE AES-256, ChaCha20-Poly1305, SHA-256/3, BLAKE2/3, ML-KEM, ML-DSA, SLH-DSA, Falcon Positive confirmation of already-good cryptographic hygiene
03 · Scoring Model

One reproducible formula. As many risk postures as you have compliance regimes.

The baseline score is simple and public: findings are weighted by severity, summed, and subtracted from 100. Because the formula and weights are versioned alongside the pattern set, any verifier can recompute the same number from the same inputs.

Score = max( 0, 100 − Σ w(severity) · [category ≠ quantum-safe] )
Critical 25
High 12
Medium 5
Low 2
Informational 0
Default severity weights. One critical DES finding plus two high findings (RSA, MD5) → 100 − (25+12+12) = 51 under baseline.

No single formula reflects every organization's risk tolerance. A payments company may need any broken cipher to be an automatic failure; a government contractor may need quantum-vulnerable findings weighted well above everything else. zkAssess makes the weighting function itself a declared, versioned input — it travels with the attestation, so a policy can never be quietly loosened after the fact.

Baseline

Table 4 default weights. No category multipliers.

PCI-DSS

Any classically-weak cipher is an automatic failure. ECB mode and static IVs weighted above baseline.

Healthcare / HIPAA

Balanced weighting across weak and quantum-vulnerable categories; emphasis on config weaknesses common in legacy health-record systems.

Government / NIST CNSA 2.0

Quantum-vulnerable multiplier raised well above baseline. Quantum-safe bonus enabled to track migration progress.

Startup / Prototype

Lower overall weights, no automatic-failure thresholds — visibility and trend-tracking over a hard gate.

04 · Privacy-Preserving Attestation Layer

Redact at detection. Commit with Merkle proofs. Sign the result.

A finding is recorded with only a bounded window of context around the matched text — by default twenty characters on either side. Every other line in the file is hashed into a Merkle tree and never retained. A verifier can confirm a flagged line is genuinely part of a file with a given hash, without ever receiving the file.

The verifier receives

  • The overall quantum-readiness score
  • Which pattern IDs matched, and how many times
  • A short, bounded redacted snippet per finding
  • The file path and line number of each finding
  • A cryptographic Merkle inclusion proof per finding
  • The pattern-set version, for reproducibility

The verifier never receives

  • The repository itself, in any form
  • The full contents of any scanned file
  • Surrounding code, business logic, or comments
  • Any file that contains zero findings
  • Secrets or proprietary logic incidentally present
  • Your identity, unless you disclose it out of band
Honest about V0.1

A Merkle proof is an honest, buildable stand-in. Not the end state.

A true zero-knowledge circuit would go further than what the current reference implementation does. We'd rather tell you where the line sits today than overstate it.

What holds today

  • Attestations can't be forged without the signing key
  • Tampering with score or proofs invalidates the signature or the Merkle verification
  • The pattern set is public, versioned, and shipped with every attestation

What's not solved yet

  • Redacted snippets are plaintext — a verifier with enough findings could infer file structure
  • Line position and hash are disclosed, which could confirm a guess at known file contents
  • Trust in the attestor is currently single-party, not decentralized
Why zkAssess Costs Less

The mechanism changed. The price should too.

Traditional code security audits are priced around expensive things: consultant hours, manual review, and the liability of a third party holding your source. Remove those, and the price changes.

01 · SCOPE

One scanner, every repository

The same deterministic pattern engine runs across every language and framework your findings cover — no per-vendor tooling to stitch together for different parts of the stack.

02 · ARCHITECTURE

No liability to price in

Your code never leaves your boundary, so there's no data-handling insurance, no breach liability, and no custody chain to price into the bill the way a traditional third-party scanner has to.

03 · DETERMINISM

Pattern matching replaces manual review

A versioned, public pattern set does the work a human auditor would otherwise bill hours for — reproducible by anyone, not billed by the hour.

Built On Public Standards

No certification claims we haven't earned. Just what's actually true today.

We'd rather list what genuinely holds than borrow a badge. Here's what's real about zkAssess right now:

PCI-DSS profile
·
HIPAA profile
·
NIST CNSA 2.0 profile
·
Public, versioned pattern set
·
HMAC-SHA256 signed attestations
05 · Roadmap

Every stage is a version bump toward a stronger guarantee.

Highest priority

A true zero-knowledge circuit

Replace the Merkle inclusion proof with a circuit that proves a pattern match exists in a committed file without revealing the line's content or position at all.

Trust model

Decentralized multi-attestor network

Independent attestor nodes, selected through an auction mechanism with economic staking, remove the need to trust any single signer.

Outsourced scanning

TEE-based analysis

A split-trust architecture across two Trusted Execution Environments, for cases where even the repository owner's own infrastructure shouldn't see plaintext.

Signature layer

Post-quantum signatures

ML-DSA (Dilithium) as an alternative to HMAC-SHA256 for public, many-verifier attestations — keeping the protocol's own signatures quantum-resistant end to end.

Coverage

Expanded pattern coverage

TLS and ciphersuite configuration scanning, dependency-manifest checks for known-vulnerable packages, and AST-based matching to cut false positives and negatives.

Your Devs Will Like This

Drop it into CI. Get an attestation back.

  • Runs as a step in your existing CI pipeline — no separate service to stand up.
  • Self-serve — no sales call required to run your first scan.
  • Preset compliance profiles, or write your own scoring policy in a few lines.
  • Output is a signed, redacted attestation — safe to attach to a PR or ship to a customer.
zkassess.ymlready
# .github/workflows/zkassess.yml
steps:
  - uses: collatzlabs/zkassess-action@v1
    with:
      policy: 'nist-cnsa-2.0'
      fail-below: '70'

# Output: signed attestation, posted to the PR
# score: 82/100 · pattern_set_version: 2026.07.1
Get Started

Assess your codebase. Keep it yours.

Run the analysis inside your own boundary. Share only what a verifier needs to trust the result.

No sales call to start
3 repositories free every month
Published pricing, no hidden tiers