> 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-0.md).

# 3.0.x

This page covers the two stable releases of the `3.0.x` line, newest first: `3.0.1` (a wrapper/registry contract fix) and `3.0.0` (the major baseline).

## 3.0.1

*Released 2026-05-28.*

### Upgraded wrapper + registry contract support

This patch aligns the SDK with the upgraded on-chain confidential-wrapper and `ConfidentialTokenWrappersRegistry` contracts. The SDK reads the current wrapper and registry interfaces, so wrapper resolution and shield/unshield work against the deployed protocol contracts.

In practice this means you can resolve the confidential wrapper for any registered ERC-20 through the built-in registry, then operate on it as a `WrappedToken`:

```ts
// The registry resolves the confidential wrapper for a registered ERC-20.
// On Mainnet, Sepolia, and Hoodi the registry address is built-in.
const result = await sdk.registry.getConfidentialToken("0xUnderlyingERC20");
// Check `isValid` before using the result — the registry can return an entry
// that is not a valid/registered wrapper.
if (!result || !result.isValid) throw new Error("No valid wrapper registered for this token");

const wrappedToken = sdk.createWrappedToken(result.confidentialTokenAddress);
await wrappedToken.shield(1000n);
```

See the [`WrappersRegistry` reference](/protocol/sdk/api-references/sdk/wrappersregistry.md) for how wrapper lookup works.

## 3.0.0

*Released 2026-04-22.*

`3.0.0` is the first stable release of the high-level `@zama-fhe/sdk`. Its guiding principle is **clear-text in, clear-text out**: you work with familiar primitives — ERC-20-style balances and transfers for tokens — while the SDK hides the FHE protocol details (encryption, proofs, permits, access control) underneath.

This is a different package from the legacy low-level [`@zama-fhe/relayer-sdk`](https://github.com/zama-ai/relayer-sdk). If your prior experience centers on `createInstance`, `initSDK`, or direct relayer calls, those belong to the legacy SDK. The `v3` line introduces the higher-level surface instead:

* **`ZamaSDK`** — the entry point that owns configuration, chain management, and the relayer lifecycle.
* **`Token` / `WrappedToken`** — confidential ERC-7984 tokens with `shield`, `unshield`, `confidentialTransfer`, and `balanceOf`.
* **`createConfig`** — one call to wire chains, relayers, a provider, and an optional signer together.
* **React hooks** — TanStack Query-based hooks with cached decryption, automatic cache invalidation, and one-signature permit management.

{% hint style="info" %}
The public configuration API and several primitives were finalized in [**3.1.0**](/protocol/sdk/changelog/v3/v3-1.md) (the `createConfig` name, transport factories, the provider/signer split, and the top-level `encrypt`/`decrypt` methods). Read the 3.1.0 notes for the API as it stands today, and start new projects from the [Quick start](/protocol/sdk/getting-started/quick-start.md).
{% endhint %}


---

# 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-0.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.
