> ## Documentation Index
> Fetch the complete documentation index at: https://privacycash.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# FAQ

1. **Who pays for the network fees?**

   The user pays EVM network fees on deposit (included in the `txSender` callback). For withdrawals, the transaction is submitted directly and the user's wallet also covers gas.\
   \
   After you integrate with the SDK, no additional fee infrastructure is needed.

2. **What's the minimum deposit and withdrawal amount?**

   Both are **0.001 ETH**. Attempting to deposit or withdraw below this threshold will throw an error.

3. **Is there testnet support?**

   Not currently. Please test on the supported mainnet deployments: Base (`8453`) or Ethereum (`1`). Amounts as small as 0.001 ETH work fine for testing.

4. **Does the client ever send the private key or encryption key to the relayer?**

   No. The signature derived from `signMessage` never leaves the client. All key derivation and UTXO decryption happens locally in the browser or Node.js process.

5. **What `keyBasePath` should I use?**

   * **Next.js frontend**: Place `circuit2.zkey` in `public/` and pass `keyBasePath: '/circuit'`.
   * **Node.js backend**: Pass the path relative to your working directory, e.g., `keyBasePath: './circuits/transaction'`.

6. **Why does `withdraw()` succeed but the recipient receives less than the requested amount?**

   Fees (flat fee + 0.35% rate fee) are deducted from `withdrawAmountInput`. The recipient receives `withdrawAmountInput - fees`. See [Withdraw](/evmsdk/withdraw) for the exact fee formula.

7. **Why does `getBalance()` take a while?**

   It scans all historic `NewCommitment` events from the contract and attempts to decrypt each one locally. Performance scales with the total number of deposits ever made to the pool. Caching is built into the SDK to speed up repeated calls.

8. **Can I use the EVM SDK in a Node.js script without a browser wallet?**

   Yes. Create an `ethers.Wallet` from your private key, call `signer.signMessage('Privacy Money account sign in')` to get the signature, select `BASE_NETWORK` or `ETH_NETWORK`, and implement `txSender` using `signer.sendTransaction()`. See the [Backend Integration](/evmsdk/overview) page for a full example.

9. **Can I clear the local event cache?**

   Yes. Call `clearCache()` exported from `privacycash-evm` to reset the cached UTXO event data.

   ```typescript theme={null}
   import { BASE_NETWORK, clearCache } from 'privacycash-evm'
   clearCache(address, 'eth', BASE_NETWORK)
   ```
