2.0 RC docsView 1.x docs
v2.0.0-rc.1 release candidate
The API is frozen and later candidates carry fixes only, except the receipt-free and Safe create surface of /fhe-airdrop, which is @beta. Published on the next dist-tag; latest stays on 1.6.0 until 2.0.0.
isAclPropagationError
Right after addDelegate lands on-chain, a delegated decrypt against the new delegate (decryption.delegatedDecryptValues on a Zama 3.6 ZamaSDK) can fail with "not propagated to the gateway yet" for a short window (about 10 blocks, longer behind a lagging RPC). isAclPropagationError(error), a standalone function exported from @tokenops/sdk/fhe-airdrop (not a client method), classifies that response so a caller can retry instead of treating it as a hard denial. Where the SDK maps the Zama error itself, the same failure arrives as the retryable AclNotPropagatedError (TOKENOPS_ACL_NOT_PROPAGATED), which isAclPropagationError also recognises.
Airdrop v2 · Client@tokenops/sdk/fhe-airdrop

ComplianceManagerClient

One clone per campaign instance, created and initialized atomically by the factory inside createEcdsaAirdrop/createMerkleAirdrop - there is no observable deployed-but-not-wired state, and initialize is never exposed here. Two delegate slots: an irrevocable platform delegate set once at create (only if the factory's compliance policy was on for that creator), and client delegates this client adds and removes. The clone starts with one: complianceAdmin (the creator when left zero), seeded at create with never-expiring decrypt rights over the instance; revokeDelegate removes it.

Construct

Headless TS — non-React consumers (Node, Vite, server workers). React hosts use the per-hook surface; same method names, lazy encryptor.

@tokenops/sdk/fhe-airdrop
ts
import { createComplianceManagerClient } from "@tokenops/sdk/fhe-airdrop";

const client = createComplianceManagerClient({
  publicClient,
  walletClient,
  // address optional: resolved from publicClient.chain.id
});

Methods

Roles · RBAC · 10