> For the complete documentation index, see [llms.txt](https://docs.zama.org/protocol/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zama.org/protocol/sdk/changelog/v3/v3-2.md).

# 3.2.x

This page covers the `3.2.x` line.

## 3.2.0

*Released 2026-06-24.*

This release makes SDK diagnostics observable without imposing a logging library, ships codemods to automate the `3.1.0` upgrade, and fixes decoding of the on-chain `Wrap` event. There are **no breaking changes**.

### Configurable, silent-by-default logging

The SDK is silent by default — it emits no console output of its own. When you want visibility into what it's doing, pass a `logger` to `createConfig`. Any object matching the four-level `GenericLogger` interface (`error` / `warn` / `info` / `debug`) works, so `console`, [pino](https://getpino.io/), [winston](https://github.com/winstonjs/winston), and OpenTelemetry's `DiagLogger` all satisfy it directly:

```ts
import { createConfig } from "@zama-fhe/sdk/viem";
import { sepolia } from "@zama-fhe/sdk/chains";
import { web } from "@zama-fhe/sdk/web";

const config = createConfig({
  chains: [sepolia],
  publicClient,
  walletClient,
  relayers: { [sepolia.id]: web() },
  logger: console, // opt in to diagnostics — omit for total silence
});
```

Bring your own structured logger the same way:

```ts
import pino from "pino";

const config = createConfig({
  // ...chains, clients, relayers
  logger: pino({ level: "debug" }),
});
```

{% hint style="info" %}
The SDK never bundles a logging library and never imposes a format. When `logger` is omitted, no output is produced — safe for production by default. This also fixed workers logging `console.error` on failures they had already handled, which previously produced misleading noise in the console.
{% endhint %}

### Upgrade codemods

Automated codemods (built on [Codemod-OSS / JSSG](https://codemod.com/)) migrate a `3.0.x` codebase to the `3.1.0` API — the `createConfig` rename, flat config props, and the transport-map shape. Run them against your source tree instead of editing call sites by hand:

```sh
npx codemod @zama-fhe/sdk/3.1.0
```

Review the diff before committing — codemods handle the mechanical rewrites, but you should still verify the result compiles and your tests pass.

### Bug fixes

* **Decode the 3-field `Wrap` event.** The SDK now decodes the current 3-field `Wrap` event emitted by the wrapper contracts, rather than the legacy 2-field `Wrapped` event. If you read shield activity from event logs, wrapped balances now decode correctly. See [Decrypt values from event logs](/protocol/sdk/guides/decrypt-from-event-logs.md).
* **Quieter workers.** Relayer workers no longer emit `console.error` for failures that were caught and handled upstream, so your logs only show genuine problems.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.zama.org/protocol/sdk/changelog/v3/v3-2.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
