{
    "meta": {
        "title": "D-Central — Silent Payments (BIP-352) Wallet Support Matrix",
        "description": "Which of 18 Bitcoin wallets and libraries can SEND to and RECEIVE at a Silent Payments (sp1) address in 2026 — separating easy send support from hard private receive, with each wallet's scan method and whether receiving leaks to a third-party indexing server.",
        "generated": "2026-07-18T17:09:03+00:00",
        "version": "1.0",
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "license_name": "CC BY 4.0",
        "source": "https://d-central.tech/silent-payments-wallet-support/",
        "method": "SEND support (deriving a payment to an sp1 address) is distinguished from RECEIVE support (generating an sp1 address AND scanning the chain to detect payments), because receiving is the hard, privacy-sensitive capability. The scan-method column flags whether private receive depends on a third-party indexer (IP/query exposure) or a self-hostable one. Verified July 2026 against BIP-352, silentpayments.xyz, wallet release notes and repos; open PRs / experimental status noted.",
        "provenance": "BIP-352 spec (bitcoin/bips), silentpayments.xyz support docs, wallet release notes and GitHub repos/issues, BlindBit light-client specification.",
        "disclaimer": "SP support moves fast and receive implementations are young — verify against the wallet's current release before relying on it, and confirm received SP funds carefully (at least one mainstream wallet has a documented missed-funds edge case). Bitcoin Core has no released SP wallet; the zero-leak full-node receive option does not exist in a shipped general wallet yet."
    },
    "rows": [
        {
            "name": "Sparrow Wallet",
            "type": "desktop",
            "send": "yes",
            "receive": "yes",
            "scan": "third-party indexer (self-hostable)",
            "privacy": "Receive needs an SP-capable Electrum server serving per-block tweak data; detection runs client-side, but the server sees your IP/queries unless you run your own or use Tor",
            "since": "send v2.3.0 (Oct 2025); receive v2.5.0 (May 2026, incl. air-gapped signer)",
            "open_source": "yes",
            "grade": "A",
            "notes": "The most complete mainstream implementation as of mid-2026. Pair with your OWN SP-capable server for best privacy — the recommended setup."
        },
        {
            "name": "Cake Wallet",
            "type": "mobile",
            "send": "yes",
            "receive": "yes",
            "scan": "third-party indexer (Cake default)",
            "privacy": "Client-side derivation, but the default Cake-run Electrum servers see your IP and query pattern",
            "since": "send + receive since 2024 (first major mobile SP wallet)",
            "open_source": "yes",
            "grade": "A",
            "notes": "Receive is a catch-up scan from wallet birth height. A documented edge case (issue #2395) can miss funds — verify received SP funds carefully."
        },
        {
            "name": "Nunchuk",
            "type": "mobile",
            "send": "yes",
            "receive": "yes",
            "scan": "third-party indexer (Nunchuk default)",
            "privacy": "Receive relies on a specialized SP-index server, Nunchuk-operated by default; self-host option unverified",
            "since": "2026 (send + receive)",
            "open_source": "yes",
            "grade": "B",
            "notes": "One of the few multisig-oriented wallets with SP receive; public implementation detail is thinner than Sparrow's."
        },
        {
            "name": "Silentium",
            "type": "mobile",
            "send": "yes",
            "receive": "yes",
            "scan": "third-party indexer (silentiumd)",
            "privacy": "PWA light client backed by silentiumd; the server serves tweak data and never learns which UTXOs are yours, but sees block-level queries",
            "since": "2024 proof of concept",
            "open_source": "yes",
            "grade": "A",
            "notes": "🔴 Explicitly a proof-of-concept reference, 'use at your own risk' — NOT for meaningful funds."
        },
        {
            "name": "Dana Wallet",
            "type": "mobile",
            "send": "partial",
            "receive": "yes",
            "scan": "third-party indexer (BlindBit oracle)",
            "privacy": "BlindBit Oracle backend serves tweak data per the BIP-352 light-client spec; server learns block-level queries but not which outputs are yours",
            "since": "v0.1.0-alpha (2024, built on sp-client)",
            "open_source": "yes",
            "grade": "B",
            "notes": "Purpose-built for RECEIVING donations (receive is the point). General spend features limited; still experimental."
        },
        {
            "name": "Wasabi Wallet",
            "type": "desktop",
            "send": "yes",
            "receive": "no",
            "scan": "n/a",
            "privacy": "Send-only; docs state Wasabi cannot generate an SP address or recognize payments to one",
            "since": "send in v2.4.0",
            "open_source": "yes",
            "grade": "A",
            "notes": "Community-maintained since the zkSNACKs coordinator shutdown; receive announced as planned but not shipped as of mid-2026."
        },
        {
            "name": "BlueWallet",
            "type": "mobile",
            "send": "yes",
            "receive": "no",
            "scan": "n/a",
            "privacy": "No receive scanning shipped, so no scan-privacy question arises",
            "since": "send in v6.6.8 (with full BIP-47)",
            "open_source": "yes",
            "grade": "A",
            "notes": "Maintains its own TypeScript SP library with receive code, but the app has receive only as an open feature request (issue #7432)."
        },
        {
            "name": "BitBox02",
            "type": "hardware",
            "send": "yes",
            "receive": "no",
            "scan": "n/a",
            "privacy": "Signing device only — cannot scan; verifies SP send outputs on-device",
            "since": "unverified firmware version",
            "open_source": "yes",
            "grade": "C",
            "notes": "Hardware wallets can only ever do the send side (BIP-375 PSBT fields) or act as an air-gapped signer for a host wallet that scans (Sparrow 2.5.0 supports this)."
        },
        {
            "name": "Bitcoin Core",
            "type": "node",
            "send": "no",
            "receive": "no",
            "scan": "n/a",
            "privacy": "Would be the gold standard — full-node local scanning, zero leak — once merged. Nothing shipped yet",
            "since": "not shipped (libsecp256k1 SP module merged; wallet PRs #28201 send / #32966 receive / #28241 index all OPEN)",
            "open_source": "yes",
            "grade": "A",
            "notes": "🔴 No released Core version has SP wallet support. The zero-leak full-node receive option does not exist in any shipped general wallet yet."
        },
        {
            "name": "Electrum",
            "type": "desktop",
            "send": "no",
            "receive": "no",
            "scan": "n/a",
            "privacy": "n/a",
            "since": "n/a",
            "open_source": "yes",
            "grade": "B",
            "notes": "Send support is still an open feature request (issue #8847); no SP in any release."
        },
        {
            "name": "Zeus",
            "type": "mobile",
            "send": "no",
            "receive": "no",
            "scan": "n/a",
            "privacy": "n/a",
            "since": "n/a",
            "open_source": "yes",
            "grade": "B",
            "notes": "Lightning-focused (embedded LND); no BIP-352 support found as of mid-2026."
        },
        {
            "name": "Phoenix",
            "type": "mobile",
            "send": "no",
            "receive": "no",
            "scan": "n/a",
            "privacy": "n/a",
            "since": "n/a",
            "open_source": "yes",
            "grade": "B",
            "notes": "Lightning wallet (ACINQ); no on-chain SP support announced."
        },
        {
            "name": "Breez",
            "type": "mobile",
            "send": "no",
            "receive": "no",
            "scan": "n/a",
            "privacy": "n/a",
            "since": "n/a",
            "open_source": "yes",
            "grade": "B",
            "notes": "Lightning/Liquid (Nodeless SDK); no BIP-352 support found."
        },
        {
            "name": "rust-silentpayments",
            "type": "library",
            "send": "yes",
            "receive": "partial",
            "scan": "n/a",
            "privacy": "Provides send and receive/scan cryptography; chain access and scan strategy are the integrator's problem",
            "since": "active 2023-2024 (crates.io: silentpayments)",
            "open_source": "yes",
            "grade": "A",
            "notes": "The de facto Rust BIP-352 crypto crate; basis for sp-client and bdk-sp."
        },
        {
            "name": "sp-client",
            "type": "library",
            "send": "yes",
            "receive": "yes",
            "scan": "third-party indexer (BlindBit-style)",
            "privacy": "Wallet-layer Rust lib designed around tweak-oracle backends; privacy depends on the oracle you point it at",
            "since": "2024 (cygnet3)",
            "open_source": "yes",
            "grade": "A",
            "notes": "Handles incoming-tx parsing, owned-output management and signing; powers Dana Wallet."
        },
        {
            "name": "BlindBit",
            "type": "library",
            "send": "no",
            "receive": "yes",
            "scan": "IS the indexer (self-hostable, Go)",
            "privacy": "BlindBit Oracle serves per-block tweak data + BIP158-style filters per the light-client spec so clients detect payments locally without revealing which UTXOs are theirs",
            "since": "2024 (setavenger)",
            "open_source": "yes",
            "grade": "A",
            "notes": "The reference architecture for SP light clients. Self-hostable — the way to get private mobile receive."
        },
        {
            "name": "go-bip352",
            "type": "library",
            "send": "yes",
            "receive": "partial",
            "scan": "n/a",
            "privacy": "Crypto/derivation library; scanning infra lives in the companion BlindBit Oracle project",
            "since": "2024 (setavenger)",
            "open_source": "yes",
            "grade": "B",
            "notes": "The Go BIP-352 implementation underpinning BlindBit."
        },
        {
            "name": "python-bip352 (reference)",
            "type": "library",
            "send": "yes",
            "receive": "partial",
            "scan": "n/a",
            "privacy": "Reference crypto only; no chain-scanning infrastructure",
            "since": "shipped with the BIP (bip-0352/reference.py, 2024)",
            "open_source": "yes",
            "grade": "B",
            "notes": "The canonical Python code is the in-repo reference implementation with test vectors; a separately packaged 'python-bip352' is unverified."
        }
    ],
    "context": {
        "bip352_status": "BIP-352 was merged into the bitcoin/bips repo in May 2024 (authors Josie Baker and Ruben Somsen) and is stable, with a minor spec revision (~v1.1.0) in March 2026. The libsecp256k1 bundled with Bitcoin Core has a merged silentpayments module, but no RELEASED Core version ships SP wallet functionality — the wallet-level PRs remain open. Adoption is asymmetric: many wallets can SEND to an sp1 address; full private RECEIVE is limited to Sparrow, Cake, Nunchuk and the experimental SP-native wallets.",
        "scanning_problem": "A receiver cannot recognize their own payments by watching addresses — each incoming output is a fresh P2TR script derived via ECDH between the sender's input keys and the receiver's scan key, so detection requires computing a tweak for essentially every eligible taproot transaction in every block. That is trivial for a full node with an index but prohibitive for a phone, so light clients fetch precomputed per-block tweak data (~100 kB/block) from an indexing server (BlindBit Oracle, silentiumd, an SP-capable Electrum server) and often combine it with BIP158 filters. The final ownership check stays client-side. The crux: the tweak server never learns which outputs are yours, but it DOES see your IP and query pattern — so the practical privacy question for every mobile SP wallet is who runs the indexer and whether you can self-host it.",
        "recommendation": "For a privacy-first user in 2026 the strongest setup is Sparrow v2.5.0+ on desktop: real send AND receive, with the option to point it at your OWN SP-capable Electrum server (or reach the public one over Tor) so nothing about your scanning leaks. On mobile, Cake and Nunchuk give working send+receive but via their operators' indexers by default — acceptable only if you accept IP/query exposure or can self-host a BlindBit oracle; Dana is the purpose-built choice for receiving donations. Do not trust meaningful funds to Silentium (a proof of concept), and note Bitcoin Core still offers nothing released — the zero-leak full-node receive wallet does not exist yet."
    }
}