{"id":18774,"date":"2026-09-17T18:32:52","date_gmt":"2026-09-18T01:32:52","guid":{"rendered":"https:\/\/jasonsblog.ddns.net\/?p=18774"},"modified":"2026-09-18T08:07:41","modified_gmt":"2026-09-18T15:07:41","slug":"cake-wallet-and-bitcoin-silent-payments","status":"publish","type":"post","link":"https:\/\/jasonsblog.ddns.net\/index.php\/2026\/09\/17\/cake-wallet-and-bitcoin-silent-payments\/","title":{"rendered":"Cake Wallet and Bitcoin Silent Payments"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Cake Wallet has a wonderful way of handling <a href=\"https:\/\/jasonsblog.ddns.net\/index.php\/2026\/03\/12\/bitcoin-silent-payments-explained\/\" target=\"_blank\" rel=\"noopener\">Silent Payments<\/a> on Bitcoin if you have your own Bitcoin node with Electrs, but not a version that supports Silent Payments, which I need to investigate further. Cake Wallet keeps using your node for normal Bitcoin transactions, but uses the Cake Wallet node to scan for any silent payments until you add a version of Electrs that supports the tweaks index. The Cake Wallet also supports Spark for Lightning transactions, which is the same thing being used by <a href=\"https:\/\/jasonsblog.ddns.net\/index.php\/2026\/09\/16\/introducing-lightning-in-the-bitboxapp\/\" target=\"_blank\" rel=\"noopener\">BitBoxApp<\/a> on Mobile now that Liquid Bitcoin has crashed and burned. As I was playing with the Cake Wallet today, I&#8217;ve been impressed by how they handle a few things and was going to experiment with their Zcash support to understand better their public verses private transactions. Though I may wait for the Zcash pump to run its course, as it&#8217;s currently over $1,400, and I knew I should have bought one when it was $500 and due for the suits behind the project to pump it again. Beyond the pump and dump profiting, it&#8217;s also an attack on the truly private Monero blockchain.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Which server does your scanning?<\/strong> Silent Payments scanning needs an Electrum server that serves the silent-payments <code>tweaks<\/code> index \u2014 in practice an <code>electrs<\/code> build with tweak support. When a scan starts, Cake Wallet asks the node you currently have selected whether it can serve that data:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>It can<\/strong> \u2014 the scan runs against your own node.<\/li>\n\n\n\n<li><strong>It cannot<\/strong> \u2014 the scan runs against Cake Wallet&#8217;s own server, <code>electrs.cakewallet.com:50001<\/code>, instead.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Two things worth knowing about that fallback as the app behaves today. Your node setting is <strong>not<\/strong> changed \u2014 the rest of the wallet keeps using your selected node.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So if you run your own node specifically for privacy, confirm it is a tweak-capable <code>electrs<\/code> build and that your wallet is connected to it. Otherwise your Silent Payments scanni<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.cakewallet.com\/features\/privacy-and-security\/silent-payments\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.cakewallet.com\/features\/privacy-and-security\/silent-payments<\/a><\/p>\n\n\n<div class=\"wp-block-ub-divider ub_divider ub-divider-orientation-horizontal\" id=\"ub_divider_0877a030-8007-4e9d-9a31-7680c0a54569\"><div class=\"ub_divider_wrapper\" style=\"position: relative; margin-bottom: 2px; width: 100%; height: 2px; \" data-divider-alignment=\"center\"><div class=\"ub_divider_line\" style=\"border-top: 2px solid #ccc; margin-top: 2px; \"><\/div><\/div><\/div>\n\n\n<h1 class=\"wp-block-heading\">Silent Payments<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Say goodbye to &#8220;send me a new address.&#8221; A Silent Payment address is a single Bitcoin address \u2014 starting with <code>sp1<\/code> \u2014 that you can post anywhere: your website, social media bio, a donation page. Every payment sent to it lands at a fresh, unique address on-chain that only you can find and spend.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why you&#8217;d want this<a href=\"https:\/\/docs.cakewallet.com\/features\/privacy-and-security\/silent-payments#why-youd-want-this\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A normal Bitcoin address is public the moment you share it: anyone who sees it can look up every payment it ever receives. The usual fix is handing out a fresh address for every payment \u2014 fine for one-off transfers, painful for donations, tips, or anyone who pays you repeatedly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Silent Payments remove the tradeoff. The sender&#8217;s wallet uses your <code>sp1<\/code> address to <em>derive<\/em> a unique one-time address that only you can detect. On-chain, the payment looks like any ordinary Taproot transaction \u2014 observers can&#8217;t even tell a Silent Payment happened, and unlike older reusable-address schemes (BIP47), there&#8217;s no extra &#8220;notification&#8221; transaction leaking metadata.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cake Wallet was the first wallet with with <strong>full Silent Payments support<\/strong> \u2014 both sending and receiving.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sending to a Silent Payment address<a href=\"https:\/\/docs.cakewallet.com\/features\/privacy-and-security\/silent-payments#sending-to-a-silent-payment-address\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nothing to learn: paste an <code>sp1...<\/code> address into the <a href=\"https:\/\/docs.cakewallet.com\/features\/basic\/send-funds\" target=\"_blank\" rel=\"noopener\">Send screen<\/a> like any other address. Your wallet handles the rest, and the recipient&#8217;s privacy comes free.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Receiving with Silent Payments<a href=\"https:\/\/docs.cakewallet.com\/features\/privacy-and-security\/silent-payments#receiving-with-silent-payments\"><\/a><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Find your sp1 address<a href=\"https:\/\/docs.cakewallet.com\/features\/privacy-and-security\/silent-payments#find-your-sp1-address\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tap <code>Receive<\/code>, tap the address type under the QR code, and choose <code>Silent Payments<\/code>. This address never changes \u2014 that&#8217;s the point. Post it anywhere.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/docs.cakewallet.com\/~gitbook\/image?url=https%3A%2F%2Fraw.githubusercontent.com%2Fcake-tech%2Fdocs-assets%2Fmain%2Fv6.3.1%2Ffund_btc-sp_carrot-cake_receive_hl.png&amp;width=768&amp;dpr=3&amp;quality=100&amp;sign=39e1d7682ed918267d7e9c36269c31a9&amp;sv=3\" alt=\"\" style=\"width:341px;height:auto\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Silent Payments receive address<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Turn on scanning<a href=\"https:\/\/docs.cakewallet.com\/features\/privacy-and-security\/silent-payments#turn-on-scanning\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Because payments to you are hidden on-chain, your wallet has to scan for them. Open <code>Settings<\/code> \u2192 <code>Privacy<\/code> \u2192 <code>Silent Payments<\/code> and enable <code>Set Silent Payments always scanning<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/docs.cakewallet.com\/~gitbook\/image?url=https%3A%2F%2Fraw.githubusercontent.com%2Fcake-tech%2Fdocs-assets%2Fmain%2Fv6.3.1%2Fsilentpayments_scan_01_menu_hl.png&amp;width=768&amp;dpr=3&amp;quality=100&amp;sign=1f8c155e5ec31e2885b5341558ed4d7f&amp;sv=3\" alt=\"\" style=\"aspect-ratio:0.4499971671738035;width:338px;height:auto\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Silent Payments settings<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Let it catch up<a href=\"https:\/\/docs.cakewallet.com\/features\/privacy-and-security\/silent-payments#let-it-catch-up\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">While scanning, a small amber dot shows next to the chain chips on your home screen. If you know when your first Silent Payment arrived, use <code>Silent Payments Scanning<\/code> to scan from a specific date or block height instead of the whole chain \u2014 it&#8217;s much faster.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/docs.cakewallet.com\/~gitbook\/image?url=https%3A%2F%2Fraw.githubusercontent.com%2Fcake-tech%2Fdocs-assets%2Fmain%2Fv6.3.1%2Fsilentpayments_scan_03_scanning-page.png&amp;width=768&amp;dpr=3&amp;quality=100&amp;sign=db61c6f8db542d4c8d09e532eeb3d693&amp;sv=3\" alt=\"\" style=\"aspect-ratio:0.4500000211275551;width:342px;height:auto\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Scanning options: from height, from date, one block<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The honest tradeoffs<a href=\"https:\/\/docs.cakewallet.com\/features\/privacy-and-security\/silent-payments#the-honest-tradeoffs\"><\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Privacy this good has one cost: <strong>your wallet does the finding<\/strong>. Nobody else can detect your payments, so no server can do it for you.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scanning takes time.<\/strong> The wallet checks candidate transactions block by block. Scanning from your wallet&#8217;s creation date (rather than from the beginning) keeps this manageable, and <code>Scan one block<\/code> lets you check a specific block instantly.<\/li>\n\n\n\n<li><strong>Scanning uses battery and data<\/strong> while active. If you receive Silent Payments rarely, you can leave always-scanning off and enable it when you&#8217;re expecting one \u2014 payments are never lost, just not visible until you scan.<\/li>\n\n\n\n<li><strong>Scanning needs a tweak-capable node, and Cake Wallet will not switch yours.<\/strong> If the node you have selected can&#8217;t serve the data scanning needs, the scan runs against the default Cake Wallet server instead \u2014 see the note below.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Which server does your scanning?<\/strong> Silent Payments scanning needs an Electrum server that serves the silent-payments <code>tweaks<\/code> index \u2014 in practice an <code>electrs<\/code> build with tweak support. When a scan starts, Cake Wallet asks the node you currently have selected whether it can serve that data:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>It can<\/strong> \u2014 the scan runs against your own node.<\/li>\n\n\n\n<li><strong>It cannot<\/strong> \u2014 the scan runs against Cake Wallet&#8217;s own server, <code>electrs.cakewallet.com:50001<\/code>, instead.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Two things worth knowing about that fallback as the app behaves today. Your node setting is <strong>not<\/strong> changed \u2014 the rest of the wallet keeps using your selected node.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So if you run your own node specifically for privacy, confirm it is a tweak-capable <code>electrs<\/code> build and that your wallet is connected to it. Otherwise your Silent Payments scanning traffic goes to Cake Wallet&#8217;s infrastructure to ensure Silent Payments continue to work.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cake Wallet has a wonderful way of handling Silent Payments on Bitcoin if you have your own Bitcoin node with Electrs, but not a version that supports Silent Payments, which I need to investigate further. Cake Wallet keeps using your node for normal Bitcoin transactions, but uses the Cake Wallet node to scan for any [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-18774","post","type-post","status-publish","format-standard","hentry","category-tech"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"featured_image_src":null,"author_info":{"display_name":"Jason","author_link":"https:\/\/jasonsblog.ddns.net\/index.php\/author\/jturning\/"},"_links":{"self":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/comments?post=18774"}],"version-history":[{"count":3,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18774\/revisions"}],"predecessor-version":[{"id":18779,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18774\/revisions\/18779"}],"wp:attachment":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/media?parent=18774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/categories?post=18774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/tags?post=18774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}