SΓ©lectionner une page
Sepolia Testnet Live Β· DSA Compliant

Age Verified.
Privacy Preserved.

The first ZK proof age verification solution hosted in Switzerland. Compliant with DSA, GDPR and NLPD.

Deploy in minutes.

πŸ‡¨πŸ‡­ Hosted in Switzerland
πŸ” ZK Proof Groth16
βœ… DSA Art.28 Compliant
πŸ”’ GDPR Β· LPD Β· NLPD
9.5KB
Widget bundle gzip
<5s
ZK proof generation
0
Personal data stored
546
Tests passing
The Problem

Current age verification methods
involve personal data processing

This creates compliance, security, and privacy challenges for both users and businesses.

πŸ”΄
Data-heavy verification
Personal data required
Stored and exposed
🟑
Complex compliance tools
Hard to integrate
High friction
🟒
PRIVEX ZK Age
No data. No storage.
Instant verification
How It Works

Three steps. Full privacy.
Zero personal data.

The user completes KYC only once. All subsequent verifications are 100% anonymous.

1

One-time KYC

The user verifies their ID document on privexzk.ch/verify. Cost: CHF 1.90. We only confirm age β‰₯ 18 β€” nothing else is stored.

β†’ ZK credential generated & downloaded
2

Credential stored locally

The JSON credential is stored on the user's device. No database. No server knows their identity. Valid for 1 year across all partner platforms.

β†’ Reusable on every integrated platform
3

ZK Proof generated locally

On your platform, the widget generates a cryptographic proof in under 5 seconds. Your server receives only the result.

β†’ { "verified": true } β€” that's it.
πŸ”’

Your nullifier secret never leaves the device. The ZK proof mathematically verifies the credential without revealing any personal information β€” not even to PRIVEX ZK Age.

Integration

From zero to verification
in minutes.

Add PRIVEX ZK Age to your platform with just a few lines of code. Compatible with HTML, React, Vue, PHP and WordPress.

⚑

Widget bundle: 9.5KB gzip β€” zero LCP impact

πŸ”’

Shadow DOM isolated β€” no CSS conflicts

πŸŒ—

Dark / Light mode auto-detected

🌍

Multilingual: EN Β· FR Β· DE Β· IT

πŸ›‘οΈ

Secret API key never exposed client-side

Get your API keys β†’

 src="https://cdn.privexzk.ch/age-widget.js">



  id="age-gate"
  data-platform-key="pk_live_xxx"
  data-min-age="18"
  data-verify-endpoint="/api/verify-age"
>
import { useEffect } from 'react'

export function AgeGate({ onVerified }) {
  useEffect(() => {
    window.PrivexAgeGate?.init({
      platformKey: 'pk_live_xxx',
      verifyEndpoint: '/api/verify-age',
      theme: 'dark',
      onVerified: (result) => onVerified(result)
    })
  }, [])

  return  id="privex-age-gate" />
}
// relay.php β€” keeps sk_live secret server-side
$body = file_get_contents('php://input');
$ch   = curl_init('https://api.privexzk.ch/verify/proof');

curl_setopt_array($ch, [
  CURLOPT_POST           => true,
  CURLOPT_POSTFIELDS     => $body,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER     => [
    'Content-Type: application/json',
    'X-API-Key: ' . $_ENV['PRIVEX_SECRET_KEY']
  ]
]);

echo curl_exec($ch);
// functions.php
add_action('wp_footer', function() {
  echo '
'
; }); // REST relay endpoint add_action('rest_api_init', function() { register_rest_route('privex/v1', '/verify', [ 'methods' => 'POST', 'callback' => 'privex_relay_handler', ]); });
Pricing

Clear, honest pricing.

Plans below are for businesses integrating PRIVEX ZK Age into their platform. No hidden fees. No surprises.

Scale
0.02 CHF /verification
Unlimited β€” pay only what you use
βœ“ Everything in Growth
βœ“ Rate limit: 200 req/s
βœ“ 99.9% SLA uptime
βœ“ Usage-based billing
βœ“ White-label available
Contact us
Starter
49 CHF /month
1,000 verifications / month included
βœ“ JS widget embeddable
βœ“ Analytics dashboard
βœ“ REST API + webhook
βœ“ Overage: CHF 0.05 / extra verification
βœ“ Email support
Get started
Growth
199 CHF /month
10,000 verifications / month included
βœ“ Everything in Starter
βœ“ Rate limit: 50 req/s
βœ“ 90-day log retention
βœ“ Priority support
βœ“ Overage: CHF 0.05 / extra verification
Get started
Additional information
πŸ‘€ End-user one-time KYC

CHF 1.90 β€” paid directly by the user on privexzk.ch/verify. Your platform pays nothing for this step.

πŸ”„ Annual credential renewal

CHF 0.90 β€” paid by the user once a year. No re-verification of identity required.

🏒 Enterprise plan

Custom pricing, SLA and white-label available. Contact us to discuss your needs.

FAQ

Frequently asked questions

A Zero-Knowledge Proof (ZKP) allows one party to prove a statement is true without revealing any underlying data. In our case, the user proves they are over 18 without showing their ID card, date of birth, or any personal information. PRIVEX ZK Age uses Groth16 β€” one of the most battle-tested ZK algorithms β€” to generate this proof locally in the user's browser in under 5 seconds.

No. The user completes the KYC process once (CHF 1.90) and receives a credential valid for 1 year, reusable across all platforms that integrate PRIVEX ZK Age. Think of it as an anonymous age passport β€” verified once, used everywhere.

Yes. Our solution is built around the principle of data minimisation: only { "verified": true } is transmitted to your platform. No personal data transits after the initial verification. The French data protection authority (CNIL) has officially recognised ZK proofs as a privacy-friendly model for age verification. Our architecture is fully compliant with DSA Art.28, GDPR, and NLPD.

100% in Switzerland and the EU. Our backend runs on Railway EU, our database on Supabase EU. No US servers. No data transfers outside Europe. Our company is registered in Switzerland (Grand-Lancy, Geneva) and fully compliant with Swiss NLPD and European GDPR.

The user can simply redo the KYC process (CHF 1.90) to obtain a new credential. The process takes less than 2 minutes. We recommend users store their credential.json file securely β€” for example in a password manager or encrypted storage.

Yes. We provide a full sandbox environment on the Sepolia testnet (Ethereum test network). No credit card required to test. Contact us at hello@privexzk.ch to get your sandbox API keys and start integrating today.

Ready to protect your users
and stay compliant?

The first ZK proof age verification built for businesses.
No personal data. No complexity. Just results.

⚑ 20-min integration βœ… DSA Art.28 compliant πŸ”’ Hosted in Switzerland πŸ§ͺ Free sandbox