Disperse · ABIs · 2

Raw Disperse ABI exports.

Singleton ABI for the global disperse surface; wallet ABI for the subwallet clones the singleton deploys per registered user.

Available ABIs

  • disperseConfidentialAbi@tokenops/sdk/fhe-disperse

    Singleton contract: register, disperse (direct / wallet / token-fee), disclose, fee config, recovery, role mgmt.

    53 fns20 events
  • disperseWalletAbi@tokenops/sdk/fhe-disperse

    Per-user subwallet clone: holds routed inflow; controller-gated approve / revoke / recover surface.

    6 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-disperse
ts
import { getContract } from "viem";
import { disperseConfidentialAbi } from "@tokenops/sdk/fhe-disperse";

// 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: managerAddress,
  abi: disperseConfidentialAbi,
  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 Disperse › Events — same ABI, indexer-friendly view.Browse recipes