Private USDC, USDT & SOL payments are opening to everyone soon.
Shielded transactions24,187
Privatefinancialinfrastructureforenterprises.

Accept private transfers, execute shielded swaps, and stay compliant, from your first transaction to your billionth. About the company.

Live transactionsMainnet
8xKj...9mLP ?????
just now
2.500 SOL
shielded
3pRt...7vNQ ?????
18s ago
0.150 SOL
shielded
9mLZ...4kWE ?????
1m ago
14.00 SOL
shielded
2vTx...8nRP ?????
3m ago
0.750 SOL
shielded

Partners

Trusted by the biggest names

Flexible privacy for every use case. Shield transactions from your wallet, move stablecoins across borders undetected, and govern treasuries without telegraphing your next move.

Private transfers
Send from your wallet. No trace on explorer.
SEND
mainnet
Amount
2.500SOL≈ $412.50
Recipient
8xKj...9mLP
Mode
Standard
Private
SEND
B2B payments
Keep internal neobank payments off the radar.
BATCH #7841|0 in-flight
Processing
Cross-border
Move USDC, USDT and SOL globally. Amounts vanish mid-route.
Treasury
Govern funds without leaking your next move.
🔒treasury.dao/ops
Shielded treasury
██,███ SOL
Token buyback
███.█ SOL
Protocol fee sweep
█,███ SOL
Grants disbursement
███.█ SOL
LP rebalance
██,███ SOL
Payroll
Pay your team privately. No one sees who got what.
BATCH#28474 recipients
ready
A
Alex R.
Engineering
██████
pending
M
Mia T.
Design
██████
pending
D
Dan W.
Operations
██████
pending
S
Sara K.
Marketing
██████
pending
Total disbursed██████████
Compliance
Audit privately. Share only what regulators need.
VIEWING KEYvk_live_••••••••••
locked
Private transfer
0x1f4…c3a
████████
SOL
Shielded swap
0x82b…7e1
████████
USDC
Private transfer
0xd3f…9bb
████████
USDT
Payroll batch
0xac1…2d4
████████
USDC
SDK
Integrate Cloak privacy into any dApp in minutes.
🔒docs.cloak.ag/sdk
@cloak.dev/sdksnarkjs@solana/web3.js
1// 1. install
2$npm install @cloak.dev/sdk
3// 2. initialize
4import { CloakSDK } from "@cloak.dev/sdk";
5const sdk = new CloakSDK({ programId });
6// 3. private transfer
7await sdk.transfer({ amount: 1_000_000n,
8 recipient, viewingKey });
$0.0M+
Shielded volume
total protected
0K+
ZK proofs generated
on mainnet
< 0s
Proof generation
browser-native
0.0%
Withdrawal fee
variable + fixed

Private transfers

Confidential payments, auditable on-chain.

Cloak uses a UTXO shielded pool on Solana. Senders and recipients remain private. Amounts, addresses, and history are hidden from public explorers while the ZK proof guarantees validity.

  • Sender and recipient addresses stay private
  • Amounts hidden from on-chain observers
  • Groth16 proof verified on Solana in < 50ms
Proof generation4.4s total
·Circuit inputs
12ms
·Witness computation
840ms
·Groth16 prover
1.4s
·Relay submission
320ms
·Chain confirmation
1.8s
Transaction confirmedSlot 284,117,233

How it works

Zero-knowledge, end to end.

01
Deposit
SOL enters the shielded pool. A UTXO note is created and encrypted to your viewing key.
02
ZK Proof
Your browser generates a Groth16 proof in under 3 seconds. No server involved.
03
Relay
The relay validates the proof and submits the signed transaction to Solana.
04
Withdraw
Recipient claims privately. A nullifier prevents double-spending without revealing the note.
Compliance report
Transaction 1██████████████
Transaction 2██████████████
Transaction 3██████████████
Total outflow██████

Compliance

Private by default. Auditable when required.

Viewing keys let you disclose your transaction history to any auditor or compliance officer, without revealing anything to the public.

Generate a viewing key from your wallet. Share it with your counterparty. They can verify every transaction, and nothing else.

For developers

Shielded flows in your product. We own the hard parts.

The TypeScript SDK talks to your wallet and our relay: deposits, transfers, swaps, and compliance-friendly history without you running provers, syncing Merkle trees, or shipping circuit builds. @cloak.dev/sdk is the integration surface; the protocol does the rest.

Taste of the API

deposit.ts
import {
transact,
createZeroUtxo,
createUtxo,
NATIVE_SOL_MINT,
} from "@cloak.dev/sdk";
await transact(
{
inputUtxos: [await createZeroUtxo(NATIVE_SOL_MINT)],
outputUtxos: [
await createUtxo(amount, owner, NATIVE_SOL_MINT),
],
externalAmount: amount,
depositor: wallet.publicKey,
},
{ connection, wallet, relayUrl, programId },
);
Deposit flow — swaps, withdrawals, compliance in Quickstart · API reference

FAQ

Common questions.

Quick answers on privacy, proofs, relay, keys, and fees. For depth, use the documentation.

Shielded transfers and swaps use a UTXO pool on Solana with Groth16 proofs. Balances, amounts, and counterparties are not exposed on a public transfer the way a normal SPL transfer is. The chain still sees that the program ran and commitments updated—but not the same plaintext trail as a standard wallet send.

Private finance on Solana

Ready to shield your first transaction?

Deposit as little as 0.01 SOL to get started. No KYC, no accounts, no servers. Just math.