Skip to main content
b402 includes an Incognito mode that adds on-chain payment privacy using a zero-knowledge privacy pool. When enabled, token transfers are shielded so that amounts, senders, and recipients are not visible on the public blockchain.

Why Privacy Matters

Standard on-chain payments are fully transparent. Every transaction is visible on a block explorer, linking wallet addresses to payment amounts and counterparties. For AI agents making high-frequency API payments, or businesses settling invoices on-chain, this transparency can expose:
  • Spending patterns that reveal business strategy or usage volumes
  • Wallet balances that make addresses targets for social engineering
  • Counterparty relationships that leak partnership or vendor information
Incognito mode solves this by routing payments through the b402 privacy pool.

How It Works

Incognito mode has three operations:

Shield

Deposit tokens from your visible wallet into the b402 privacy pool. Once shielded, tokens are no longer associated with your public address.
Visible Wallet (0xABC...) --[shield]--> Privacy Pool
Your tokens are now represented as encrypted commitments in a Merkle tree. Only you can decrypt and spend them.

Transact

Send tokens privately within the privacy pool. The sender, recipient, and amount are hidden behind zero-knowledge proofs. Neither party’s address appears in the transaction.
Shielded Balance A --[transact]--> Shielded Balance B

Unshield

Withdraw tokens from the privacy pool back to a visible wallet address. This is typically the final step when the recipient needs tokens in a standard wallet.
Privacy Pool --[unshield]--> Visible Wallet (0xDEF...)

Integration with b402

You do not need to interact with privacy pool contracts directly. The b402 Facilitator handles the complexity:
  1. Shield and unshield operations are built as ERC-4337 UserOperations via the Facilitator’s incognito endpoints
  2. Gas is sponsored by the paymaster, so privacy operations are gasless
  3. The Facilitator signs paymaster data and submits to the bundler on your behalf
The flow follows the same verify-then-settle pattern as standard smart wallet payments:
  1. Call POST /wallet/incognito/verify with your wallet address and operation type
  2. Sign the returned userOpHash with your owner key
  3. Call POST /wallet/incognito/settle with the signed UserOp

Supported Tokens

Whitelisted tokens on the target chain can be shielded. See Network & Token Support for the current token list per chain.

Learn More