SDK 2.0 beta available
Zero-knowledge authentication

Prove you’re you.
Reveal nothing else.

Build your first secure application with zero-knowledge proof authentication in minutes.

ZKAuth zero-knowledge lock
proof material is created locally
How the proof works

The experimental password proof is generated locally.

01

On the device

Argon2id and Poseidon derive a commitment; the research client generates a Groth16 proof locally.

02

Over the wire

ZKAuth receives proof and public-signal material rather than the plaintext password.

03

On the server

The experimental verifier checks the proof. Challenge binding and independent review remain required before production use.

Integrate in minutes

A real login in a few lines.

Use the zkauth-client SDK, or call the HTTPS API from any language. The proof handshake happens for you.

// Browser: call your own backend. No project key here.await fetch('/api/auth/login', {  method: 'POST',  headers: { 'content-type': 'application/json' },  body: JSON.stringify({ email, password }),})
// app/api/auth/login/route.ts, server onlyimport { ZKAuthSDK } from 'zkauth-client'
const projectKey = process.env.ZKAUTH_PROJECT_API_KEYif (!projectKey) throw new Error('ZKAuth server key is missing')
const zkauth = new ZKAuthSDK({  apiKey: projectKey,})
Radical honesty

We’d rather be precise than impressive.

Security writing is easy to fake. So here is the exact boundary, in plain language, and endpoints you can call to check it.

boundary // what we don’t claim
  • 01No SOC 2, HIPAA, or completed external audit.
  • 02No post-quantum security.
  • 03No broad WebAuthn authenticator guarantees.
  • 04Pro billing is early access; refund and renewal evidence is still limited.