Skip to main content
Swish is built for private payments. Here’s what that means and how it works.

What’s private

When you use Swish to Send, Request, or Send via Claim:
  • Your wallet address isn’t published alongside the recipient’s on-chain
  • The link between sender and receiver isn’t visible in the transaction itself
  • The amount can also be hidden, depending on the protocol used
How much protection you get depends on which protocol routes the transaction. The three Swish uses make different trade-offs, and none of them offers an absolute guarantee — see Privacy Protocols for what each one does.

How it works

Swish doesn’t operate its own privacy protocol. It aggregates across three privacy primitives on Solana — Privacy Cash, MagicBlock, and Umbra — and picks the best route automatically. Each protocol works differently:
  • Privacy Cash — ZK UTXO mixer
  • MagicBlock — confidential transactions inside an Intel TDX TEE
  • Umbra — ZK shielded pool secured by Arcium MPC
For full details on each protocol and how routing works, see Privacy Protocols.

What’s not private

Not everything in Swish is private. Be aware of these exceptions:
Withdrawals and deposits are standard Solana transactions. Both addresses are visible on-chain. Use Withdraw only for moving funds to your own wallets.

X (Twitter) handles

If you sign in with X, your handle is used within Swish to let others send you money by username. Senders don’t need your wallet address.

Session signature

When you sign in, Swish asks you to sign a message. This signature is used locally to derive encryption keys for your private transactions. It is never sent to the blockchain and costs nothing.

Best practices

  • Use Send, Request, or Send via Claim for private payments — avoid Withdraw when privacy matters
  • Enable Umbra in your profile if you want to receive funds with Umbra’s stronger privacy guarantees
  • Your embedded wallet (if you signed in with X) can be exported — keep your private key safe