2.0 RC docsView 1.x docs
v2.0.0-rc.1 release candidate
The API is frozen and later candidates carry fixes only, except the receipt-free and Safe create surface of /fhe-airdrop, which is @beta. Published on the next dist-tag; latest stays on 1.6.0 until 2.0.0.
Testnet Faucet 2.0 · Types · 15@tokenops/sdk/testnet-faucet

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= MintUnderlyingArgs

    Mutation variables of useMintUnderlying, gas included.

  • UseMintConfidentialArgs= MintConfidentialArgs

    Mutation variables of useMintConfidential, gas included.