Testnet Faucet · ABIs · 2
Raw Testnet Faucet ABI exports.
Confidential token ABI for the backed ERC-7984 faucet mint; plain ERC-20 ABI for the 18-decimal underlying. Testnet-only.
Available ABIs
confidentialTokenopsTestTokenAbi@tokenops/sdk/testnet-faucetCTTT: 6-decimal ERC-7984 confidential wrapper (UUPS proxy). Open backed faucet mint(to, amount) → euint64; encrypted balances, disclosure, operator + upgrade surface.
41 fns13 eventstokenopsTestTokenAbi@tokenops/sdk/testnet-faucetTTT: plain 18-decimal ERC-20 underlying token. Open mint(to, amount); standard Transfer / Approval surface.
10 fns2 events
Direct viem usage
The SDK client classes are the recommended surface — they handle address resolution, typed errors, receipt/event parsing, and telemetry. But the ABIs themselves ship for one-off reads, indexing, or third-party tooling integration.
@tokenops/sdk/testnet-faucet
ts
import { getContract } from "viem";
import { confidentialTokenopsTestTokenAbi } from "@tokenops/sdk/testnet-faucet";
// 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: confidentialTokenopsTestTokenAbi,
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 address resolution, typed errors, receipt/event parsing, and telemetry —
// but the underlying ABI is the same.