Skip to content

Releases: zama-ai/sdk

v3.0.0-alpha.25

28 Apr 15:02

Choose a tag to compare

v3.0.0-alpha.25 Pre-release
Pre-release

3.0.0-alpha.25 (2026-04-28)

Features

  • sdk: update code to sdk latest version (#291) (2b5908a)

v3.0.0-alpha.24

28 Apr 13:22

Choose a tag to compare

v3.0.0-alpha.24 Pre-release
Pre-release

3.0.0-alpha.24 (2026-04-28)

v3.0.0-alpha.23

28 Apr 11:17

Choose a tag to compare

v3.0.0-alpha.23 Pre-release
Pre-release

3.0.0-alpha.23 (2026-04-28)

v3.0.0-alpha.22

28 Apr 09:48

Choose a tag to compare

v3.0.0-alpha.22 Pre-release
Pre-release

3.0.0-alpha.22 (2026-04-28)

Features

v3.0.0-alpha.21

28 Apr 07:28

Choose a tag to compare

v3.0.0-alpha.21 Pre-release
Pre-release

3.0.0-alpha.21 (2026-04-28)

v3.0.0-alpha.20

27 Apr 16:46

Choose a tag to compare

v3.0.0-alpha.20 Pre-release
Pre-release

3.0.0-alpha.20 (2026-04-27)

⚠ BREAKING CHANGES

  • sdk: buildRelayer removed from public API.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • chore(sdk): update API reports after wagmi-inspired config improvements

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(sdk): update CompositeRelayer tests for lazy init API

Tests now construct CompositeRelayer with config map instead of promise
map, using temporary transport handlers to provide mock relayers.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • refactor(sdk): self-register node transport handler in node() factory

Move the transport handler registration from a top-level side-effect
into the node() factory itself (lazy, runs once on first call).
No separate import "@zama-fhe/sdk/node" needed — just calling
node() in the transports map handles everything.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • refactor(sdk): use static import for RelayerNode in node transport

Replace dynamic import("../relayer/relayer-node") with a direct static
import. The /node entry point is Node-only so there's no risk of pulling
node:worker_threads into browser bundles.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • refactor(sdk): self-register web and cleartext transport handlers in factories

Move handler registrations from relayers.ts into the web() and cleartext()
factories with static imports. Each factory self-registers on first call.
relayers.ts now only provides the registry infrastructure.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • refactor(sdk): replace relayer registry with createRelayer on transport configs

Each transport factory (web, node, cleartext) now attaches a createRelayer
function directly to the config object. CompositeRelayer calls it on first
use — no registry, no handler lookup, no async.

  • Delete config/relayers.ts (registry infrastructure)
  • Remove relayersMap/registerRelayer from all files
  • Simplify CompositeRelayer — sync createRelayer, no pending map
  • Move node() exclusively to @zama-fhe/sdk/node
  • Update all tests

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(sdk): address PR review findings
  • Wrap createRelayer in try-catch with chain context in CompositeRelayer
  • Document sync invariant on createRelayer (prevents duplicate relayers)
  • Remove dead types from config/types.ts (old union types, CustomSigner)
  • Deduplicate AtLeastOneChain — single definition in chains/types.ts
  • Add never guards to ZamaConfigEthers for mutual exclusion enforcement

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • refactor(sdk): rename createZamaConfig to createConfig

The package path already namespaces it — no need for the Zama prefix.

  • Rename in all entry points: /viem, /ethers, react-sdk/wagmi
  • Update test apps to alias as createZamaConfig where wagmi clash exists
  • Update test assertions and describe blocks
  • Fix JSDoc reference in ZamaConfig type
  • Minor formatting from linter (transports.ts union, assertCondition)

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(sdk): update tests for relayer→options field rename on transport configs

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • refactor(sdk): rename relayer param to options on transport factories

Rename the relayer-pool options parameter from relayer to options
on web(), node(), and their transport config interfaces.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(sdk): update stale JSDoc refs and regenerate API reports
  • Fix JSDoc references to old relayer field name in transports.ts
  • Fix JSDoc and error message referencing createZamaConfig in provider.tsx
  • Regenerate all API report files (etc/*.api.md)

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • docs(sdk): update gitbook docs for createConfig API and entry-point imports

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • chore: remove superseded design specs and implementation plans

These docs were written during brainstorming and are now fully
implemented — the code is the source of truth.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(sdk): propagate transport registryAddress to chains and check delegation before cache
  • Merge registryAddress from transport chain overrides into FheChain definitions
    in buildZamaConfig so the WrappersRegistry resolves correctly for local chains
  • Simplify resolveChainTransports by deriving chainIds from chains directly
  • Move delegation check before cache lookup in decryptBalanceAs so revoked
    delegations are caught even when a stale cached value exists
  • Update example-hoodi to use the new createConfig API

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • chore(sdk): update API report for resolveChainTransports signature change

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • revert(example-hoodi): restore prerelease version to fix e2e CI

The example uses published SDK versions (2.2.0-alpha.4) which don't have
the new createConfig/chains APIs yet, causing e2e failures. Also add
Turbopack resolveAlias to test-nextjs to avoid rolldown ?iife imports.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(sdk): update resolve tests for 2-arg resolveChainTransports signature

The chainIds parameter was removed from resolveChainTransports but the
tests still passed a third argument. Update all call sites and error
message expectations to match the current implementation.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(sdk): address PR review findings across config, relayer, and examples
  • Sweep createZamaConfig→createConfig in all examples, READMEs, and docs
  • Fix examples to use flat config props (no more viem:{}/ethers:{} wrappers)
  • Fix react-sdk test-fixtures.tsx broken import from non-existent "./config"
  • Make anvil a strict alias for hardhat + runtime duplicate chain id detection

Code Refactoring

v3.0.0-alpha.19

27 Apr 13:38

Choose a tag to compare

v3.0.0-alpha.19 Pre-release
Pre-release

3.0.0-alpha.19 (2026-04-27)

Bug Fixes

v3.0.0-alpha.18

24 Apr 12:08

Choose a tag to compare

v3.0.0-alpha.18 Pre-release
Pre-release

3.0.0-alpha.18 (2026-04-24)

Features

  • sdk: require explicit owner on token reads (#282) (82e6487)

v3.0.0-alpha.17

24 Apr 09:43

Choose a tag to compare

v3.0.0-alpha.17 Pre-release
Pre-release

3.0.0-alpha.17 (2026-04-24)

Features

  • remove auto-signer resolving in hooks (#281) (6c74d9c)

v3.0.0-alpha.16

24 Apr 08:38

Choose a tag to compare

v3.0.0-alpha.16 Pre-release
Pre-release

3.0.0-alpha.16 (2026-04-24)

Features

  • docs: add LLM-ready SDK docs corpus (#248) (964bd5d)
  • introduce concrete signer / provider split (#268) (ae45dfd)