Skip to main content

Deposits

This guide covers depositing tokens from your wallet into your private balance using the Privacy Boost WASM SDK.

Basic Deposit

Deposit Parameters

Deposit Steps

When a deposit is submitted, the SDK executes these steps in order:

Deposit Result

Depositing ETH

To deposit native ETH, use the zero address. The SDK automatically wraps ETH to WETH:
The SDK automatically:
  1. Wraps ETH to WETH
  2. Approves WETH spending
  3. Deposits WETH to the shield contract

Parsing Amounts

Error Handling

Best Practices

1. Validate Amounts Before Depositing

Check the wallet balance before attempting a deposit to provide early feedback.

2. Refresh Balance After Deposit

3. Handle Long Operations

Deposits involve multiple on-chain transactions. Show loading states in your UI.

Relayed Deposits (build calldata, relay yourself)

If your users don’t submit transactions directly — they hold funds at addresses you relay for (a gasless relayer, an EIP-7702 session key, a custom pipeline) — build the deposit calldata without submitting it, relay it through your own infrastructure, then finalize from the mined receipt.
Each call is { to, value, data }, so the array drops directly into an EIP-5792 / Porto wallet_prepareCalls bundle.

Server-side (no session)

A backend that holds only a recipient’s privacy address can build a deposit on their behalf with the stateless buildShieldPayload free function — no signed-in session and no private keys:
The note’s owner is bound cryptographically to the recipient’s privacy address, so only they can spend it; the ephemeral sender used to encrypt the deposit is generated and discarded internally.

Next Steps