Skip to main content
Honest answers, worst cases first. If your question isn’t here, start with What is Cloak?.
Yes. Cloak’s shield-pool program has been independently audited, and the program live on mainnet is built from the audited source — the Security page lists the artifact hashes and how to check them yourself. The full report is being prepared for publication and will be linked here. Our full threat model — including what Cloak cannot do — is at Security.
No — no custodial path exists in the program. Cloak can’t see your balance, can’t spend it, and can’t recover it. That’s the design.
If your browser data is still intact, nothing is lost yet — open Backup & Restore and export a new file now. If you clear your browser data with no backup file, your private balance is gone — not seized, gone. Cloak cannot recover it, and neither can anyone else; that’s the proof that we never had your funds.
Your funds are safe as long as you still have your browser data or your backup file — any connected wallet can spend a restored private balance. The wallet is not a recovery root; its signature is used for sign-in and encryption only. What you do lose is the viewing key tied to the old wallet, which means compliance-history access for that older activity.
No. Your private balance lives encrypted in your UTXOs, on your device; Cloak’s servers never hold UTXO secrets, so there is nothing on our side to restore from. Your backup file is the money — it is the only recovery artifact, and it restores your balance on any device via Backup & Restore.
Deposits into the pool and withdrawals out of it — never the link between them. Shielded pools are like sealed envelopes in a public mailbox: everyone sees mail, not what’s inside. Other pool users see nothing about you, and each withdrawal is validated by a zero-knowledge proof without revealing which deposit funded it.
Shielding is free; sending SOL to a public address costs 0.005 SOL fixed plus 0.3%, while USDC and USDT pay 0.45 tokens fixed plus 0.3%. A private swap costs 0.005 SOL plus 0.3% of the SOL swapped, and shielded-to-shielded transfers are free at the protocol level. Fees are collected on-chain by the program — nothing else charges you; the full table is at Fees.
The protocol charges only when value leaves the pool, so deposits carry no protocol fee — your wallet pays normal network gas to shield, nothing more. Recipients receive the exact amount entered because the fee is added on top and deducted from the sender’s private balance.
You can shield and send SOL, USDC, and USDT, each in its own shielded pool; swaps take shielded SOL in and deliver any Jupiter-verified token out. Phantom, Solflare, Ledger, and Solana Mobile are supported, and any Wallet Standard wallet (such as Backpack) is auto-detected. Details at Wallets & tokens.
Yes. You can send USDC from Polygon, Ethereum, Base, Arbitrum, or Sui and have it arrive as a private balance on Solana, without a Solana wallet of yours in the middle: it lands at a single-use address derived from your own Cloak keys, and is shielded from there. Arriving carries no protocol fee; the route charges its own cut on the origin side, and the Solana network cost of entering the pool comes out of the bridged amount. Two routes exist and they are not equivalent — one signs its deposit address so your browser can verify it and refunds an order it cannot fill, the other does neither — so read Bridging in and Bridge routes before you send.
The shield is a step that runs in your browser, so an arrival that lands while your tab is closed waits at your one-time address instead of shielding itself. Reopen Cloak with the same wallet: it derives your receiving addresses from your own keys, finds anything unshielded, and offers to finish it — no link and no code to keep. If nothing has arrived at all, check the route’s delivery status (available on the 1Click route; the Jupiter route publishes none), and remember that an order that expired before your transfer confirmed is refunded to the origin-chain address you gave. The full list is in If your funds don’t appear.
Yes. Shielding SOL takes at least 0.01 SOL, and a private swap takes at least 0.01 SOL in. Shielding USDC or USDT takes at least 1.00 token; the program rejects smaller deposits on-chain. Bridging in inherits that 1.00 USDC floor — the app refuses to show you a deposit address for an amount it could not shield once costs are covered, and warns you below roughly 15 USDC, where the fixed costs start to dominate.
You do only when shielding — your wallet signs the deposit and pays normal network gas. For private sends, swaps, and withdrawals, the transaction is submitted for you: your wallet pays no gas and never appears as sender.
The Cloak program is upgradeable. Its upgrade authority is a Squads multisig (3 of 4 signers, with a 1-hour time lock), so no single key can change the program. We say this plainly because an upgradeable program you know about is safer than an “immutable” one that quietly isn’t — upgradeability is how fixes ship.
Your wallet never appears as sender from the first transaction, but privacy strength grows with pool activity and time. Funds already shielded are more private than shield-and-send in one step, for example. The three habits that strengthen it are in How Cloak works.
Before you rely on any of the above: export your backup file. Your backup file is the money.

Where next

Security

The threat model, on-chain protections, and the full “What Cloak cannot do” list.

Your private balance

How UTXOs, the backup file, and restore actually work — read before you shield.