Airdrop · Types · 11@tokenops/sdk/fhe-airdrop

Airdrop type surface.

EIP-712-shaped surface. The admin signs a Claim(address recipient,bytes32 encryptedAmount) message off chain; the recipient submits exactly that { encryptedInput, signature } pair on claim.

Branded primitives· 2

  • AirdropIdHex alias (softened brand)

    Identifies an airdrop clone deployed by the factory. Brand at the boundary with asAirdropId.

    Concept primer →
  • EncryptedHandleHex alias (softened brand)

    Raw euint64 handle, e.g. the bytes32 the admin signed over. Brand inbound hex with asEncryptedHandle.

    Concept primer →

Args· 5

  • AirdropParams{ token, startTimestamp, endTimestamp, canExtendClaimWindow, admin }

    Campaign parameters. The SDK maps startTimestamp/endTimestamp to the on-chain startTime/endTime fields.

  • CreateAirdropArgs{ params: AirdropParams, userSalt, account? }

    Factory deploy. userSalt is combined with msg.sender to derive the CREATE2 salt.

  • CreateAndFundAirdropArgs{ params, userSalt, (amount + encryptor?) | encryptedInput, account? }

    Deploy and seed the pool in one tx. Supply exactly one of amount (SDK encrypts) or encryptedInput.

  • FundAirdropArgs{ token, params, userSalt, deployer, gasFee, (amount + encryptor?) | encryptedInput, account? }

    Factory-side funding of an existing (or predicted) clone. gasFee must match the fee active at create time.

  • ClaimArgs{ encryptedInput, signature, value?, account? }

    Recipient-side claim. Submit the admin-issued payload as-is; the SDK never re-encrypts.

Config· 2

  • ConfidentialAirdropFactoryClientConfig{ publicClient, walletClient?, address?, chainId?, encryptor?, telemetry? }

    Factory client constructor. encryptor is required at call time for the fund methods.

  • ConfidentialAirdropClientConfig{ publicClient, walletClient?, address, aclAddress?, telemetry? }

    Per-clone client constructor. No encryptor: claims submit pre-encrypted admin payloads.

Result· 2

  • CreateAirdropResult{ hash, airdrop }

    Factory deploy output. airdrop is parsed from the ConfidentialAirdropCreated event and always present.

  • EncryptedViewResult{ handle, hash }

    Returned by getClaimAmount. Pass handle to the Zama relayer's userDecrypt.