Skip to content

Add Silent Payments support for reusable and private receiving addresses #193

Description

@nejos97

Implement Silent Payments to allow users to receive Bitcoin payments without sharing a static address, improving privacy and eliminating address reuse.

Senders derive a unique address per payment using the receiver’s public key.


Objectives

  • Eliminate address reuse
  • Improve receiver privacy
  • Simplify receiving UX

Scope

1. Silent Payment Address Generation

  • Generate Silent Payment public key (scan key + spend key)

  • Display as:

    • QR code
    • Shareable string

2. Sending Flow

  • Detect Silent Payment address format
  • Derive unique destination output
  • Construct compatible transaction
  • Ensure Taproot compatibility

3. Receiving Flow

  • Scan blockchain for matching outputs
  • Detect owned outputs via scan key
  • Recover spendable UTXOs
  • Add to wallet balance

4. Performance Optimization

  • Efficient block scanning strategy

  • Indexing or light client integration

  • Optional:

    • Use Electrum server extensions
    • Background scanning

5. Privacy & Security

  • Ensure:

    • No address reuse
    • No linkability between payments
  • Protect scan key

  • Optimize for low metadata leakage


6. UX/UI

  • Single “Receive privately” button

  • No need to generate new address each time

  • Optional explanation tooltip:

    • “Each payment uses a unique address automatically”

Acceptance Criteria

  • User can generate a Silent Payment identifier
  • Sender can send funds using it
  • Receiver detects and spends funds correctly
  • No visible address reuse
  • Works reliably on testnet

Risks / Considerations

  • Still early adoption
  • Heavy scanning requirements
  • Compatibility with existing infrastructure
  • Requires Taproot support

References

  • Silent Payments proposal (BIP352)
  • Taproot (BIP341)

Nice-to-have (Future)

  • Silent Payments + PayJoin combo
  • Contact-based payments (like “send to username”)
  • Push notifications on detection

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions