Skip to main content

Transfer lifecycle

Every Whisper Bot transfer follows the same four-stage pipeline. The privacy guarantee comes from the ZK pool in the middle — it breaks the on-chain link between your deposit and the recipient’s withdrawal.
1

Deposit

You send SOL to a one-time deposit address generated by the bot. This address is a fresh ephemeral keypair — used once and discarded.
2

Confirm

The bot detects your deposit and shows you the breakdown: amount received, fees, and the net amount the recipient will get. You tap Confirm to proceed.If you don’t respond within 15 minutes, the transfer auto-confirms so funds are never stuck.
3

ZK privacy pool

The bot collects its fee, then deposits the remaining SOL into the PrivacyCash zero-knowledge pool. This is an on-chain smart contract that accepts deposits and produces cryptographic proofs for withdrawals — without revealing which deposit funded which withdrawal.
4

Delivery

The bot generates a ZK proof and withdraws funds from the pool to the recipient’s wallet. On-chain, this withdrawal is unlinkable to your original deposit.

Split transfers

A split transfer divides one deposit among multiple recipients. Internally, the bot makes a single fee collection and a single ZK pool deposit, then performs separate ZK withdrawals for each recipient. Each recipient gets a percentage of the net deposit (after fees). Percentages must sum to 100%. Splits are sent to Solana addresses — funds are withdrawn directly to each address through the privacy pool.
/split 7xKXtg...AsU 60% 9aE3vJ...kL2 25% 4mBcR2...nQ7 15%
Up to 10 addresses per split. Each recipient’s share is withdrawn separately through the ZK pool — every withdrawal is unlinkable to the original deposit.

Peer-to-peer claims

When you send to a Telegram @username, the recipient doesn’t need to share their wallet address with you or with anyone else in advance.
  1. The recipient gets a DM from Whisper Bot with a Claim button
  2. They tap Claim and paste their Solana wallet address
  3. Whisper Bot withdraws from the ZK pool directly to their wallet
The sender never sees the recipient’s wallet address. Whisper Bot discards it after the withdrawal transaction is confirmed.

Cancellation and refunds

You can cancel a transfer at different stages. The cost depends on how far the transfer has progressed:
StageRefund methodCost
Awaiting depositNothing to refundFree
Deposit received, not yet confirmedDirect refund from temp address~0.000005 SOL (network fee)
Confirmed, before ZK depositDirect refund from temp address~0.000005 SOL (network fee)
After ZK depositRefund through ZK poolStandard protocol fees
Cancel early to avoid fees. Before the ZK deposit step, refunds are a simple Solana transfer back to your deposit address — nearly free.

Crash recovery

Whisper Bot is designed to survive crashes, restarts, and network failures at any point in the transfer pipeline.
  • Deposit detected but not confirmed — The transfer resumes from the confirmation step on restart
  • Fee collected but not deposited to ZK pool — The deposit is retried automatically
  • ZK deposit done but withdrawal pending — The withdrawal is retried automatically
  • Split partially completed — Remaining recipients are processed on restart; already-completed recipients are not affected
Every transfer’s state is persisted securely. On startup, the bot resumes any interrupted transfers automatically. No funds are ever lost — the worst case is a brief delay.