Skip to main content
For the complete documentation index, see llms.txt.
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:
  • rb_scan
  • sb_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