Skip to content
Silent Payments For Developers

Silent Payments For Developers

For the developers among you, this page is a simple page to point you in the right direction for where to look into for integration on both the wallet and scanning side.

Want to contribute? Checkout the Silent Payments Development Tracker

Please note that implementing the ability to send to Silent Payment addresses is the most important right now, and that Silent Payments were designed to make sending trivial!
The mention of a library below does not in any way indicate it has been reviewed or is ready for usage with real funds. Please review any chosen library carefully before using it.

Wallet libraries

Library Language Sending Receiving BIP375 BIP376 Used by
bitcoinjs/bitcoinjs-lib JavaScript - - -
BDK SP Rust - - -
BlueWallet/SilentPayments TypeScript - - - BlueWallet
cake-tech/bitcoin_base Dart - Cake Wallet
cake-tech/sp_scanner Dart - - - Cake Wallet
go-bip352 Go - - BlindBit Desktop
silent-pay 1 TypeScript - - -
shakesco/silent JavaScript - - Shakepay
spdk 2 Rust - Dana Wallet

Scanning back-ends

The following indexer implementations provide the server-side scanning infrastructure that light wallets rely on. See the Silent Payments Indexer Server Spec for the common API.

Server Type State Index Size3 Links
Bindex-rs Tweak Server WIP ~8.3 GB romanz/bindex-rs
BlindBit Oracle v2 Tweak Server stable ~105 GB setavenger/blindbit-oracle
Electrs (Cake fork) Tweak Server WIP ~3 TB cake-tech/electrs
Frigate Remote Scanner experimental ~18 GB sparrowwallet/frigate

Additional Resources


  1. This library is currently in an experimental stage. It has not undergone extensive testing and may contain bugs or unexpected behavior. Mainnet use is strictly NOT recommended. ↩︎

  2. This crate is still quite new. Review this library carefully before using it with mainnet funds. ↩︎

  3. Index sizes are approximate and vary with hardware and pruning configuration. Tweak servers store only the elliptic curve tweak data per block; remote scanners store additional per-output data to do full scanning on the server side. ↩︎

Last updated on