@iopn-zk/zk-proof-authentication-sdk
v1.0.0
Published
SDK for zero-knowledge proof authentication - deterministic identity generation, group management, and ZK proof generation
Maintainers
Readme
@iopn-zk/zk-proof-authentication-sdk
SDK for zero-knowledge proof authentication - deterministic identity generation, group management, and ZK proof generation.
Features
- Deterministic Identity Generation: Generate consistent Semaphore identities from OAuth user identifiers
- Group Management: Manage Semaphore groups with member commitments
- ZK Proof Generation: Generate zero-knowledge proofs with trusted setup support
- Wallet Integration: Generate deterministic Ethereum wallets linked to identities
Installation
npm install @iopn-zk/zk-proof-authentication-sdkUsage
Generate Deterministic Identity
import { generateDeterministicIdentity } from '@iopn-zk/zk-proof-authentication-sdk';
const { identity, commitment, privateKey } = generateDeterministicIdentity(
auth0Sub, // OAuth user sub
appSecret, // Application secret
userEmail // Optional user email
);Retrieve Identity
import { retrieveIdentity } from '@iopn-zk/zk-proof-authentication-sdk';
const { identity, commitment } = retrieveIdentity(
auth0Sub,
appSecret,
userEmail
);Generate ZK Proof
import { generateProofWithSetup, Group } from '@iopn-zk/zk-proof-authentication-sdk';
const group = new Group(groupId, treeDepth, members.map(BigInt));
const proof = await generateProofWithSetup(
identity,
group,
BigInt(signal),
BigInt(externalNullifier),
{
wasmPath: './semaphore.wasm',
zkeyPath: './semaphore.zkey'
}
);Generate Deterministic Wallet
import { generateDeterministicWallet } from '@iopn-zk/zk-proof-authentication-sdk';
const { walletAddress, privateKey, wallet } = generateDeterministicWallet(
auth0Sub,
appSecret
);API Reference
Identity Functions
generateDeterministicIdentity(auth0Sub, appSecret, userEmail?, options?)- Generate deterministic Semaphore identityretrieveIdentity(auth0Sub, appSecret, userEmail?, options?)- Retrieve existing identitygenerateDeterministicWallet(auth0Sub, salt, infoLabel?)- Generate deterministic Ethereum walletgenerateDeterministicIdentityWithWallet(auth0Sub, appSecret, userEmail?, options?)- Generate both identity and walletverifyIdentityCommitment(auth0Sub, appSecret, expectedCommitment, userEmail?, options?)- Verify identity commitment
Proof Functions
generateProofWithSetup(identity, group, signal, externalNullifier, options)- Generate ZK proof with trusted setup
Group Management
GroupManager- Framework-agnostic group management classFileStorageAdapter- File-based storage adapter for groups
Requirements
- Node.js >= 18.0.0
- Trusted setup files (WASM and zkey) for proof generation
License
MIT
