{"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-17T18:32:52","modified_gmt":"2026-09-18T01:32:52","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 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 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 BitBoxApp 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_dc691357-23d6-4a39-b5ca-1ae882222559\"><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":1,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18774\/revisions"}],"predecessor-version":[{"id":18775,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18774\/revisions\/18775"}],"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}]}}