For holders
Issue a passport and share a bundle
Connect trusted sources, review what will be proven, and generate a private bundle. At the end, a QR is produced to send to an underwriter or decision-maker.
For verifiers
Verify a bundle and anchor the receipt
Open a received bundle, confirm the applied policy, and anchor the receipt on Solana devnet. The decision is recorded without exposing raw bank history.
Privacy demo
Two proofs, same passport, no cross-linking
A visual demonstration: one holder issues two different proofs to two different verifiers without either side being able to correlate them to a shared identity.
Reference apps
The SDKs consumed by two Next.js apps.
The same packages published to npm, in action across two full Next.js apps. Clone the repository, boot them locally, and watch the full trail — issuance, bundle, verification, anchoring — without touching the main app.

@zk-credit-passport/example-next-landlord-appVerifier portal — bundle-to-decision
Next.js app that consumes the verifier-sdk, accepts a proof bundle, applies the policy, and anchors the receipt on Solana devnet. The final screen exposes receipt id, anchor status, signature, and receipt PDA for institutional review.
npm --workspace @zk-credit-passport/example-next-landlord-app run dev
@zk-credit-passport/example-holder-wallet-appHolder wallet — end-to-end journey
Next.js app that exercises the holder-sdk across four steps: Good Payer passport issuance, selective-disclosure bundle, verification with devnet anchoring, and optional revoke. Each step appears timed in the journey timeline.
npm --workspace @zk-credit-passport/example-holder-wallet-app run dev