Private Transfers
Send tokens with complete anonymity using Zero-Knowledge proofs.
What are Private Transfers?
Private transfers allow you to send shielded tokens to another shielded address without revealing:
Sender address
Receiver address
Transfer amount
Transaction history
How It Works
Shielded Wallet A ZK Proof Transfer Shielded Wallet B
(Hidden) ━━━━━━━━━━━━━━> (Hidden)
5.0 SOL Amount: [HIDDEN] 5.0 SOL
From: [HIDDEN]
To: [HIDDEN]On-chain, observers only see:
A ZK proof was verified
A transaction occurred
NO details about who, what, or how much
Transfer Process
Step 1: Get Recipient Address
Recipient shares their shielded address:
0zk_9f8e7d6c5b4a3210fedcba9876543210abcdefStep 2: Check Your Balance
$ balance
Public Balance: 2.5 SOL
Shielded Balance: 5.0 SOL ✅Step 3: Send Private Transfer
Command:
$ transfer <recipient_address> <amount>Example:
$ transfer 0zk_9f8e7d6c5b4a3210fedcba 1.5
⏳ Validating recipient address...
⏳ Generating ZK proof...
⏳ Broadcasting transaction...
✓ Private transfer completed!
ZK Proof: 0x3f2e1d0c9b8a7f6e5d4c3b2a
Transaction: [PRIVATE]
Your Balance: 3.5 SOL (5.0 - 1.5)
Recipient will see funds in ~30 secondsStep 4: Confirmation
Recipient can verify receipt:
$ balance
Shielded Balance: 6.5 SOL ✅ (+1.5 SOL)Transfer Features
Standard Transfer
Basic private transfer:
$ transfer 0zk_abc123... 2.0Transfer with Memo
Add encrypted memo (only recipient can read):
$ transfer 0zk_abc123... 2.0 "Payment for services"
✓ Transfer sent with encrypted memoDelayed Transfer
Schedule transfer for later:
$ transfer 0zk_abc123... 2.0 --delay 30m
⏳ Transfer scheduled for 30 minutes
Cancel with: cancel-transfer TX_abc123Recurring Transfer
Set up automatic payments:
$ transfer 0zk_abc123... 1.0 --recurring daily
✓ Recurring transfer set up
Frequency: Daily at 12:00 UTCAdvanced Options
Custom Gas
Set custom gas for faster confirmation:
$ transfer 0zk_abc123... 2.0 --gas 0.002
⏳ Using priority gas: 0.002 SOL
✓ Transfer completed in 3 secondsMulti-Recipient
Send to multiple addresses:
$ transfer --multi \
0zk_addr1... 1.0 \
0zk_addr2... 2.0 \
0zk_addr3... 0.5
⏳ Processing 3 transfers...
✓ All transfers completed
Total sent: 3.5 SOLSplit Payment
Split amount among recipients:
$ transfer --split 6.0 \
0zk_addr1... \
0zk_addr2... \
0zk_addr3...
✓ 6.0 SOL split equally (2.0 each)Transaction Privacy
What's Hidden
✅ Sender address (completely hidden) ✅ Receiver address (completely hidden) ✅ Transfer amount (completely hidden) ✅ Transaction metadata (completely hidden) ✅ Balance changes (completely hidden)
What's Visible
❓ A ZK proof was submitted ❓ Proof verification result (valid/invalid) ❓ Approximate timestamp
Privacy Level
Privacy Score: ██████████ 100%
Private transfers provide MAXIMUM privacyVerification
Verify Receipt (Recipient)
Recipient can check their balance:
$ balance
$ txBoth show updated balance without revealing sender.
Verify Sending (Sender)
Sender can verify transaction:
$ tx
Recent Transactions:
1. Private Transfer 1.5 SOL [✓ Completed] 1min ago
To: [PRIVATE]
ZK Proof: 0x3f2e...Common Issues
Issue: Insufficient Shielded Balance
$ transfer 0zk_abc... 10.0
✗ Error: Insufficient shielded balance
Available: 5.0 SOL
Required: 10.0 SOL + gasSolution: Shield more tokens first or reduce amount.
Issue: Invalid Recipient Address
$ transfer invalid_address 1.0
✗ Error: Invalid shielded address format
Expected format: 0zk_...Solution: Double-check recipient address (must start with "0zk_").
Issue: Transaction Timeout
$ transfer 0zk_abc... 2.0
⏳ Waiting for confirmation...
✗ Timeout: Transaction not confirmedSolution: Check network status or retry with higher gas.
Security Tips
✅ Always verify recipient address before sending
✅ Start with small test amounts for new recipients
✅ Save transaction proofs for your records
✅ Use memos for tracking (optional, encrypted)
✅ Check balance after sending to verify
Transaction Fees
Standard
~0.001 SOL
5-10s
With Memo
~0.0015 SOL
5-10s
Multi-recipient
~0.001 SOL each
10-20s
Recurring Setup
~0.002 SOL
5-10s
FAQ
Q: Can anyone trace my private transfer? A: No, Zero-Knowledge proofs ensure complete untraceability.
Q: Does the recipient know who sent it? A: No, unless you include identifying info in the encrypted memo.
Q: Can I cancel a transfer? A: Only if it's a delayed transfer and hasn't been executed yet.
Q: Are there transfer limits? A: No limits, but large amounts may require additional confirmation time.
Next Steps
Privacy Mixer - Enhanced privacy through mixing
Cross-Chain Bridge - Private bridging to other chains
Transaction History - View your private transactions
Previous: Shielding Tokens | Next: Privacy Mixer
Last updated
