useAdminDiscloseBalanceToParty
Submits a transaction. Discloses the instance's confidential pool balance to party.
@tokenops/sdk/fhe-airdrop/react{ mutate, mutateAsync, isPending, error, data }Description
Submits a transaction. Discloses the instance's confidential pool
balance to party. Requires DISCLOSURE_ADMIN_ROLE.
The grantee is `party`, not the caller. The handle is recovered from the
ACL Allowed event naming party, so unless the caller is also party the
returned data.handle is one it cannot decrypt - hand it to party rather
than to your own userDecrypt, or the relayer rejects it with "not
authorized to decrypt". As with every encrypted view here, the handle comes
from the receipt and never from a simulation.
Invalidates: nothing. ACL is append-only and no read hook in this subpath caches who is allowed on a handle.
Signature
function useAdminDiscloseBalanceToParty(options: AirdropInstanceClientOptions): UseMutationResult<EncryptedViewResult, Error, AdminDiscloseBalanceToPartyArgs>;Parameters
Shape of the object you pass to .mutate(args) is the SDK type AdminDiscloseBalanceToPartyArgs. Inspect the type for the full shape (discriminated unions collapse to a tagged variant at call time).
Example
const disclose = useAdminDiscloseBalanceToParty({ address: airdropAddress });
const { handle } = await disclose.mutateAsync({ party: auditorAddress });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 adminDiscloseBalanceToParty = useAdminDiscloseBalanceToParty(/* options */);
adminDiscloseBalanceToParty.mutate(args, {
onSuccess() {
// Coarse invalidation: refresh every cached read on this product surface.
queryClient.invalidateQueries({
queryKey: ["tokenops-sdk", "fhe-airdrop"],
});
},
});See also
Other Encrypted read hooks in airdrop v2:
useDiscloseHandleToPartyGrant ACL on a single ciphertext handle to a third party (e.g. an auditor).useAdminBatchDiscloseBalanceToPartiesSubmits a transaction. Discloses the instance's confidential pool balance to several parties at once.useAdminGetCurrentBalanceSubmits a transaction. Reads the instance's remaining confidential pool balance as an euint64 handle the caller may decrypt - pass data.handle to the Zama relayer's userDecrypt.useRefreshComplianceBalanceSubmits a transaction. Re-grants the compliance-manager clone on the instance's current pool balance and returns the handle it was granted on.