Testnet Faucet 2.0 type surface.
Sepolia-only surface. Mints take plaintext bigint amounts, no encryptor and no Zama peer. Both mint args extend GasOverride.
Args· 2
MintUnderlyingArgs{ amount, to?, account?, gas? }Mint plain 18-decimal TTT through the open mint(to, amount). amount is a uint256 in TTT base units; to defaults to the signing account; gas is an optional fixed limit (GasOverride).
MintConfidentialArgs{ amount, to?, account?, gas? }Mint backed 6-decimal CTTT through the open faucet mint(to, amount). amount is a public uint64: it is plaintext calldata and appears in the ConfidentialMint event. account accepts a viem Account or an Address.
Results· 4
MintUnderlyingResult{ hash, to, amount }Returned by mintUnderlying() once the receipt confirms success.
MintConfidentialResult{ hash, to, amount, underlyingMinted, handle }Returned by mintConfidential(), decoded from ConfidentialMint. underlyingMinted is amount * rate in TTT base units. handle is informational: the caller only gets transient ACL on it, so read the balance with confidentialBalanceOf to decrypt.
FaucetTokenMetadata{ address, name, symbol, decimals }One side of the token pair. CTTT reports decimals 6; TTT reports 18.
FaucetMetadata{ confidential, underlying, rate, maxTotalSupply }Returned by getMetadata(): both FaucetTokenMetadata entries plus the backing rate and the type(uint64).max cap.
Config + gas· 3
TestnetFaucetClientConfig{ publicClient, walletClient?, address?, chainId?, telemetry?, gasHeadroomPercent? }new TestnetFaucetClient(...) or createTestnetFaucetClient(...). Reads need only publicClient; mints need walletClient. address overrides the CTTT proxy (required on local Anvil); TTT is always read from that wrapper. chainId selects the registry addresses and the testnet guard, not the RPC.
GasHeadroomOption{ gasHeadroomPercent? }Extended by TestnetFaucetClientConfig. Percent added on top of every mint's gas estimate; defaults to DEFAULT_GAS_HEADROOM_PERCENT, 0 sends the bare estimate. Also re-exported from /testnet-faucet/react.
GasOverride{ gas? }Extended by both mint args. A gas limit sent as is, skipping the estimate and headroom. Also re-exported from /testnet-faucet/react.
Hook options (/testnet-faucet/react)· 6
BaseHookOptions{ address?, chainId?, gasHeadroomPercent?, telemetry? }Accepted by every faucet hook and forwarded into the headless client. address overrides the CTTT proxy; chainId defaults to usePublicClient().chain?.id.
ReadHookQueryOptions{ query? }Accepted by every read hook: TanStack Query options minus queryKey and queryFn. query.enabled can turn a ready query off, never an unready one on; query.select keeps the result type.
UseConfidentialBalanceArgsBaseHookOptions & ReadHookQueryOptions<Hex> & { account? }useConfidentialBalance args. account defaults to the connected wallet; the hook stays disabled until one is available.
UseUnderlyingBalanceArgsBaseHookOptions & ReadHookQueryOptions<bigint> & { account? }useUnderlyingBalance args, same account defaulting as the confidential read.
UseMintUnderlyingArgs= MintUnderlyingArgsMutation variables of useMintUnderlying, gas included.
UseMintConfidentialArgs= MintConfidentialArgsMutation variables of useMintConfidential, gas included.