Skip to main content
Version: develop

Packages

The SDK ships as two packages, both published to GitHub Packages under the @cardinal-cryptography scope. See Getting Started for the .npmrc setup that authenticates installs against https://npm.pkg.github.com.

@cardinal-cryptography/sdk

Dual-target SDK for Node and browser. One install, conditional exports route to the right entry per runtime.

ExportDescription
createRuntime()Full runtime — decryption + proving
createReadRuntime()Read-only runtime — decryption only
DlogSolverWASM discrete-log solver (Node and browser builds)
NoirProverNoir-backed prover with bundled circuit JSONs
bun add @cardinal-cryptography/sdk viem

Bundles the dlog-solver WASM (both wasm/node/ and wasm/browser/), the Noir circuit JSONs (circuits/eb_*.json), and re-exports everything from @cardinal-cryptography/core. Most apps depend only on this package.

@cardinal-cryptography/core

Platform-agnostic primitives: cryptographic helpers, account/runtime types, action extensions, client factories, and bundler/paymaster support. Pure TypeScript, no WASM, no heavy peers — depends only on viem.

bun add @cardinal-cryptography/core viem

You typically don't install core directly — @cardinal-cryptography/sdk re-exports its public surface. Library authors who want to stay platform-agnostic depend on core directly.

Peer dependencies

PackageWhen required
viemAlways
@aztec/bb.jsWhen using the prover (full runtime)
@noir-lang/noir_jsWhen using the prover (full runtime)
@noir-lang/acvm_jsWhen using the prover (full runtime)
@noir-lang/noirc_abiWhen using the prover (full runtime)