useEcdsaClaim
Claim a signed encrypted allocation on an ECDSAConfidentialAirdrop instance.
@tokenops/sdk/fhe-airdrop/react{ mutate, mutateAsync, isPending, error, data }Description
Claim a signed encrypted allocation on an ECDSAConfidentialAirdrop
instance.
An empty inputProof is accepted only for a zero handle or one the sender and the
instance already hold ACL on; see EcdsaClaimArgs.encryptedInput.
Invalidates: the fn "isSignatureValid" PREFIX for this instance. A successful
claim consumes the EIP-712 digest, so every cached signature check on this instance
is now stale in the dangerous direction - it still answers true for a signature
that can no longer be claimed. Per-claim dedup state itself remains unqueryable.
Signature
function useEcdsaClaim(options: EcdsaAirdropInstanceClientOptions): UseMutationResult<Hex, Error, EcdsaClaimArgs>;Parameters
Shape of the object you pass to .mutate(args) is the SDK type EcdsaClaimArgs. Inspect the type for the full shape (discriminated unions collapse to a tagged variant at call time).
Example
const claim = useEcdsaClaim({ address: airdropAddress });
await claim.mutateAsync({ encryptedInput, dedupId, deadline, signer, signature });Pulled directly from the hook's TSDoc block — the same snippet your IDE shows on hover.
Errors
This mutation can reject with SDK-level, product-level, or generic-fallback errors. Product classes carry the offending value as fields — render them inline instead of a generic "transaction failed." See Airdrop v2 › Errors for the per-class recovery table.
Invalidation recipe
After this mutation succeeds, invalidate the queries it affects so consumer UI re-fetches fresh state. The SDK never auto-invalidates — that's a consumer decision (different apps cache different shapes).
import { useQueryClient } from "@tanstack/react-query";
const queryClient = useQueryClient();
const ecdsaClaim = useEcdsaClaim(/* options */);
ecdsaClaim.mutate(args, {
onSuccess() {
// Coarse invalidation: refresh every cached read on this product surface.
queryClient.invalidateQueries({
queryKey: ["tokenops-sdk", "fhe-airdrop"],
});
},
});See also
Other Write hooks in airdrop v2:
useFundAirdropTop up an already-deployed instance's pool through the factory.useMerkleClaimClaim the outstanding amount for a proof-bearing entry on a MerkleConfidentialAirdrop instance.useGrantInstanceRolesSplit an airdrop instance's roles after create — one grantRole / revokeRole transaction per requested assignment, submitted in the order planInstanceRoleSplit computes.useAddComplianceDelegateGrant delegate permanent user-decryption delegation over this compliance clone's airdrop.