Skip to main content
For the complete documentation index, see llms.txt.
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.
Flutter/Dart SDK - This guide uses our Dart package for mobile and Flutter applications. For JavaScript/Node.js, see the JavaScript SDK.

Built With

Special thanks to Cake Wallet for their excellent Bitcoin base library.

Installation

Add to your pubspec.yaml:
Import the package:

Integration Workflow

1

Generate silent payment address

Create a reusable address for receiving payments
2

Create taproot destination

Generate unique address for each payment
3

Scan blockchain for funds

Detect incoming transactions
4

Spend received funds

Derive private keys and transfer Bitcoin

Step 1: Generate Silent Payment Address

Best for: Apps where users control their own keys
Derive from signatures: Have users sign a message, then use the ECDSA signature components:
  • r → b_scan
  • s → b_spend
This ensures cryptographically secure randomness.
If not using signature derivation, ensure your random number generator is cryptographically secure.

Step 2: Create Taproot Destination

Generate a one-time taproot address for the payment:
Required inputs:
  • UTXO transaction hash and output index
  • UTXO private key
  • Amount in satoshis (1 BTC = 100,000,000 sats)
  • Recipient’s scan and spend public keys

Step 3: Scan for Incoming Funds

Scanning overhead: This is the main limitation of silent payments - you must scan the blockchain to detect incoming transactions.
Check if a transaction belongs to you:
If scannedAddress matches the taproot output → funds are yours! 🎉
Required data:
  • Transaction input’s txid and output_index
  • Sender’s public key from the output
  • Script and amount from the taproot address
Learn more: BIP-352 Scanning Specification

Step 4: Spend the Funds

Once confirmed, derive the private key to spend:
Use spendPrivKey with Bitcoin transaction builders to create and broadcast your spending transaction.

Complete

Your Flutter app now supports Bitcoin silent payments with:
  • ✅ Reusable static addresses
  • ✅ Transaction privacy
  • ✅ No notification fees
  • ✅ Cross-platform compatibility

Additional Resources

JavaScript SDK

Node.js implementation for backend services

BIP-352 Specification

Complete technical specification