Home › Glossary › Silent payments

Silent payments

Also called: silent payment address, sp1 address, BIP352, BIP 352, static payment address, reusable payment address.

Silent payments (BIP 352) are reusable static addresses: each payer derives a fresh, unlinkable Taproot output, with no notification transaction.

Silent payments let a receiver publish one static address, such as a donation address, without every payment landing on the same on-chain address. Each sender works out a new, unique Taproot output that only the receiver can find and spend.

How it works

BIP 352, by josibake, Ruben Somsen and Sebastian Falbesoner, uses an elliptic-curve Diffie-Hellman key exchange:

  1. The receiver publishes an address holding two public keys: a scan key and a spend key.
  2. The sender adds up the private keys of the inputs it is spending and combines the result with the receiver's scan key to get a shared secret.
  3. That secret tweaks the receiver's spend key, giving the key of an ordinary-looking P2TR output.
  4. The receiver scans transactions with its scan private key and the inputs' public keys, computes the same secret and spots the payment.

Addresses use Bech32m with the prefix sp (tsp on test networks). A version 0 mainnet address starts with sp1q and is 116 characters long. Wallets deriving the keys from a seed use m/352'/0'/0'/1'/0 for the scan key and m/352'/0'/0'/0'/0 for the spend key.

Trade-offs

Unlike BIP 47 payment codes, silent payments need no notification transaction, so nothing on chain ties payments to the receiver, and payments from the same sender can't be linked together. The cost is scanning: the receiver must check every eligible transaction, which is easy for a full node but harder for light clients.

Related proposals add sending support to PSBTs (BIP 375) and an sp() output descriptor (BIP 392), and BIP 321 defines an sp= parameter for Bitcoin URIs. Read the silent payments guide.

BIPs that define Silent payments

  • BIP 352: Silent Payments: Complete. Silent Payments let someone publish one static address that anyone can pay, while each payment lands at a different, unlinkable address on the blockchain. Unlike similar schemes, it needs no extra…
  • BIP 375: Sending Silent Payments with PSBTs: Draft. Adds fields and rules to the version 2 Partially Signed Bitcoin Transaction (PSBT) format so wallets can send to Silent Payment addresses. Since a Silent Payment's final address depends on the…
  • BIP 376: Spending Silent Payment outputs with PSBTs: Draft. Adds fields to version 2 Partially Signed Bitcoin Transactions (PSBTs) for spending coins received via Silent Payments. Those coins require a special adjustment to the recipient's key when signing,…
  • BIP 392: Silent Payment Output Script Descriptors: Draft. Defines an 'sp()' descriptor for Silent Payment wallets, describing the keys needed to detect and spend payments sent to a reusable Silent Payment address. This lets such wallets be backed up and…
  • BIP 321: URI Scheme: Complete. Defines the "bitcoin:" link format that wallets use for payment requests in QR codes and clickable links. It specifies how to include an amount, label, message, and alternative payment methods, so…

Related terms

  • P2TR: P2TR (Pay to Taproot) is the SegWit version 1 output type from BIP 341: one 32-byte key with optional hidden scripts. Addresses start with bc1p.
  • Bech32m: Bech32m is the modified Bech32 address format from BIP 350, used for SegWit version 1 and later, such as Taproot addresses starting with bc1p.
  • Bitcoin URI: A Bitcoin URI is a bitcoin: link, defined in BIP 21 and BIP 321, that packs an address, amount and label into one clickable or scannable string.
  • Payjoin: Payjoin is a payment where the receiver adds their own input to the sender's transaction, breaking the assumption that all inputs belong to the payer.
  • CoinJoin: A CoinJoin is one transaction that combines inputs from several people, usually with equal-value outputs, so observers can't tell who paid whom.

Learn more

Guides