Testnet Faucet · Types · 7@tokenops/sdk/testnet-faucet

Testnet Faucet type surface.

Testnet-only surface (Sepolia + Anvil). Mints take plaintext bigint amounts — no encryptor, no @zama-fhe dependency.

Args· 2

  • MintUnderlyingArgs{ amount, to?, account? }

    Mint plain 18-decimal TTT (TokenopsTestToken) via the open mint(to, amount). amount is a plaintext bigint; to defaults to the wallet account.

  • MintConfidentialArgs{ amount, to?, account? }

    Mint backed 6-decimal CTTT (ConfidentialTokenopsTestToken, ERC-7984) via the open faucet mint(to, amount uint64). amount is plaintext bigint — the encrypted euint64 is produced on-chain, not client-side.

Result· 4

  • MintUnderlyingResult{ amount, hash, to }

    Returned by mintUnderlying(). amount + recipient echo the validated input; hash is the tx hash.

  • MintConfidentialResult{ amount, handle, hash, to, underlyingMinted }

    Returned by mintConfidential(). handle is the euint64 ciphertext handle; underlyingMinted is the uint256 backing amount — both parsed from the ConfidentialMint event.

    Concept primer →
  • FaucetTokenMetadata{ address, decimals, name, symbol }

    Per-token descriptor. CTTT reports decimals 6; TTT reports decimals 18 — mind the mismatch when formatting amounts.

  • FaucetMetadata{ confidential, underlying, maxTotalSupply, rate }

    Returned by getMetadata(). Pairs the confidential + underlying FaucetTokenMetadata with the on-chain maxTotalSupply and rate bigints.

Config· 1

  • TestnetFaucetClientConfig{ publicClient, walletClient?, chainId?, address?, telemetry? }

    Headless client constructor (new TestnetFaucetClient(...) or the createTestnetFaucetClient helper; no on-chain factory). Reads need only publicClient; mints need walletClient. address overrides the resolved CTTT proxy — the TTT backing token is always read from that wrapper's underlying() getter, never supplied separately. chainId is guarded to Sepolia (11155111) or Anvil (31337).