zkJanuszkJANUS

// SDK DOCS

zkJANUS SDK

Integrate private, verifiable identity into any app. Generate proofs client-side, verify on-chain, reveal nothing.

// Overview

The zkJanus SDK lets your app request and verify zero-knowledge proofs of identity, reputation, and credentials. Users prove claims without ever exposing the underlying data.

quickstart
import { Janus } from "@zkjanus/sdk";

const janus = new Janus({ network: "solana" });

// link a user's passport
await janus.connect();

// Install

bash
$ npm install @zkjanus/sdk
# or
$ pnpm add @zkjanus/sdk
$ yarn add @zkjanus/sdk

// Verify

Verify a claim against a user's passport. The proof reveals only the answer — true or false.

quick verify
// one call — boolean, nothing else
const verified = await Janus.verify(wallet);  // → true

// the app never sees wallet history, balances, or identity.
verify.ts
// verify a passport proof — reveals nothing
const ok = await janus.verify({
  proof,                       // zk-SNARK from the user's client
  claim: "reputation >= 80",
  passport: "0x91f...JANUS",
});

if (ok) grantAccess();

// Register

Issuers sign credentials onto a passport. The holder later proves them without revealing the values.

register.ts
// issue a signed credential to a passport
await janus.register({
  passport: "0x91f...JANUS",
  credential: "kyc.tier2",
  issuer: signer,              // credential authority
});

// API

reference
janus.connect()link a wallet / passport
janus.prove(claim)generate a zk proof client-side
janus.verify(opts)verify a proof → boolean
janus.register(opts)issue a signed credential
janus.passport(addr)fetch the public face
janus.revoke(id)revoke a credential

// Privacy

The data boundary is absolute. Private inputs are computed locally and never transmitted.

data boundaryENFORCED
NEVER TRANSMITTED
  [▓] wallet history
  [▓] identity documents
  [▓] raw credential values

TRANSMITTED
  [✓] a zk proof (constant size)
  [✓] the public claim being proven