All versions
v1.0.0Outdated — latest is v1.1.02026-06-07

zkao 1.0: Now Public, with Solidity and Sharper Flows

zkao 1.0 is our move out of private beta into a public, generally available release: the main version of the product. Access stays curated, with every team reviewed before scanning. This release also adds Solidity and EVM coverage with runnable proof-of-concept exploits, sharper analysis flows that find and confirm more real bugs, and triage that reinvests unused budget into deeper validation.

zkao is now public. Version 1.0 marks our move out of private beta into a generally available release: the main version of the product, ready for teams to rely on. Going public does not mean opening the floodgates. We still review and approve every team by hand before enabling scans, so the people running real code on zkao are teams we have vetted. It means we are confident enough in zkao to put our name on a 1.0.

This release also expands coverage to Solidity and EVM smart contracts with runnable proof-of-concept exploits, sharpens several of our analysis flows so they find more real bugs and validate them harder, puts more of your scan budget to work confirming findings, lowers the bar to launch our deepest scan, and brings a fully mobile-friendly experience to the whole app.


A public 1.0

zkao started as a private, invite-only beta. With 1.0 we are opening it up: anyone can request access, and approved teams get the full product. Access stays curated. We review and approve every team before turning on scans, so going public keeps the quality of a vetted, invite-only platform while letting any serious team apply. You get a public, dependable product without it becoming a free-for-all.

Solidity smart contract coverage

zkao now audits Solidity and EVM smart contracts. Scans cover the full range of on-chain vulnerability classes, including reentrancy, access control and upgrade flaws, arithmetic and rounding errors, oracle and price manipulation, signature replay, and token-integration bugs. When a high or critical issue is found, zkao reproduces it with a runnable proof-of-concept exploit, so each report comes with concrete evidence.

cryptopsy Finds More Crypto Bugs

Our cryptopsy flow now diffs an implementation against its specification, including the project's own paper or design notes and the standard it claims to follow, and flags where they disagree. It also targets a hard class of bug that functional tests miss entirely: cases where the output is correct but a security property is quietly broken, such as a biased or predictable nonce, a low-entropy value, a missing domain separator, or a value that leaks more than it should. These are reported even when they reduce a scheme's security without a full end-to-end exploit. cryptopsy is also sharper on JavaScript and TypeScript codebases, catching language-specific mistakes that silently weaken otherwise correct-looking crypto. This makes cryptopsy meaningfully better at finding real cryptographic weaknesses.

Sharper analysis flows

Two more of our core analysis flows got meaningfully better at finding and confirming real bugs, including on code earlier scans had already looked at.

snarksentinel, our zero-knowledge analysis flow, no longer sets aside a lead just because it cannot be settled by reading the code. When something looks wrong but is not certain, it now runs a quick, targeted experiment against the real code to decide whether it is worth reporting, so genuine bugs surface that a static read alone would have missed.

gestalt, which reasons about how your whole system fits together rather than one file at a time, now runs candidate findings through an end-to-end verification pass before reporting them. Cross-file issues are checked against how the pieces actually interact, so what reaches you is better validated and less noisy.

Triage puts your full budget to work

Multi-stage scans now run their later stages, such as exploit reproduction and finding validation, to full depth instead of stopping short. When the earlier analyzers finish under budget, the leftover credits flow to the final triage stage, which uses that headroom to confirm and pressure-test each finding more thoroughly rather than leaving budget unspent. As a result, scans tend to use more of the credits you allotted, getting closer to the budget you set. Scans still never exceed the budget you choose.

The deepest scans are easier to start

ZKAO Max, our most thorough scan, now starts at 10,000 credits instead of 15,000. Lowering the minimum makes it easier to kick off our deepest analysis on a project, so you can reach for the most exhaustive coverage without committing as many credits up front.

A more mobile-friendly experience

zkao now works well on phones and tablets. Tables, dashboards, scan pages, and findings reflow to fit smaller screens, dialogs and menus size themselves to the viewport, and the app picked up a proper icon for home-screen shortcuts. You can review scans and findings on the go without horizontal scrolling or clipped content.

Plan renaming

The paid plans have new names: Standard is now Starter, Pro is now Standard, and Critical is now Plus. Your subscription, credits, and limits are unchanged: only the names are different.

Enterprise plans and more ways to pay

Enterprise plans are now available for teams that need a custom credit volume. Contact us to set one up. You can also pay by bank transfer or USDC in addition to card.

Other Changes

  • Triage is more efficient: when an analysis flow already worked out how a finding is reached, triage now builds on that instead of redoing it from scratch, so more of your scan budget goes toward finding and confirming issues.
  • Connecting your GitHub account to add a private repository now uses a streamlined sign-in that only verifies your identity, so you no longer see an alarming permissions prompt.
  • When launching a scan you can now pick which branch to scan directly in the commit step.
  • Project members, not just admins, can now publish and manage a project's public reports.
  • Teammates who already have a zkao account now get an email when they're invited to a project, in addition to the in-app notification.
  • Findings the scanner couldn't conclusively confirm are now recognized across re-scans, so a recurring uncertain finding is grouped with its earlier sighting instead of resurfacing as brand new every time.
  • Inconclusive findings (issues the scanner couldn't confirm or rule out) now appear in your findings list, dashboards, and shared reports marked "Needs Review", not just on the individual scan page. Once you set a status on one, your decision replaces the marker.