Vanilla TS clients for airdrop v2.
Deploy, claim, and delegate compliance without React - the same five classes the hooks wrap.
Node services, indexers, and admin scripts on v2.0.0-rc.1 import these directly from @tokenops/sdk/fhe-airdrop; the hooks under @tokenops/sdk/fhe-airdrop/react are thin wrappers over the same methods.
ConfidentialAirdropFactoryClient
Deploys ECDSA or Merkle campaign clones, funds pools, and owns fee, implementation, compliance-wiring, and upgradeability policy.
OpenAirdropBaseClient
Shared instance surface: pause, extend the window, withdraw, rescue, disclose balances, roles. Both claim variants extend it; documented in full on the EcdsaAirdropClient page.
OpenEcdsaAirdropClient
Signature-authorized claims over a 4-field EIP-712 struct, plus the full AirdropBaseClient surface it extends.
OpenMerkleAirdropClient
Proof-authorized claims against a rotatable root, cumulative per-account accounting, and relayed third-party submission.
OpenComplianceManagerClient
One clone per campaign instance. Manages the client-delegate set for FHE user-decryption disclosure alongside the platform delegate.
Open
Shared client options
gasHeadroomPercenton every config pads each write's gas estimate (default 25%, clamped to the EIP-7825 cap). Writes that take an argument object also accept a per-callgas, sent as is. The factory's positional admin setters take it as a trailing argument afteraccount. See Gas headroom.- Every write refuses a wallet whose chain is not the public client's with
WalletChainMismatchErrorbefore estimating. The airdrop contracts share their addresses on mainnet and Sepolia, so a mismatched pair would otherwise send to the wrong chain. - The factory resolves its address from
DEPLOYED_ADDRESSESon chain 1 and chain 11155111; passaddressonly for a local deployment. See Contracts.