Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.swish.cash/llms.txt

Use this file to discover all available pages before exploring further.

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 is never linked to the recipient’s address on-chain
  • The connection between sender and receiver cannot be traced on the blockchain
  • The amount can also be hidden depending on the protocol used
An outside observer looking at the blockchain cannot determine who sent money to whom through Swish.

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 uses a different mechanism to break the on-chain link:
  • Privacy Cash — ZK UTXO mixer (deposit + withdraw breaks the link)
  • 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:
ActionPrivacy level
SendPrivate — sender address hidden
RequestPrivate — requester address hidden
Send via ClaimPrivate — sender address hidden
WithdrawNot private — standard on-chain USDC transfer
DepositNot private — standard on-chain transfer to your address
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