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.
Airdrop v2 · ABIs · 6

Raw Airdrop v2 ABI exports.

Five ABIs replace v1's two: a shared interface, both concrete variants, the factory, and the new compliance manager - plus the shared ERC-7984 operator ABI every funding call depends on.

Available ABIs

  • airdropFactoryAbi@tokenops/sdk/fhe-airdrop

    AirdropFactory: createEcdsaAirdrop / createMerkleAirdrop / createAndFund*, the deployment registry, fee/impl/compliance/upgradeability policy admin, and the factory's own 5-role RBAC.

    58 fns31 events
  • confidentialAirdropBaseAbi@tokenops/sdk/fhe-airdrop

    IConfidentialAirdropBase interface only: lifecycle, treasury, rescue, and disclosure entrypoints shared by both variants. No AccessControl/Pausable selectors - those are merged in separately for AirdropBaseClient's default ABI.

    33 fns10 events
  • ecdsaConfidentialAirdropAbi@tokenops/sdk/fhe-airdrop

    ECDSAConfidentialAirdrop, the concrete deployed contract: EIP-712 claim/getClaimAmount/isSignatureValid, plus the OZ AccessControl/Pausable/UUPS mixins.

    57 fns19 events
  • merkleConfidentialAirdropAbi@tokenops/sdk/fhe-airdrop

    MerkleConfidentialAirdrop, the concrete deployed contract: claim/getClaimAmount/getClaimedAmount with explicit account + merkleProof, setMerkleRoot, plus the same OZ mixins.

    56 fns19 events
  • complianceRoleManagerAbi@tokenops/sdk/fhe-airdrop

    ComplianceRoleManager, the per-instance compliance clone the factory deploys atomically alongside every campaign: platform + client delegate management, DELEGATION_ADMIN_ROLE.

    18 fns7 events
  • erc7984OperatorAbi@tokenops/sdk/fhe

    Minimal ERC-7984 isOperator / setOperator fragment, not airdrop-specific. This is the funding prerequisite: fundAirdrop / createAndFund* pull from the caller's confidential balance and revert ERC7984UnauthorizedSpender without a prior setOperator. setOperator / revokeOperator are re-exported at the airdrop root; isOperator / ensureOperator come from @tokenops/sdk/fhe.

    2 fns1 events

Direct viem usage

The SDK client classes are the recommended surface — they handle encryptor resolution, branded ids, retries, telemetry. But the ABIs themselves ship for one-off reads, indexing, or third-party tooling integration.

@tokenops/sdk/fhe-airdrop
ts
import { getContract } from "viem";
import { ecdsaConfidentialAirdropAbi } from "@tokenops/sdk/fhe-airdrop";

// Attach directly to viem if you'd rather skip the SDK client class —
// useful for one-off reads or for surfacing the contract in your own tooling.
const contract = getContract({
  address: contractAddress,
  abi: ecdsaConfidentialAirdropAbi,
  client: { public: publicClient, wallet: walletClient },
});

// Now you have a viem-typed contract — every method exists on contract.read /
// contract.write. The SDK client class wraps this with retries, encryptor resolution, branded ids —
// but the underlying ABI is the same.
For decoded event consumption, see Airdrop v2 › Events — same ABI, indexer-friendly view.Browse recipes