@affix-io/sdk

Enterprise SDK for Node.js.

Your host proves with UltraHonk. AffixIO verifies, signs with ML-DSA-65, and anchors Merkle audit.

Install

npm install @affix-io/sdk

Requires Node.js 18+. API base defaults to https://api.affix-io.com.

What you get

  • Local ZK prove with bundled Noir circuits (simple_yesno, yesno) over Barretenberg UltraHonk.
  • Production sync with AffixIO ML-DSA-65 on the verify payload.
  • Merkle audit with client batches up to 50,000 digests.
  • Offline-first queue with configurable auto-flush.
  • PII-free QR and barcode carriers. Presentment links use your host base only.
  • Pluggable storage for JSON, Redis, SQL, or custom get/set backends.

Minimal setup

import { AffixSDK } from "@affix-io/sdk";const sdk = new AffixSDK({ apiKey: process.env.AFFIX_API_KEY });

Modes

  • auto: live AffixIO when reachable, otherwise offline local prove if allowed.
  • offline: always local prove and enqueue.
  • online: live licence required. ZK still runs locally.

@affix-io/sdk questions

UltraHonk prove, storage, Merkle batches, offline queue.

What does @affix-io/sdk prove locally?

UltraHonk zero-knowledge proofs over bundled Noir circuits such as simple_yesno and yesno via Barretenberg (@aztec/bb.js). Proof generation stays on your host before sync.

What storage backends does the SDK support?

JSON under .affix/ by default, plus pluggable Redis, SQL, or custom get/set backends for document and queue storage.

What is the Merkle batch limit?

Client batches up to 50,000 digests per Merkle audit submission in public SDK documentation.

Does the SDK support offline operation?

Yes. Offline-first queue with configurable auto-flush. Proofs generate locally when api.affix-io.com is unreachable and sync when connectivity returns.