Silent Payments Wallet

BIP39 · BIP32 · BIP352 · offline generator

Checking offline state… Storage: unknown

This page performs zero network I/O. All cryptography runs locally. Do not treat this tool as a substitute for an audited hardware wallet.

1. Wallet — Seed Phrase & Derivation

Generate a 24-word BIP39 mnemonic, optionally protect it with a passphrase, and derive the BIP352 scan and spend keys using the standard derivation paths: m/352'/0'/0'/1'/0 for the scan key and m/352'/0'/0'/0'/0 for the spend key. Write down your mnemonic. Anyone with the words can spend your funds.

BIP39 passphrase (optional, "25th word")

Leave this empty for a standard seed. If you set one, you must enter it every time you restore — BIP39 has no checksum on the passphrase, so a single wrong character silently produces a different, empty wallet.

Seed currently derived without a passphrase.

Scan key (b_scan)

—
—

Spend key (b_spend)

—
—
2. Silent Payment Address (reusable)

The address encodes B_scan ‖ B_spend with bech32m under the human-readable part sp, witness version 0 (so every valid address begins sp1q…). Post it anywhere — every payment lands at a fresh on-chain P2TR output that only your wallet can detect.

Checksum: — Version byte: —
—
—

QR rendered locally as inline SVG.

Fresh receiving addresses (k indices)

Each sender derives a unique P2TR output for your silent address. The table below shows the first 8 hypothetical outputs your wallet would detect when scanning (k = 0…7). The actual outputs depend on each sender's inputs.

kDerived P2TR x-only (simulated)P2TR scriptPubKey
Generate a wallet first.
3. Sender Simulation

List each transaction input (txid, vout, input private key). The app sums the public keys, computes the shared secret against your B_scan, and derives one P2TR output per requested index.

4. Receiver Detection

Paste the summed input public key, smallest outpoint, and candidate output x-only keys. The app detects matches against your current wallet.

5. Backup & App Compatibility

This wallet uses standard BIP39 mnemonic + BIP32 derivation. Any wallet that supports BIP352 silent payments and the derivation path below can restore your funds.

Backup type
24-word BIP39 mnemonic (+ optional passphrase)
Scan path
m/352'/coin_type'/account'/1'/0
Spend path
m/352'/coin_type'/account'/0'/0
Address format
bech32m, hrp "sp", version byte 0 (sp1q…)
Compatible wallets
Cake Wallet, BitBox02, Blue Wallet (SP builds), Silentium, Shroud

How to restore in another app

  1. Install a wallet that supports BIP352 silent payments (e.g. Cake Wallet).
  2. Choose "Restore from seed" and enter your 24 words.
  3. If you used a passphrase, enter it exactly.
  4. Select the account index (default 0) to match this derivation.
  5. The wallet will scan for payments to your sp1… address.

Important caveats

6. Derivation Trace
—
7. Conformance Tests
Not run yet.
#TestStatusDetail
Event Log
—
About & Provenance

Silent Payments (BIP352) let a sender derive a fresh P2TR output for a recipient without prior interaction. The recipient publishes one static sp1… address and scans for outputs using their scan private key.

This wallet adds BIP39 mnemonic backup and BIP32 HD derivation so the same seed can restore the wallet in any compatible application.

Inlined algorithms

Threat model

Confirm

Are you sure?

Keyboard shortcuts

Ctrl+G
Generate new wallet
Ctrl+K
Focus the mnemonic import field
Ctrl+Enter
Run the active panel action
Ctrl+T
Toggle light / dark theme
Ctrl+L
Lock now (zero secrets)
?
Show this dialog
Esc
Close dialogs / tour