Shakesco does not offer silent payments. These pages document an open
source library you can add to your own app or website. The Shakesco app
does not send or receive silent payments.
Built by the community - Special thanks to Ruben
Somsen and Josie Bake
for their groundbreaking work on BIP-352.
Installation
Integration Workflow
1
Generate silent payment address
Create a reusable address for receiving private payments
2
Create destination address
Generate a one-time taproot address for each payment
3
Scan for incoming funds
Detect payments without exposing spending keys
4
Spend received funds
Derive private keys and move Bitcoin
Step 1: Generate Silent Payment Address
Choose your key generation method based on your use case:- From Private Keys (Recommended)
- From Mnemonic (Wallets)
Best for: Non-wallet applications where users control their keys
Create a Change Address
Critical for privacy: Never send change to a public address after making silent payments.Why this matters
Why this matters
Scenario: You send 10 silent payments to friends, then send change to your public address.Result: You’ve exposed:
- ❌ Your own private transaction history
- ❌ Your friends’ payment patterns
- ❌ Links between all 10 transactions
Step 2: Create Destination Address
Generate a unique taproot address for the payment:What you need:
- UTXO transaction ID and output index
- UTXO private key
- Amount in satoshis
- Recipient’s scan and spend public keys (
B_scan,B_spend)
Step 3: Scan for Incoming Funds
Check if a transaction belongs to you:What you need for scanning
What you need for scanning
- Transaction input’s
txidandoutput_index - Public key from the output
- Script and amount from the taproot address
Step 4: Spend the Funds
Once you’ve confirmed funds belong to you, derive the private key:That’s It
You’ve successfully implemented Bitcoin silent payments. Your users can now:- ✅ Share a single address for all payments
- ✅ Receive Bitcoin privately
- ✅ Maintain transaction unlinkability
- ✅ Avoid notification transaction fees
Additional Resources
BIP-352 Specification
Complete technical specification
bitcoinjs-lib
Build Bitcoin transactions in JavaScript
Silent Payments Explained
Protocol deep dive
ECDSA Signatures
Learn about signature-based key derivation