Catalog npm
Back to packageRELEASE DETAILS

0.3.0

npm

@0gzk/sdk

0gzk SDK: ZK Groth16 prover and 0G Storage helpers (isomorphic + Node)

0g0g-storage0gzkcircomgroth16snarkjszero-knowledgezk
Published13 May 2026
Direct dependencies8
Transitive dependenciesNot calculated

README

Current package documentation

@0gzk/sdk

ZK Groth16 prover, storage backends, and registry client for the 0gzk ZK Proof-as-a-Service platform. Four subpaths, picked automatically by your runtime:

  • @0gzk/sdk — isomorphic (Node + browser): generateProof, verifyLocal, validateInputs, BundleFiles, CircuitMetadata, InputValidationError, plus the chain presets (NETWORKS, resolveNetwork, explorer URL helpers — 0G mainnet/testnet, Base, Base Sepolia) and the bundle-reference codec (parseBundleRef, cidToRootHash). Wraps snarkjs.groth16 with metadata-driven input validation.
  • @0gzk/sdk/node — Node-only: uploadBundle, fetchBundle, loadConfig, readBundleFromDir, routed through pluggable storage backends — 0G Storage (via a lazily-imported @0gfoundation/0g-ts-sdk) or any pinFileToIPFS-compatible IPFS pinning service (no wallet, no gas).
  • @0gzk/sdk/onchain — isomorphic: getRegistryContract, getVersion, getLatest, listCircuits, resolveBundle, parseNameSpec. Resolves circuits by name through the on-chain CircuitRegistry on any supported chain.
  • @0gzk/sdk/build — Node-only: buildCircuitBundle and friends — the pure-JS trusted-setup pipeline (ptau fetch with BLAKE2b check, Groth16 setup, verifier export, bundle assembly).

Witness data never leaves the calling process — proofs are generated client-side and only proof + publicSignals go anywhere else.

Install

npm i @0gzk/sdk snarkjs
# or, with Node uploads/downloads + on-chain resolution:
npm i @0gzk/sdk snarkjs @0gfoundation/0g-ts-sdk ethers

snarkjs is a hard peer. @0gfoundation/0g-ts-sdk and ethers are optional peers — ethers is required for /onchain and /build; @0gfoundation/0g-ts-sdk only when the 0G storage backend is actually used (IPFS-only consumers can skip it).

TL;DR

import { generateProof, verifyLocal, type BundleFiles } from "@0gzk/sdk";

const bundle: BundleFiles = { wasm, zkey, vkey, metadata };
const inputs = { birthYear: 1990, currentYear: 2026, minAge: 18 };

const { proof, publicSignals } = await generateProof(bundle, inputs);
const ok = await verifyLocal(bundle, { proof, publicSignals });

generateProof validates inputs against metadata.inputs (uint, bool, field, uint[], field[] — with optional length) before calling snarkjs.groth16.fullProve. Bad input throws InputValidationError with a list of all problems.

Pull a bundle from 0G Storage (Node-only)

import { fetchBundle, loadConfig } from "@0gzk/sdk/node";

const config = loadConfig({});
const bundle = await fetchBundle(rootHash, config, "/tmp/my-bundle");

Set OG_PRIVATE_KEY if you also need to uploadBundle. Reads do not require a wallet.

Resolve a circuit by name from the registry

import { JsonRpcProvider } from "ethers";
import { getRegistryContract, resolveBundle, parseNameSpec } from "@0gzk/sdk/onchain";
import { fetchBundle, loadConfig } from "@0gzk/sdk/node";

const registry = getRegistryContract(new JsonRpcProvider("https://evmrpc.0g.ai"));
const { record, bundle } = await resolveBundle(
  registry,
  parseNameSpec("age_verification@0.1.0"),
  (root) => fetchBundle(root, loadConfig({}), `/tmp/0gzk/${root}`),
);

Full guide → USAGE.md

USAGE.md has copy-pasteable recipes for browser ESM, Next.js App Router, plain Node scripts, registry-driven proving, and CI / programmatic CLI usage, plus an input-validation cheatsheet.

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 11

Native requirements
8 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
tar
Environment
{
  "local_name": "tar",
  "alias": false,
  "peer_metadata": null
}
^7.4.3runtime
ethers
Environment
{
  "local_name": "ethers",
  "alias": false,
  "peer_metadata": null
}
^6.13.0development
rimraf
Environment
{
  "local_name": "rimraf",
  "alias": false,
  "peer_metadata": null
}
^6.0.1development
vitest
Environment
{
  "local_name": "vitest",
  "alias": false,
  "peer_metadata": null
}
^2.1.0development
snarkjs
Environment
{
  "local_name": "snarkjs",
  "alias": false,
  "peer_metadata": null
}
^0.7.5development
@types/tar
Environment
{
  "local_name": "@types/tar",
  "alias": false,
  "peer_metadata": null
}
^6.1.13development
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^5.6.2development
@0gfoundation/0g-ts-sdk
Environment
{
  "local_name": "@0gfoundation/0g-ts-sdk",
  "alias": false,
  "peer_metadata": null
}
^1.2.4development
ethers
Environment
{
  "local_name": "ethers",
  "alias": false,
  "peer_metadata": {
    "optional": true
  }
}
^6.13.0peer
snarkjs
Environment
{
  "local_name": "snarkjs",
  "alias": false,
  "peer_metadata": null
}
^0.7.5peer
@0gfoundation/0g-ts-sdk
Environment
{
  "local_name": "@0gfoundation/0g-ts-sdk",
  "alias": false,
  "peer_metadata": {
    "optional": true
  }
}
^1.2.4peer

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "ab3bda0d0c9c17ec025696672348e4559a5a58aa",
  "tarball": "https://registry.npmjs.org/@0gzk/sdk/-/sdk-0.3.0.tgz",
  "fileCount": 71,
  "integrity": "sha512-+5yPP6gx935LyATxwFCinFNH4zCbffrRwB7xb1XB1owNGmGyI2AIv2KflFkluwBo2Joopw1dHEhJVsmL01QBXw==",
  "signatures": [
    {
      "sig": "MEQCIC2F2G6Eu34/YtmK0GJ9gSUbBet6tjOK1vsUV0mbmq0PAiBBaBMvRRCni7Rm2iXghvsKr1MYYCkffTVlEHwloEo4OQ==",
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
    }
  ],
  "unpackedSize": 130832
}

Repository

PENDING
0gzk/core

Shared repository data · GitHub

License detected in repository
Not collected

Repository

PENDING
0gzk/0gzk

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:11 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:4cce25cbc7889592ebc90aa2d9ecc32e179a8faf0ff0db949b60c9605399c6ab

Other collected versions

0.4.02 Sept0.3.214 May0.3.113 May0.2.113 May0.2.012 May0.1.126 AprView all collected versions →