FREE
Privacy-First Identity Verification

Prove who you are
without revealing who you are

Zero-knowledge proofs for identity verification. Verify credentials without exposing personal data.

How It Works

1

Request

Your dApp creates a proof request via the ZKProofPort SDK with specific verification requirements.

2

Prove

User generates a zero-knowledge proof on their mobile device using private credentials.

3

Verify

Your dApp verifies the cryptographic proof on-chain or off-chain without accessing personal data.

Live Demos

🛡️

Coinbase KYC Verification

Prove your Coinbase identity verification status without revealing your personal information.

Prove KYC completion
Hide Personal identity

Request Generated

Waiting for proof...

Scan the QR code with ZKProofPort app to generate a proof

Proof Failed

The proof request timed out. Please try again.

Proof Received


              
🌍

Coinbase Country Attestation

Prove your country of residence eligibility without revealing your exact location.

Prove Country eligibility
Hide Exact location

Request Generated

Waiting for proof...

Scan the QR code with ZKProofPort app to generate a proof

Proof Failed

The proof request timed out. Please try again.

Proof Received


              

Why ZKProofPort?

🔒

Zero Knowledge

No personal data leaves the user's device. Verify credentials cryptographically.

⛓️

On-Chain Verified

Proofs are verified by smart contracts on Base network for trustless verification.

📱

Mobile Native

Optimized for mobile proof generation with iOS and Android support.

🌐

Open Source

Fully auditable SDK and circuits built with cutting-edge cryptographic technology.

Quick Integration

// Install the SDK
import { ProofPortSDK } from '@proofport/sdk';

// Initialize SDK
const sdk = new ProofPortSDK({
  defaultCallbackUrl: 'https://yourapp.com/api/callback'
});

// Create a proof request
const request = sdk.createCoinbaseKycRequest({ scope: 'your-dapp:action' });

// Generate QR code
const qrDataUrl = await sdk.generateQRCode(request);

// Or open ProofPort app directly
sdk.openProofRequest(request);

// Verify the proof on-chain
const result = await sdk.verifyOnChain(
  response.circuit,
  response.proof,
  response.publicInputs
);