npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@orbinum/circuits

v0.3.0

Published

Zero-Knowledge circuits for Orbinum privacy blockchain

Downloads

108

Readme

@orbinum/circuits

Zero-Knowledge circuits for Orbinum privacy blockchain. This package contains compiled circuit artifacts for proof generation and verification.

npm version License

🚀 Installation

npm install @orbinum/circuits

📦 Package Contents

This package includes 12 files for 3 circuits (disclosure, transfer, unshield):

For Each Circuit (disclosure, transfer, unshield):

  1. {circuit}.wasm - Witness calculator (3 files)
  2. {circuit}_pk.zkey - Proving key for snarkjs (3 files)
  3. {circuit}_pk.ark - Proving key for arkworks/Rust (3 files)
  4. verification_key_{circuit}.json - Verification key for on-chain verification (3 files)

🔧 Usage

With snarkjs (JavaScript/TypeScript)

import { join } from "path";
import { readFileSync } from "fs";

// Get circuit artifacts
const circuitsPath = require.resolve("@orbinum/circuits/package.json").replace("package.json", "");

// Load WASM witness calculator
const wasmPath = join(circuitsPath, "transfer.wasm");
const wasmBuffer = readFileSync(wasmPath);

// Load proving key (.zkey)
const zkeyPath = join(circuitsPath, "transfer_pk.zkey");
const zkeyBuffer = readFileSync(zkeyPath);

// Use with snarkjs for proof generation
// ... snarkjs proof generation code ...

With arkworks (Rust)

use std::fs::File;
use ark_circom::read_zkey;

// Load proving key (.ark format)
let mut ark_file = File::open("transfer_pk.ark")?;
let proving_key = read_proving_key(&mut ark_file)?;

// Use for proof generation
// ... arkworks proof generation code ...

Verification Keys (On-chain)

import verificationKey from "@orbinum/circuits/verification_key_transfer.json";

// Use for on-chain verification in Substrate runtime
// The JSON contains the verification key in a format ready for the runtime

📋 Available Circuits

1. Disclosure (disclosure_*)

Selective disclosure circuit for privacy-preserving attribute revelation.

2. Transfer (transfer_*)

Private token transfer circuit with 2 inputs and 2 outputs.

3. Unshield (unshield_*)

Withdrawal circuit from private pool to public account.

🔗 Related Packages

💡 Usage Example with @orbinum/proof-generator

import { generateProof, CircuitType } from "@orbinum/proof-generator";

// Proof generator automatically loads circuits from @orbinum/circuits
const result = await generateProof(CircuitType.Transfer, witnessInputs, numPublicSignals);

console.log("Proof:", result.proof);
console.log("Public signals:", result.publicSignals);

📄 File Sizes

  • WASM files: ~1-2 MB each (witness calculators)
  • .zkey files: ~7-9 MB each (snarkjs proving keys)
  • .ark files: ~7-9 MB each (arkworks proving keys)
  • Verification keys: ~3-4 KB each (JSON)

Total package size: ~50-60 MB

🔒 Security Notice

⚠️ Important: These circuit artifacts are for testing and development only.

For production deployment, a multi-party trusted setup ceremony is required to generate secure proving/verification keys.

📖 Circuit Specifications

For detailed circuit specifications, constraints, and integration guides:

🐛 Issues

Report issues at: https://github.com/orbinum/circuits/issues

📄 License

GPL-3.0 - See LICENSE