SDK 2.1: platform toolkit + vesting engine
1.x: critical fixes onlyView 2.x docs
API reference · 383 exports

Every public export, A–Z.

The escape hatch when you know the name. Filter by kind, search the description, click through to the detail page (hooks) or the concept (everything else). The full type signature ships in the published .d.ts; this page is the navigable index over it.

383
NameKindDescription
AccessDeniedError#ErrorCaller lacks the required RBAC role for the call.
AirdropId#TypeBranded Hex for an airdrop clone.
AirdropParams#TypeParameters for creating a confidential airdrop.
AlreadyClaimedError#ErrorEIP-712 signature already redeemed by this recipient.
AlreadyInitializedError#ErrorContract has already been initialized — initialize() may only run once.
AlreadyRegisteredError#ErrorThe user has already registered — register(token) is single-use per user.
asAirdropId#FunctionMark a raw Hex value as an AirdropId.
asEncryptedHandle#FunctionMark a raw Hex value as an EncryptedHandle.
assertTestnetFaucetChain#FunctionThrows UnsupportedChainError off Sepolia (11155111) / local Anvil (31337).
BatchCreateVestingArgs#TypeType exported from @tokenops/sdk/fhe-vesting.
BatchDiscloseHandlesArgs#TypeArguments for batchDiscloseHandlesToParty().
BatchDiscloseToPartyResult#TypeResult of ConfidentialVestingManagerClient.batchDiscloseToParty / ConfidentialVestingManagerClient.adminBatchDiscloseToParty.
BatchLimits#TypeBatch size limits.
BatchTooLargeError#ErrorBatch entries exceed the contract's on-chain cap.
CalculatedFee#TypeCalculated fee for a specific disperse call.
CalculateFeeArgs#TypeArguments for calculateFee().
ClaimArgs#TypeDiscriminated union by FeeType for useClaim.
ClaimLockedError#ErrorCliff not reached or schedule paused.
ClaimNotStartedError#ErrorAirdrop claim window has not opened yet; startsAt timestamp is in the future.
ClaimWindowClosedError#Errorclaim() outside [startTime, endTime].
computeSubtotals#FunctionFunction exported from @tokenops/sdk/fhe-disperse.
ConfidentialAirdropClient#ClientTyped wrapper around a deployed ConfidentialAirdropCloneable clone.
ConfidentialAirdropClientConfig#TypeType exported from @tokenops/sdk/fhe-airdrop.
confidentialAirdropCloneableAbi#ConstantConstant exported from @tokenops/sdk/fhe-airdrop.
confidentialAirdropFactoryAbi#ConstantConstant exported from @tokenops/sdk/fhe-airdrop.
ConfidentialAirdropFactoryAdvancedClient#ClientAdvanced extension of ConfidentialAirdropFactoryClient that re-exposes the CREATE2 address prediction read.
ConfidentialAirdropFactoryClient#ClientTyped wrapper around the deployed ConfidentialAirdropFactory.
ConfidentialAirdropFactoryClientConfig#TypeType exported from @tokenops/sdk/fhe-airdrop.
ConfidentialDisperseClient#ClientTyped SDK wrapper for the deployed DisperseConfidential singleton.
ConfidentialDisperseClientConfig#TypeType exported from @tokenops/sdk/fhe-disperse.
confidentialTokenopsTestTokenAbi#ConstantConstant exported from @tokenops/sdk/testnet-faucet.
confidentialVestingFactoryAbi#ConstantConstant exported from @tokenops/sdk/fhe-vesting.
ConfidentialVestingFactoryAdvancedClient#ClientAdvanced extension of ConfidentialVestingFactoryClient that re-exposes the CREATE2 address prediction read.
ConfidentialVestingFactoryClient#ClientTyped wrapper around the deployed ConfidentialVestingFactory.
ConfidentialVestingFactoryClientConfig#TypeType exported from @tokenops/sdk/fhe-vesting.
confidentialVestingManagerAbi#ConstantConstant exported from @tokenops/sdk/fhe-vesting.
ConfidentialVestingManagerClient#ClientTyped wrapper around a deployed ConfidentialVestingManager clone.
ConfidentialVestingManagerClientConfig#TypeType exported from @tokenops/sdk/fhe-vesting.
ContractRevertError#ErrorWraps an on-chain revert the SDK couldn't decode further.
CreateAirdropArgs#TypeType exported from @tokenops/sdk/fhe-airdrop.
CreateAirdropPreflightReport#TypeReport returned by ConfidentialAirdropFactoryClient.preflightCreateAirdrop.
CreateAirdropResult#TypeRich-return shape from ConfidentialAirdropFactoryClient.createConfidentialAirdrop and ConfidentialAirdropFactoryClient.createAndFundConfidentialAirdrop.
CreateAndFundAirdropArgs#TypeDiscriminated union: provide EITHER an encryptor (the SDK encrypts amount) OR a pre-built encryptedInput.
createConfidentialAirdropClient#ClientPer-airdrop client — fund, sign claim, claim, extend window.
createConfidentialAirdropFactoryAdvancedClient#ClientPredict airdrop clone addresses before deploying.
createConfidentialAirdropFactoryClient#ClientFactory client — deploy per-campaign airdrop clones.
createConfidentialDisperseClient#ClientSingleton client — register, approve, disperse, preflight, recover.
createConfidentialVestingFactoryAdvancedClient#ClientPredict manager clone addresses before deploying.
createConfidentialVestingFactoryClient#ClientFactory client — deploy manager clones per user.
createConfidentialVestingManagerClient#ClientManager client — open vestings, claim, disclose, revoke.
CreateManagerArgs#TypeType exported from @tokenops/sdk/fhe-vesting.
CreateManagerResult#TypeRich-return shape from ConfidentialVestingFactoryClient.createManager.
createMockEncryptor#FunctionLocal-only encryptor for Anvil + forge-fhevm tests.
createSepoliaEncryptor#FunctionNode-side encryptor wrapping the Zama relayer.
createSepoliaEncryptorWeb#FunctionBrowser-side encryptor wrapping Zama RelayerWeb.
createTestnetFaucetClient#ClientFactory helper — returns new TestnetFaucetClient(config) (viem create* convention); wires to the pre-deployed CTTT/TTT pair, no on-chain factory or deploy step.
CreateVestingArgs#TypeDiscriminated union: provide EITHER an encryptor (the SDK encrypts the plaintext amount) OR a pre-built encryptedInput.
CreateVestingPreflightReport#TypeReport returned by ConfidentialVestingManagerClient.preflightCreateVesting.
CustomFee#TypeType exported from @tokenops/sdk/fhe-vesting.
DecryptionFailedError#ErrorUser-decrypt round-trip failed (relayer, KMS, ACL).
DEPLOYED_ADDRESSES#ConstantPer-chain factory + singleton address registry.
DeploymentAddressUnavailableError#ErrorNo DEPLOYED_ADDRESSES entry for (product, contract, chainId).
DeploymentAddressUnavailableReason#TypeType exported from @tokenops/sdk.
DiscloseArgs#TypeType exported from @tokenops/sdk/fhe-vesting.
DiscloseHandleArgs#TypeArguments for discloseHandleToParty().
DiscloseToPartyResult#TypeResult of ConfidentialVestingManagerClient.discloseToParty / ConfidentialVestingManagerClient.adminDiscloseToParty.
DisclosureResult#TypeResult of discloseHandleToParty() / batchDiscloseHandlesToParty().
DisclosureType#TypeWhich view to disclose: vested / claimable / settled / total.
DisperseArgs#TypeArguments for disperse().
disperseConfidentialAbi#ConstantConstant exported from @tokenops/sdk/fhe-disperse.
DisperseDistribution#TypePer-wallet (wallet modes) or single (direct mode) distribution row, parsed from a WalletDistribution / DirectDistribution event in the disperse receipt.
DisperseEncryptedReserveNotGrantedError#ErrorThrown by getEncryptedFeeReserve() when no ACL Allowed event granting the caller access to the fee reserve handle is found in the receipt.
DisperseId#TypeBranded Hex for a disperse subwallet.
DisperseMode#TypeDisperse mode.
DisperseResult#TypeResult of disperse().
DisperseSubwalletNotFoundError#ErroruseDisperse hit a recipient with no registered subwallet.
disperseWalletAbi#ConstantConstant exported from @tokenops/sdk/fhe-disperse.
EncryptedHandle#TypeBranded bytes32 for an FHE ciphertext handle.
EncryptedInput#TypeSingle euint64 ciphertext: { handle: Hex; inputProof: Hex } produced by encryptUint64.
EncryptedInputs#TypeType exported from @tokenops/sdk/fhe-vesting.
EncryptedViewResult#Type{ handle, hash } returned by encrypted-view mutations.
EncryptionFailedError#ErrorEncryptor refused or returned invalid ciphertext/proof.
Encryptor#TypeInterface for the Zama relayer abstraction.
EncryptorSource#TypeEager Encryptor | () => Encryptor | undefined.
encryptUint64#FunctionEncrypt a single uint64 with the given encryptor source.
EncryptUint64Args#TypeType exported from @tokenops/sdk/fhe-vesting.
encryptUint64Batch#FunctionEncrypt N uint64 values in one batch input proof.
EncryptUint64BatchArgs#TypeType exported from @tokenops/sdk/fhe-vesting.
ERC7984_OPERATOR_MAX_DEADLINE#ConstantMax far-future deadline for ERC-7984 operator approvals.
erc7984OperatorAbi#ConstantConstant exported from @tokenops/sdk/fhe.
FaucetMetadata#Type{ confidential, underlying, maxTotalSupply, rate } — consolidated faucet metadata from getMetadata().
FaucetSupplyExhaustedError#ErrorCTTT maxTotalSupply ceiling hit; mapped from the on-chain ERC7984TotalSupplyOverflow revert.
FaucetTokenMetadata#TypePer-token metadata: name, symbol, decimals, address.
FeatureDisabledError#ErrorFeature disabled at clone-time (e.g. split on a non-split manager).
FeeConfig#TypeGlobal fee configuration (on-chain feeConfig struct).
FeeType#TypeGas-side vs token-side fee discriminant.
feeTypeName#FunctionStringify a FeeType for human-readable / JSON-output contexts.
FHE_SPLIT_DENOMINATOR#Constant90_090_000 — bigint denominator for ratio scaling (LCM of 1..16 and 10_000).
FheHandleNotAllowedError#ErrorCaller lacks ACL on the handle they tried to decrypt.
FheValueInput#TypeFHE input values, discriminated by ciphertext type.
FundAirdropArgs#TypeDiscriminated union: provide EITHER an encryptor (the SDK encrypts amount) OR a pre-built encryptedInput.
GetClaimAmountArgs#TypeArgs for ConfidentialAirdropClient.getClaimAmount — same shape as ClaimArgs minus value (the contract is not payable).
getConfidentialTestTokenAddress#FunctionDEPLOYED_ADDRESSES accessor for the CTTT (ConfidentialTokenopsTestToken) faucet token; exported from the root and testnet-faucet subpaths.
GetEncryptedFeeReserveArgs#TypeArguments for getEncryptedFeeReserve().
getFheAirdropFactoryAddress#FunctionDEPLOYED_ADDRESSES accessor for the airdrop factory.
getFheDisperseSingletonAddress#FunctionDEPLOYED_ADDRESSES accessor for the disperse singleton.
getFheVestingFactoryAddress#FunctionDEPLOYED_ADDRESSES accessor for the vesting factory.
getTestTokenAddress#FunctionDEPLOYED_ADDRESSES accessor for the TTT (TokenopsTestToken) faucet token; exported from the root and testnet-faucet subpaths.
InitiateTransferArgs#TypeType exported from @tokenops/sdk/fhe-vesting.
InsufficientBalanceError#ErrorEncrypted source balance is below the requested amount.
InsufficientFeeError#ErrorNative ETH (gas) fee or token fee did not match what the contract requires.
InsufficientGasFundsError#ErrorWallet ETH balance below estimated gas + buffer.
InvalidArgumentError#ErrorArgument shape rejected by an SDK validation boundary.
InvalidSignatureError#ErrorEIP-712 signature bytes are malformed (length, s-range).
IsSignatureValidArgs#TypeArgs for ConfidentialAirdropClient.isSignatureValid.
isTestnetFaucetChainId#FunctionPredicate: is this chain id a supported testnet faucet chain (Sepolia / local Anvil)?
isTokenOpsSdkError#ErrorBrand-based predicate.
MintConfidentialArgs#Type{ amount: bigint; to?: Address; account? } — mintConfidential input.
MintConfidentialResult#Type{ amount, handle, hash, to, underlyingMinted } — mintConfidential result (handle is the euint64).
mintMockERC7984#FunctionTest-only mint helper for the mock ERC-7984 token.
MintUnderlyingArgs#Type{ amount: bigint; to?: Address; account? } — mintUnderlying input.
MintUnderlyingResult#Type{ amount, hash, to } — mintUnderlying result.
MissingAccountError#ErrorError exported from @tokenops/sdk.
MissingClientError#ErrorThrown by React hooks when their headless client (factory / manager / airdrop / disperse) could not be constructed — usually because the wagmi publicClient isn't ready yet or the chain id has no resolvable address.
MissingEncryptorError#ErrorHook requires an encryptor source but none was passed.
MissingPublicClientError#ErrorError exported from @tokenops/sdk.
MissingWalletClientError#ErrorError exported from @tokenops/sdk.
NetworkError#ErrorRPC/transport failure during read or write.
NoPendingTransferError#ErrorNo pending transfer exists — cancel/accept fails until one is initiated.
NotPendingRecipientError#ErrorCaller is not the pending recipient of this transfer.
NotRegisteredError#ErrorThe user has not yet called register(token).
NotVestingRecipientError#ErrorCaller is not the recipient of this vesting schedule.
OperatorNotApprovedError#ErrorThe ERC-7984 token rejected the product contract as a spender — ERC7984UnauthorizedSpender(address holder, address spender) (selector 0x79f2cb38).
PartialClaimArgs#TypeDiscriminated union: provide EITHER an encryptor (the SDK encrypts amount) OR a pre-built encryptedInput.
PausedError#ErrorContract is paused; write-side calls revert until unpaused.
PendingTransfer#TypeType exported from @tokenops/sdk/fhe-vesting.
PredictAirdropArgs#TypeType exported from @tokenops/sdk/fhe-airdrop/advanced.
PredictManagerArgs#TypeType exported from @tokenops/sdk/fhe-vesting/advanced.
PreflightCreateAirdropArgs#TypeArguments for ConfidentialAirdropFactoryClient.preflightCreateAirdrop.
PreflightDisperseArgs#TypeArguments for preflightDisperse().
PreflightReport#TypeComprehensive pre-flight report returned by ConfidentialDisperseClient.preflightDisperse.
PreflightResult#Type{ ready: boolean; blockers: TokenOpsSdkError[] }.
ReceiptEventAmbiguousError#ErrorThrown when receipt-event extraction finds more than one matching event from the target contract.
ReceiptEventNotFoundError#ErrorThrown when extracting an event from a transaction receipt finds zero matching entries — typically a silent revert, a misrouted log, or (most commonly for FHE flows) an ACL Allowed grant that didn't fire because the contract entrypoint t...
RecipientCheck#TypePer-recipient validation result inside a PreflightReport.
ReentrancyError#ErrorOpenZeppelin ReentrancyGuardTransient blocked a nested call.
RegisterResult#TypeResult of register().
RelayerUnreachableError#ErrorNetwork call to the Zama relayer failed (HTTP non-2xx, timeout, DNS, etc.).
requireConfidentialTestTokenAddress#FunctionLike getConfidentialTestTokenAddress but throws if no CTTT is registered for the chain; exported from the root and testnet-faucet subpaths.
requireTestTokenAddress#FunctionLike getTestTokenAddress but throws if no TTT is registered for the chain; exported from the root and testnet-faucet subpaths.
resolveEncryptor#FunctionEager-or-lazy encryptor resolution helper.
revokeOperator#FunctionRevoke a previously granted ERC-7984 operator authorization.
RevokeOperatorArgs#TypeArguments for revokeOperator.
ScaledRatio#TypeType exported from @tokenops/sdk/fhe-vesting.
scaleRatio#FunctionScale a fractional ratio to FHE_SPLIT_DENOMINATOR.
ScaleRatioArgs#TypeType exported from @tokenops/sdk/fhe-vesting.
ScaleRatioWidth#TypeBit-width to validate the scaled numerator/denominator against.
SdkTelemetry#TypeAdapter interface for the SDK's event surface.
setOperator#FunctionApprove an operator for an ERC-7984 confidential token.
SetOperatorArgs#TypeType exported from @tokenops/sdk/fhe-disperse.
share#FunctionCompute a numerator / denominator share for FHE splits.
signClaimAuthorization#FunctionAdmin signs EIP-712 Claim(address recipient,bytes32 encryptedAmount).
SigningFailedError#ErrorWallet signature failed for a reason other than the user explicitly rejecting it (timeout, wallet crash, malformed request, etc.).
SingletonNotApprovedError#ErrorDirect-mode disperse: the sender has not approved the singleton as an ERC-7984 operator on the token, so disperseConfidentialTokenDirect would revert with the raw ERC7984UnauthorizedSpender selector (0x79f2cb38).
SplitVestingArgs#TypeType exported from @tokenops/sdk/fhe-vesting.
SplitVestingResult#TypeResult of ConfidentialVestingManagerClient.splitVesting.
SubwalletApprovalState#TypeApproval state of a user's subwallet pair for a specific token.
SubwalletsNotApprovedError#ErrorWallet-mode disperse: the user's registered sub-wallet pair has not (fully) approved the singleton as an ERC-7984 operator on the token, so the singleton cannot move funds held by the sub-wallets.
TESTNET_FAUCET_KEY#ConstantStable TanStack Query root segment for faucet hooks: tokenops-sdk.
TESTNET_FAUCET_NAMESPACE#ConstantStable TanStack Query namespace segment for faucet hooks: testnet-faucet.
TESTNET_FAUCET_SUPPORTED_CHAIN_IDS#ConstantChain ids the faucet supports: Sepolia (11155111) + local Anvil (31337).
TestnetFaucetClient#ClientTestnet-only faucet client (no on-chain factory; construct via `new` or createTestnetFaucetClient) — open-mint plain TTT + backed confidential CTTT, read balances, rate, supply.
TestnetFaucetClientConfig#Type{ publicClient, walletClient?, chainId?, address?, telemetry? } — TestnetFaucetClient constructor config.
TokenOpsContractError#ErrorGeneric contract-interaction error thrown by SDK helpers that wrap writeContract + receipt-wait (e.g.
TokenOpsSdkError#ErrorBase class for every error the SDK throws.
TokenOpsSdkErrorCode#TypeStable, string-literal error codes.
tokenopsTestTokenAbi#ConstantConstant exported from @tokenops/sdk/testnet-faucet.
TokenOpsValidationError#ErrorFree-form validation error thrown by SDK helpers that don't have a more specific typed subclass yet (e.g.
TransferAlreadyPendingError#ErroruseInitiateVestingTransfer while a prior transfer is pending.
TransferExpiredError#ErroruseAcceptVestingTransfer after the offer expired.
TransferFailedError#ErrorNative ETH or ERC-20 transfer failed at the contract layer (e.g.
UnknownWriteFailureError#ErrorFallback for write failures the SDK could not classify against either an on-chain revert frame or a known viem non-revert error class.
UnsupportedChainError#ErrorChain ID is not supported by @tokenops/sdk. (A chain that's supported but where the product isn't deployed yet throws DeploymentAddressUnavailableError instead.)
useAcceptVestingTransfer#HookAccept an inbound vesting transfer (counterparty side).
useAccessClaimableAmount#HookSubmits a transaction to read the currently-claimable amount as an euint128 handle.
useAccessClaimAmount#HookSubmits a transaction (costs gas) to grant the caller decrypt access to the claim amount as an euint64 handle. The handle is granted persistent ACL on-chain via FHE.allow(handle, msg.sender); the SDK extracts it from the receipt's ACL.Allowed event (NOT from simulation — that returns a divergent, ACL-less handle; see CLAUDE.md Pitfall #1).
useAccessEncryptedFeeReserve#HookMUTATION — submits a transaction (costs gas). Mirrors the on-chain accessEncryptedFeeReserve(token) function: grants the caller persistent decrypt access to the encrypted token fee reserve as an euint64 handle.
useAccessSettledAmount#HookSubmits a transaction to read the already-claimed (settled) amount of a vesting as an euint128 handle.
useAccessTotalAllocation#HookSubmits a transaction to read the total allocation of a vesting as an euint128 handle.
useAccessVestedAmount#HookSubmits a transaction to read the vested amount at a given timestamp as an euint128 handle.
useAdminBatchDiscloseToParty#HookAdmin variant of useBatchDiscloseToParty — caller must hold DISCLOSURE_ADMIN_ROLE.
useAdminClaim#HookAdmin variant of useClaim — caller must hold CLAIMER_ROLE.
useAdminDiscloseToParty#HookAdmin variant of useDiscloseToParty — caller must hold DISCLOSURE_ADMIN_ROLE.
useAdminGetClaimableAmount#HookAdmin variant of useAccessClaimableAmount — caller must hold DISCLOSURE_ADMIN_ROLE.
useAdminGetSettledAmount#HookAdmin variant of useAccessSettledAmount — caller must hold DISCLOSURE_ADMIN_ROLE.
useAdminGetTokenBalance#HookAdmin: read the manager clone's confidential ERC-7984 token balance as an euint64 handle.
useAdminGetTotalAllocation#HookAdmin variant of useAccessTotalAllocation — caller must hold DISCLOSURE_ADMIN_ROLE.
useAdminGetVestedAmount#HookAdmin variant of useAccessVestedAmount — caller must hold DISCLOSURE_ADMIN_ROLE.
useAdminPartialClaim#HookAdmin variant of usePartialClaim — caller must hold CLAIMER_ROLE.
useAirdropCanExtendClaimWindow#HookRead whether the admin can extend the claim window past endTime on this airdrop clone.
useAirdropClaimedSignatures#HookCheck whether a pre-computed claim struct hash has been consumed on this airdrop clone.
useAirdropClaimTypehash#HookRead the EIP-712 type hash for Claim(address recipient,bytes32 encryptedAmount).
useAirdropDeploymentBlockNumber#HookRead the block number at which this airdrop clone was deployed.
useAirdropDomainSeparator#HookRead the EIP-712 domain separator for this airdrop clone.
useAirdropEndTime#HookRead the airdrop clone's endTime — the unix timestamp when claims close.
useAirdropGasFee#HookRead the airdrop clone's immutable per-claim gas fee (in wei).
useAirdropGrantRole#HookAccessControl: grant role to accountTarget on this airdrop clone.
useAirdropHasClaimEnded#HookRead whether the current chain timestamp is past endTime on this airdrop clone.
useAirdropHasClaimStarted#HookRead whether the current chain timestamp is past START_TIME on this airdrop clone.
useAirdropHasRole#HookRead AccessControl: is account a member of role on this airdrop clone? The role hashes are stable across deployments (DEFAULT_ADMIN_ROLE, FEE_COLLECTOR_ROLE, etc.).
useAirdropIsClaimWindowActive#HookReturns true when the current timestamp is within [startTime, endTime] AND claims are not paused.
useAirdropIsPaused#HookRead whether claims are currently paused by the admin on this airdrop clone.
useAirdropIsSignatureClaimed#HookHas this admin signature already been redeemed?
useAirdropIsSignatureValid#HookOn-chain view that checks whether the admin signature is valid for the connected caller before paying gas — returns false for a non-admin signer or already-claimed signature; throws if the claim window is inactive or the signature bytes are malformed.
useAirdropRevokeRole#HookAccessControl: revoke role from accountTarget on this airdrop clone.
useAirdropStartTime#HookRead the airdrop clone's immutable START_TIME — the unix timestamp when claims become available.
useAirdropToken#HookRead the airdrop clone's immutable TOKEN.
useAirdropWithdrawGasFee#HookFee collector: withdraw collected ETH gas fees from the airdrop clone.
useAllRecipients#HookEvery recipient currently registered on this manager.
useAllRecipientsLength#HookCount of registered recipients (cheap pre-paging check).
useAllRecipientsSliced#HookRead a [start, end) slice of the recipients set.
useApproveTokenOnWallets#HookApprove the singleton as an ERC-7984 operator over the caller's registered subwallets for a single token.
useBatchCreateVesting#HookBatch variant of useCreateVesting — open N vestings in one tx with one batch input proof.
useBatchDiscloseHandlesToParty#HookBatch ACL grant across many handles in one tx.
useBatchDiscloseHandlesToParty#HookBatch ACL grant across many handles in one tx.
useBatchDiscloseToParty#HookBatch variant of useDiscloseToParty.
useBatchRevokeVesting#HookBatch variant of useRevokeVesting.
useCalculateFee#HookQuote the on-chain fee config for a given disperse batch shape (count + mode).
useCancelVestingTransfer#HookCancel an outbound transfer before the counterparty accepts.
useClaim#HookRecipient-side claim. For FeeType.Gas managers pass value (read it with useManagerFeeInfo); omit value for FeeType.DistributionToken.
useClaim#HookClaim tokens from an airdrop using an EIP-712 admin signature.
useConfidentialAirdropFactoryImplementation#HookRead the FHE-airdrop factory's current implementation() address — the LibClone target every new airdrop clone delegates to.
useConfidentialBalance#HookRead the encrypted confidential balance handle (euint64 ciphertext) for account — defaults to the connected wallet.
useConfidentialVestingFactoryImplementation#HookRead the FHE-vesting factory's current implementation() address — the LibClone target every new manager clone delegates to.
useCreateAndFundConfidentialAirdrop#HookSingle-flow helper: deploy + fund in one bundle.
useCreateAndFundConfidentialAirdropAndGetAddress#HookSame as useCreateAndFundConfidentialAirdrop but returns the clone address.
useCreateConfidentialAirdrop#HookDeploy an airdrop clone for a token + admin + claim window.
useCreateConfidentialAirdropAndGetAddress#HookDeploy an airdrop + wait for receipt + return the clone address.
useCreateManager#HookDeploy a per-user vesting manager clone via the factory.
useCreateManagerAndGetAddress#HookDeploy a manager and wait for the receipt — returns the deterministic clone address.
useCreateVesting#HookOpen a new vesting schedule on a manager — encrypts the amount client-side, submits the tx.
useDecryptedHandle#HookSubscribe to a single encrypted handle and reactively decrypt via the connected wallet.
useDeploymentBlockNumber#HookRead the block number at which the singleton was deployed — useful as the fromBlock argument to getLogs when subscribing to events.
useDirectVestingTransfer#HookRecipient-driven one-step transfer — moves a vesting to a new owner without waiting for counterparty acceptance.
useDisableCustomFee#HookAdmin: disable the per-creator fee override for creator.
useDisableCustomFee#HookAdmin: remove a per-creator fee override, reverting to defaultGasFee.
useDisableCustomFee#HookAdmin: remove a per-user fee override, falling back to the global defaults.
useDiscloseHandleToParty#HookGrant ACL on a single ciphertext handle to a third party (e.g. an auditor).
useDiscloseHandleToParty#HookGrant ACL on a single ciphertext handle to a third party (e.g. an auditor).
useDiscloseToParty#HookGrant ACL on a single encrypted field of a vesting (total allocation, settled, vested, or claimable) to a third party.
useDisperse#HookMulti-recipient confidential transfer in one tx — batch-encrypts amounts + per-recipient ACL.
useEnsureOperator#HookEnsure spender is an ERC-7984 operator for the connected account on token, sending a setOperator transaction only when the grant is missing.
useEnsureOperator#HookEnsure spender is an ERC-7984 operator for the connected account on token, sending a setOperator transaction only when the grant is missing.
useEnsureOperator#HookEnsure spender is an ERC-7984 operator for the connected account on token, sending a setOperator transaction only when the grant is missing.
useEnsureOperator#HookEnsure spender is an ERC-7984 operator for the connected account on token, sending a setOperator transaction only when the grant is missing.
useExtendClaimWindow#HookAdmin extends the claim deadline.
useFactoryCustomFee#HookRead the per-creator fee override set on the factory for creator.
useFactoryCustomFee#HookRead the per-creator fee override set on the factory for creator.
useFactoryDefaultFeeType#HookRead the factory-wide default fee model (FeeType.Gas or FeeType.DistributionToken) applied to newly-created manager clones.
useFactoryDefaultGasFee#HookRead the factory-wide default gas fee (in wei) — applied to new FeeType.Gas manager clones at deployment.
useFactoryDefaultGasFee#HookRead the factory-wide default per-claim gas fee (in wei) — applied to new airdrop clones at deployment when the creator has no custom override.
useFactoryDefaultTokenFee#HookRead the factory-wide default token fee in basis points — applied to new FeeType.DistributionToken manager clones at deployment.
useFactoryFeeCollector#HookRead the factory's current fee collector address.
useFactoryFeeCollector#HookRead the factory's current fee collector address — the account authorized to call withdrawGasFee on each deployed airdrop clone.
useFactoryInitCodeHash#HookRead the init-code hash the factory would use to CREATE2 a manager clone with the given token + deployer (+ optional immutable flags).
useFactoryInitCodeHash#HookRead the init-code hash the factory would use to CREATE2 an airdrop clone with the given params + gasFee.
useFaucetDecimals#HookRead the decimals of the confidential token (CTTT) — 6.
useFaucetMetadata#HookRead consolidated faucet metadata in a single hook — both tokens' name/symbol/decimals/address, the conversion rate, and the maxTotalSupply ceiling.
useFaucetRate#HookRead the decimal-conversion rate between underlying and confidential units: 1 CTTT 6-decimal unit is backed by rate TTT 18-decimal base units (10^(18-6) = 10^12).
useFundConfidentialAirdrop#HookEncrypt the funding amount and transferFromConfidential into the clone.
useGetBatchLimits#HookRead the maximum batch size for each of the three disperse modes ("wallet", "direct", "wallet-token-fee").
useGetClaimableAmount#HookEncrypted-view read: min(vested, balance) - settled. Pair with useDecryptedHandle.
useGetClaimAmount#HookSubmits a transaction (costs gas) to grant the caller decrypt access to the claim amount as an euint64 handle. The handle is granted persistent ACL on-chain via FHE.allow(handle, msg.sender); the SDK extracts it from the receipt's ACL.Allowed event (NOT from simulation — that returns a divergent, ACL-less handle; see CLAUDE.md Pitfall #1).
useGetEncryptedFeeReserve#Hook@deprecated — Renamed to useAccessEncryptedFeeReserve; will be removed in the next major. MUTATION — submits a transaction (costs gas). Mirrors the on-chain accessEncryptedFeeReserve(token) function: grants the caller persistent decrypt access to the encrypted token fee reserve as an euint64 handle.
useGetFeeConfig#HookRead the singleton's { gasFeeEnabled, tokenFeeEnabled, defaultGasFee, defaultTokenFee } fee config.
useGetFees#HookRead consolidated fee information for user — combines per-user resolved fees (getFeeAmounts) with the global feeConfig toggles in one read.
useGetSettledAmount#HookEncrypted-view read: running settled total. Pair with useDecryptedHandle.
useGetTotalAllocation#HookEncrypted-view read: original allocation. Pair with useDecryptedHandle.
useGetVestedAmount#HookEncrypted-view read: time-unlocked total. Pair with useDecryptedHandle.
useGetWallets#HookRead the deployer's two registered subwallet addresses.
useGrantRole#HookAccessControl: grant role to accountTarget.
useGrantRole#HookAccessControl: grant role to accountTarget on the singleton.
useHasApprovedSubwallets#HookCheck whether a user's registered subwallets have approved the singleton as an ERC-7984 operator for token.
useHasRole#HookRead AccessControl: is account a member of role on this manager? The role hashes are stable across deployments — see useRoleConstants if you need to look them up dynamically.
useHasRole#HookRead AccessControl: is account a member of role on the singleton? All five role constants (DEFAULT_ADMIN_ROLE, FEE_MANAGER_ROLE, FEE_COLLECTOR_ROLE, PAUSER_ROLE, WITHDRAWER_ROLE) are exported from @tokenops/sdk/fhe-disperse/react.
useInferredTotalSupply#HookRead the wrapper's inferred total supply: underlying held in custody divided by rate, an upper bound on the confidential total supply, in CTTT 6-decimal units.
useInitiateVestingTransfer#HookRecipient initiates a two-step transfer of a vesting position to another recipient.
useIsOperator#HookRead spender's ERC-7984 operator status for holder on token.
useIsOperator#HookRead spender's ERC-7984 operator status for holder on token.
useIsOperator#HookRead spender's ERC-7984 operator status for holder on token.
useIsOperator#HookRead spender's ERC-7984 operator status for holder on token.
useIsPaused#HookRead the singleton's paused flag.
useIsRecipient#HookRead whether account is currently a recipient on this manager clone.
useIsRegistered#HookHas this deployer already called register?
useManagerDeploymentBlockNumber#HookRead the manager clone's immutable DEPLOYMENT_BLOCK_NUMBER — the block at which the factory deployed this clone via LibClone.
useManagerFee#HookRead the manager clone's immutable FEE (in wei for FeeType.Gas, in basis points for FeeType.DistributionToken).
useManagerFeeInfo#HookResolves { feeType, fee } — caller passes the right branch to useClaim.
useManagerFeeType#HookRead the manager clone's immutable FEE_TYPE (FeeType.Gas or FeeType.DistributionToken).
useManagerIsPausable#HookRead whether the manager clone has pause/unpause enabled (immutable).
useManagerIsSplitEnabled#HookRead whether the manager clone has split-vesting enabled (immutable).
useManagerMaxBatchSize#HookRead the manager clone's maxBatchSize — upper bound for batchCreateVesting.
useManagerMaxRevokeBatchSize#HookRead the manager clone's maxRevokeBatchSize — upper bound for batchRevokeVesting.
useManagerPaused#HookRead whether the manager clone is currently paused.
useManagerToken#HookThe manager clone's immutable underlying token address.
useMaxTotalSupply#HookRead the max confidential total supply the wrapper supports (type(uint64).max).
useMintConfidential#HookMint backed confidential test tokens (CTTT) to a recipient.
useMintUnderlying#HookMint standard (non-confidential) ERC-20 test tokens (TTT) to a recipient.
usePartialClaim#HookClaim less than the unlocked amount — leaves the remainder encrypted on the clone.
usePause#HookPauser: pause the manager clone — blocks claim, partialClaim, splitVesting, initiateVestingTransfer, acceptVestingTransfer, and directVestingTransfer.
usePause#HookAdmin: pause all disperse operations on the singleton.
usePendingVestingTransfer#HookRead the pending transfer (if any) on a vesting — returns { newRecipient, initiatedAt, expiresAt }.
usePredictAirdropAddress#HookCREATE2 the airdrop clone address before deploying.
usePredictManagerAddress#HookCREATE2 the manager clone address before deploying — pre-flight UI flows.
usePredictWallets#HookCompute the deterministic subwallet addresses for a deployer without registering.
usePreflightCreateAirdrop#HookRead-only preflight for useCreateConfidentialAirdrop / useCreateAndFundConfidentialAirdrop — wraps ConfidentialAirdropFactoryClient.preflightCreateAirdrop as a TanStack query.
usePreflightCreateVesting#HookRead-only preflight for useCreateVesting / useBatchCreateVesting — wraps ConfidentialVestingManagerClient.preflightCreateVesting as a TanStack query.
usePreflightDisperse#HookDry-run validator — checks operator + balance + paused state before broadcasting.
UserDecryptNotAllowedError#ErrorZama ACL refused to grant decryption for the caller on the requested handle.
useRecipientVestings#HookRead all vesting IDs owned by recipient.
useRecipientVestingsLength#HookRead the number of vesting schedules owned by recipient.
useRecipientVestingsSliced#HookRead a [start, end) slice of recipient's vesting IDs.
useRecoverERC20FromWallets#HookRecover ERC-20 tokens accidentally sent to the caller's registered wallets.
useRecoverFromWallets#HookRecover residual confidential ERC-7984 tokens from the caller's registered wallets to to.
useRegister#HookFirst-time setup for a deployer — singleton creates the two ERC-1167 subwallets.
useRenounceRole#HookAccessControl: renounce role from msg.sender.
useRescueConfidentialTokens#HookSweep stranded confidential tokens out of the singleton contract (admin-only).
useRescueERC20#HookSweep stranded plain ERC-20 tokens (e.g. someone sent the wrong token).
useResetGasFee#HookAdmin: reset the factory's default gas fee to zero.
useResetTokenFee#HookAdmin: reset the factory's default token fee to zero.
useRevokeRole#HookAccessControl: revoke role from accountTarget.
useRevokeRole#HookAccessControl: revoke role from accountTarget on the singleton.
useRevokeTokenOnWallets#HookRevoke operator approval on the subwallets (rollback).
useRevokeVesting#HookAdmin revocation — clears the schedule (revocable variants only) and returns funds.
UserFees#TypeResolved fee configuration for a given user.
useRoleConstants#HookRead all eight AccessControl role hashes off the manager in one fan-out.
UserRejectedSignatureError#ErrorUser rejected the wallet signature prompt.
useSetCustomFee#HookAdmin: install a per-creator fee override on the factory.
useSetCustomFee#HookAdmin: install a per-creator gas-fee override on the factory.
useSetCustomFee#HookAdmin: install a per-user fee override (gas fee in wei, token fee in BPS).
useSetDefaultFeeType#HookAdmin: set the factory's default fee model (FeeType.Gas or FeeType.DistributionToken) for new manager clones.
useSetDefaultGasFee#HookAdmin: set the factory-wide default gas fee (in wei).
useSetDefaultGasFee#HookAdmin: change the factory-wide default per-claim gas fee.
useSetDefaultTokenFee#HookAdmin: set the factory-wide default token fee (basis points).
useSetFeeCollector#HookAdmin: set the factory's fee collector address.
useSetFeeCollector#HookAdmin: change the factory's fee collector address.
useSetFeeConfig#HookAdmin: update the global fee configuration — enable/disable gas and token fees, set the defaults.
useSetMaxBatchSize#HookAdmin: bump or lower maxBatchSize (cap for useBatchCreateVesting).
useSetMaxBatchSizeDirect#HookAdmin: set the maximum batch size for "direct" mode disperses.
useSetMaxBatchSizeHolding#HookAdmin: set the maximum batch size for "wallet" mode disperses.
useSetMaxBatchSizeTokenFee#HookAdmin: set the maximum batch size for "wallet-token-fee" mode disperses.
useSetMaxRevokeBatchSize#HookAdmin: bump or lower maxRevokeBatchSize (cap for useBatchRevokeVesting).
useSetPaused#HookAdmin: pause or unpause claims on this airdrop clone.
useSignClaimAuthorization#HookAdmin signs the off-chain EIP-712 Claim(address recipient,bytes32 encryptedAmount) message.
useSplitVesting#HookSplit one vesting into two with custom proportions; both stay encrypted.
useTransferFeeCollectorRole#HookTransfer the FEE_COLLECTOR_ROLE to newCollector.
useUnderlyingBalance#HookRead the plaintext underlying TokenopsTestToken (TTT) balance for account (defaults to the connected wallet), in TTT 18-decimal base units.
useUnderlyingDecimals#HookRead the decimals of the underlying token (TTT) — 18.
useUnderlyingTokenAddress#HookRead the underlying TokenopsTestToken (TTT) address backing the CTTT wrapper.
useUnpause#HookPauser: unpause the manager clone.
useUnpause#HookAdmin: unpause the singleton.
useVestingInfo#HookPlaintext schedule shape (start / end / cliff / interval) + encrypted-handle metadata.
useWalletImplementation#HookRead the WALLET_IMPLEMENTATION address — the singleton clones this deterministically (Clones.cloneDeterministic) for each registered user to derive their wallet pair.
useWithdraw#HookAdmin: withdraw all confidential tokens from the airdrop to recipient.
useWithdrawAdmin#HookAdmin: withdraw an encrypted amount of the manager's distribution token to msg.sender.
useWithdrawGasFee#HookFee collector: withdraw collected gas-fee ETH (FeeType.Gas managers).
useWithdrawGasFee#HookFee-collector: withdraw amount wei of accumulated ETH gas fees from the singleton to to.
useWithdrawOtherConfidentialToken#HookAdmin: rescue an ERC-7984 (confidential) token other than this manager's configured token.
useWithdrawOtherConfidentialToken#HookAdmin: rescue accidentally sent ERC-7984 confidential tokens (other than this airdrop's configured TOKEN).
useWithdrawOtherToken#HookAdmin: rescue an ERC-20 (non-confidential) other than this manager's configured token.
useWithdrawOtherToken#HookAdmin: rescue accidentally sent ERC-20 (non-confidential) tokens.
useWithdrawTokenFee#HookFee collector: withdraw collected distribution-token fees (FeeType.DistributionToken managers).
useWithdrawTokenFee#HookFee-collector: withdraw accumulated encrypted token fees.
VestingExpiredError#ErrorSchedule passed its end timestamp; nothing left to claim.
VestingId#TypeBranded Hex for a vesting position.
VestingInfo#TypePlaintext schedule shape + encrypted-handle metadata.
VestingNotFoundError#ErrorvestingId not registered on the manager.
VestingNotRevocableError#ErroruseRevokeVesting on a vesting created with isRevocable=false.
VestingParams#TypeConstructor args for createVesting.
VestingRevokedError#ErrorOperator revoked this vesting — claims return revoked state.
WalletChainMismatchError#ErrorWallet chain differs from the SDK client's chain.
WalletRejectedError#ErrorUser rejected the tx prompt at the wallet.
WithdrawTokenFeeResult#TypeResult of withdrawTokenFee().
withTelemetry#FunctionWrap an SDK client with an SdkTelemetry adapter.