ZKcaptcha — Now in Public Beta

Confidential Browsing
built on zkVerify

Verify personal attributes or browse privately without exposing emails, IPs, or credentials. Zero-knowledge proofs generated locally and verified scalably on zkVerify's blockchain.

Replace CAPTCHA with ZK proofs
Full-stack Confidential Browsing
Proof-based authentication

Powered by

zkVerifyHorizon Network
The Stack

Full-stack
Confidential Browsing

Everything you need to build private, proof-based verification into your app. From CAPTCHA to authentication — one stack.

Live

ZK CAPTCHA

Human verification, zero-knowledge proof

Replace traditional CAPTCHA with a zk-based human proof. Generates repeatable proof flows that are secure, privacy-preserving, and bot-resistant.

  • No more clicking traffic lights
  • Privacy-preserving (no behavioral tracking)
  • Single proof, unlimited verifications
  • Fallback for edge cases
Coming Soon

ZAuth Identity

Proof-based authentication

Prove account ownership from GitHub, Twitter, or any OAuth provider without exposing tokens or personal data. Login without passwords.

  • Login without passwords
  • Reusable identity proofs
  • No data silos or identity databases
  • Cross-app identity portability
Coming Soon

Proof SDK & Gateway

APIs for proof requests

Abstracts zk complexity for Web2 developers. Simple REST APIs to request proofs and verify attestations.

  • Drop-in SDK for any stack
  • Automatic proof generation
  • Real-time attestation status
  • Multi-chain settlement
Coming Soon

Browser Extension

Seamless proof generation

Makes proof generation invisible during normal browsing. Users generate proofs locally without leaving the browser.

  • Auto-prompt for proof requests
  • Local proof generation (WASM)
  • Proof caching & reuse
  • Privacy dashboard for users
Why ZAuth

Compare to traditional
verification methods

Feature
ZAuth
Traditional
Privacy-preserving
No behavioral tracking
No data storage required
User-controlled identity
Repeatable proofs (no reCAPTCHA)
Cross-platform compatible
Bot-resistant
Easy integration

Traditional methods include reCAPTCHA, password-based auth, OAuth, and passwordless solutions

How it works

From request to verification
in four simple steps

01

App requests a proof

Your app requests a specific proof (e.g., "prove you own this GitHub account") via our SDK.

02

User generates proof locally

The user's browser generates a ZK proof locally using our SDK or extension. No data leaves their device.

03

zkVerify verifies in <1s

The proof is submitted to zkVerify, which verifies it ultra-fast and creates an on-chain attestation.

04

App receives attestation

Your app queries a simple API to check the attestation. No need to handle complex ZK logic.

Use cases

Where Zauth shines
across industries

Any scenario where you need to verify attributes without collecting or storing sensitive data.

Anti-bot & fraud prevention

Replace CAPTCHA with ZK proofs that distinguish humans from bots without invading privacy or frustrating users.

Age verification

Verify users are over 18 or 21 without collecting or storing their ID or date of birth.

Sybil resistance

Ensure one-person-one-vote or one-person-one-account without collecting personal identifiers.

Credential verification

Prove ownership of accounts (GitHub, Twitter, email) without exposing tokens or OAuth tokens.

KYC automation

Streamline KYC by verifying attributes (residency, accreditation) without exposing underlying documents.

Exclusive access

Grant access to exclusive content or features based on verifiable attributes without data collection.

For developers

Build with Zauth
without being a ZK expert

We handle the complex ZK stuff. You just integrate simple APIs and get verifiable attestations back.

Drop-in SDK

Install via npm, integrate in minutes. Full TypeScript support with type-safe APIs.

Simple REST API

Request proofs, check status, fetch attestations — standard REST endpoints, no ZK expertise needed.

Comprehensive docs

Guides, tutorials, API reference, and example apps. From "hello world" to production in no time.

Fast verification

zkVerify handles proof verification in under 1 second. Your app just checks the attestation.

example.js
// Request a proof
const proofRequest = await Zauth.proofs.request({
  type: "github-account",
  params: { owner: "user" }
});

// Check status
const status = await Zauth.proofs.status(proofRequest.id);

// Get attestation
const attestation = await Zauth.attestations.get(proofRequest.id);
console.log(attestation.valid); // true