{"id":218,"date":"2026-09-21T09:10:50","date_gmt":"2026-09-21T09:10:50","guid":{"rendered":"https:\/\/getbitcoin.guide\/articles\/?p=218"},"modified":"2026-10-10T15:30:16","modified_gmt":"2026-10-10T15:30:16","slug":"anonymous-crypto-wallet","status":"publish","type":"post","link":"https:\/\/getbitcoin.guide\/articles\/anonymous-crypto-wallet\/","title":{"rendered":"Anonymous Crypto Wallet: What It Cannot Actually Hide"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>No anonymous crypto wallet hides what the Bitcoin ledger records. A wallet that asks for no signup keeps your name off one company&#8217;s database, nothing more. Every transaction stays public forever, change outputs and reused addresses link your coins together, and any exchange, shop or wallet server that knows you can join that trail to your name.<\/strong><\/p>\n\n\n\n<div class=\"msq-audio\" data-article=\"anonymous-crypto-wallet\" data-minutes=\"12\">\n<style>.msq-audio{margin:1.25em 0 1.75em;padding:16px 18px;background:#EEF3F8;border:1px solid #CBD8E6;border-radius:12px}\n.msq-audio-lead{margin:0 0 8px;font-size:.95em}.msq-audio audio{width:100%;margin:0 0 12px;display:block}\n.msq-toc-title{margin:0 0 6px;font-weight:700}.msq-toc ol{margin:0;padding:0;list-style:none}\n.msq-toc li{display:flex;gap:10px;align-items:center;padding:6px 6px;border-bottom:1px solid #CBD8E6;border-radius:8px}\n.msq-toc li:last-child{border-bottom:0}.msq-toc li.is-active{background:#fff}\n.msq-toc-play{flex:0 0 auto;width:30px;height:30px;border-radius:50%;border:0;background:#1F4E79;color:#fff;font:inherit;font-size:.72em;line-height:30px;padding:0;cursor:pointer}\n.msq-toc-play.is-playing{background:#B4531A}\n.msq-toc-time{flex:0 0 auto;min-width:3.1em;font-variant-numeric:tabular-nums;color:#4A5560;font-size:.9em}\n.msq-toc a{color:#1B1F24;text-decoration:none;line-height:1.35}.msq-toc li.is-active a{font-weight:700;color:#1F4E79}\n.msq-audio-note{margin:10px 0 0;font-size:.82em;color:#4A5560}\nh2.wp-block-heading[id]{scroll-margin-top:24px}\n.msq-hplay{display:inline-block;vertical-align:middle;width:26px;height:26px;margin:0 0 0 10px;border-radius:50%;border:0;background:#1F4E79;cursor:pointer;padding:0;position:relative;top:-2px}\n.msq-hplay::before{content:'\u25b6\ufe0e';display:block;color:#fff;font-size:11px;line-height:26px;text-align:center}\n.msq-hplay.is-playing{background:#B4531A}.msq-hplay.is-playing::before{content:'\u2016';font-size:13px;font-weight:700}\n.msq-bar{position:fixed;left:0;right:0;bottom:0;z-index:9000;display:flex;align-items:center;gap:10px;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:#FFFFFF;border-top:1px solid #CBD8E6;box-shadow:0 -4px 16px rgba(0,0,0,.08);font-size:.92em;color:#1B1F24;transition:transform .2s ease}\n.msq-bar.is-hidden{transform:translateY(130%)}\n.msq-bar-play{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;background:#1F4E79;color:#fff;font:inherit;font-weight:700;padding:8px 14px 8px 12px;cursor:pointer;white-space:nowrap}\n.msq-bar-play.is-playing{background:#B4531A}\n.msq-bar-icon::before{content:'\u25b6\ufe0e';font-size:12px}.msq-bar-play.is-playing .msq-bar-icon::before{content:'\u2016';font-size:14px;font-weight:700}\n.msq-bar-chapter{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.msq-bar-time{flex:0 0 auto;font-variant-numeric:tabular-nums;color:#4A5560;font-size:.9em}\n.msq-bar-rate,.msq-bar-close{flex:0 0 auto;border:1px solid #CBD8E6;background:#fff;color:#1B1F24;font:inherit;font-size:.85em;line-height:1;border-radius:8px;padding:7px 9px;cursor:pointer}\n.msq-bar-close::before{content:'\u2715'}\n.msq-bar.msq-bar-pill{left:auto;right:14px;bottom:14px;padding:6px;padding-bottom:6px;border:1px solid #CBD8E6;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.15)}\n.msq-bar.msq-bar-pill .msq-bar-chapter,.msq-bar.msq-bar-pill .msq-bar-time,.msq-bar.msq-bar-pill .msq-bar-rate{display:none}\nbody.msq-has-bar{padding-bottom:76px}\n@media (max-width:600px){.msq-bar-time{display:none}.msq-bar{gap:8px;padding-left:10px;padding-right:10px}}\n.msq-s.msq-now{background:#EEF3F8;box-shadow:0 2px 0 #1F4E79;border-radius:2px}\ntr.msq-now td,tr.msq-now th{background:#EEF3F8;box-shadow:inset 0 -2px 0 #1F4E79}\n@media (hover:hover){.msq-s,tr[data-i]{cursor:pointer}.msq-s:hover{background:#EEF3F8}}<\/style>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"AudioObject\",\"@id\":\"https:\/\/getbitcoin.guide\/articles\/anonymous-crypto-wallet\/#audio\",\"name\":\"Anonymous Crypto Wallet: What It Cannot Actually Hide, read aloud\",\"description\":\"Synthetic voice reading of the article, recorded 10 October 2026.\",\"contentUrl\":\"https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/10\/anonymous-crypto-wallet-audio-202610102100.mp3\",\"encodingFormat\":\"audio\/mpeg\",\"duration\":\"PT12M8S\",\"uploadDate\":\"2026-10-10\",\"inLanguage\":\"en-GB\",\"isAccessibleForFree\":true,\"mainEntityOfPage\":\"https:\/\/getbitcoin.guide\/articles\/anonymous-crypto-wallet\/\",\"hasPart\":[{\"@type\":\"Clip\",\"name\":\"Anonymous Crypto Wallet: What It Cannot Actually Hide\",\"startOffset\":0,\"endOffset\":62},{\"@type\":\"Clip\",\"name\":\"Is any crypto wallet actually anonymous?\",\"startOffset\":62,\"endOffset\":128,\"url\":\"https:\/\/getbitcoin.guide\/articles\/anonymous-crypto-wallet\/#is-any-crypto-wallet-actually-anonymous\"},{\"@type\":\"Clip\",\"name\":\"What does the Bitcoin ledger keep forever?\",\"startOffset\":128,\"endOffset\":271,\"url\":\"https:\/\/getbitcoin.guide\/articles\/anonymous-crypto-wallet\/#what-does-the-bitcoin-ledger-keep-forever\"},{\"@type\":\"Clip\",\"name\":\"How does a change output link your addresses?\",\"startOffset\":271,\"endOffset\":388,\"url\":\"https:\/\/getbitcoin.guide\/articles\/anonymous-crypto-wallet\/#how-does-a-change-output-link-your-addresses\"},{\"@type\":\"Clip\",\"name\":\"Where does your name get attached to your coins?\",\"startOffset\":388,\"endOffset\":523,\"url\":\"https:\/\/getbitcoin.guide\/articles\/anonymous-crypto-wallet\/#where-does-your-name-get-attached-to-your-coins\"},{\"@type\":\"Clip\",\"name\":\"What do people whose wallet orders leaked actually report?\",\"startOffset\":523,\"endOffset\":658,\"url\":\"https:\/\/getbitcoin.guide\/articles\/anonymous-crypto-wallet\/#what-do-people-whose-wallet-orders-leaked-actually-report\"},{\"@type\":\"Clip\",\"name\":\"Which privacy habits help, and which are sales talk?\",\"startOffset\":658,\"endOffset\":728,\"url\":\"https:\/\/getbitcoin.guide\/articles\/anonymous-crypto-wallet\/#which-privacy-habits-help-and-which-are-sales-talk\"}],\"contentSize\":\"5.1 MB\"}<\/script>\n<p class=\"msq-audio-lead\"><strong>Listen to this article<\/strong>, about 12 minutes. A synthetic voice reads the article and announces each section title as it begins; tables are read row by row and the questions at the end are left out.<\/p>\n<audio class=\"msq-audio-player\" controls preload=\"metadata\" src=\"https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/10\/anonymous-crypto-wallet-audio-202610102100.mp3\"><\/audio>\n<nav class=\"msq-toc\" aria-label=\"In this article\"><p class=\"msq-toc-title\">In this article<\/p>\n<ol>\n<li data-start=\"0.0\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"0.0\" aria-label=\"Play from: Anonymous Crypto Wallet: What It Cannot Actually Hide\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">0:00<\/span><a href=\"#top\">Anonymous Crypto Wallet: What It Cannot Actually Hide<\/a><\/li>\n<li data-start=\"61.94\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"61.94\" aria-label=\"Play from: Is any crypto wallet actually anonymous?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">1:02<\/span><a href=\"#is-any-crypto-wallet-actually-anonymous\">Is any crypto wallet actually anonymous?<\/a><\/li>\n<li data-start=\"128.08\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"128.08\" aria-label=\"Play from: What does the Bitcoin ledger keep forever?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">2:08<\/span><a href=\"#what-does-the-bitcoin-ledger-keep-forever\">What does the Bitcoin ledger keep forever?<\/a><\/li>\n<li data-start=\"271.26\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"271.26\" aria-label=\"Play from: How does a change output link your addresses?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">4:31<\/span><a href=\"#how-does-a-change-output-link-your-addresses\">How does a change output link your addresses?<\/a><\/li>\n<li data-start=\"388.28\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"388.28\" aria-label=\"Play from: Where does your name get attached to your coins?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">6:28<\/span><a href=\"#where-does-your-name-get-attached-to-your-coins\">Where does your name get attached to your coins?<\/a><\/li>\n<li data-start=\"522.58\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"522.58\" aria-label=\"Play from: What do people whose wallet orders leaked actually report?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">8:43<\/span><a href=\"#what-do-people-whose-wallet-orders-leaked-actually-report\">What do people whose wallet orders leaked actually report?<\/a><\/li>\n<li data-start=\"658.48\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"658.48\" aria-label=\"Play from: Which privacy habits help, and which are sales talk?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">10:58<\/span><a href=\"#which-privacy-habits-help-and-which-are-sales-talk\">Which privacy habits help, and which are sales talk?<\/a><\/li>\n<\/ol><\/nav>\n<p class=\"msq-audio-note\">Recorded 10 October 2026 from the article as published that day. Press a chapter to jump there; the highlighted line is what is playing. A play button sits beside every section heading, and once you scroll past this player a bar at the bottom of the screen keeps the controls in reach. Tap or click any sentence to hear the reading start from there.<\/p>\n<script>var MSQ_SENT = [[0.0,\"h\",\"anonymouscryptowalletwha\",45],[3.8,\"p\",\"noanonymouscryptowalleth\",55],[8.76,\"p\",\"awalletthatasksfornosign\",72],[14.84,\"p\",\"everytransactionstayspub\",156],[25.2,\"p\",\"onthispageabreakdownofwh\",109],[32.96,\"p\",\"checkedon21september2026\",138],[44.4,\"p\",\"thispageexplainswhatgets\",67],[49.72,\"p\",\"itisprivacyhygienethesam\",80],[54.72,\"p\",\"itisnotaguidetoavoidingi\",86],[61.94,\"h\",\"isanycryptowalletactuall\",34],[64.62,\"p\",\"searchthephraseandyouget\",110],[71.98,\"p\",\"whatthosewalletsusuallyo\",56],[76.34,\"p\",\"usefulbutitdescribesthew\",61],[81.66,\"p\",\"thebitcoinprojectisblunt\",37],[84.86,\"p\",\"itsprivacypagesaysallbit\",195],[97.98,\"p\",\"thatistheprojectdescribi\",42],[101.14,\"p\",\"thedesigngoalwasneverano\",30],[103.18,\"p\",\"section10ofthebitcoinwhi\",152],[114.02,\"p\",\"italsowarnsthatsomelinki\",115],[122.22,\"p\",\"pseudonymousistheaccurat\",29],[125.06,\"p\",\"anonymousisthemarketingo\",26],[128.08,\"h\",\"whatdoesthebitcoinledger\",35],[130.24,\"p\",\"theusefulquestionisnotwh\",89],[137.12,\"p\",\"thistablecomparesthethre\",52],[140.84,\"p\",\"eachrowisdrawnfromaprima\",53],[144.8,\"t\",\"publicforever\",281],[167.16,\"t\",\"whatlinksyouraddressesto\",286],[192.84,\"t\",\"whatjoinsanaddresstoyour\",418],[225.96,\"t\",\"whoholdsthatlink\",251],[249.48,\"p\",\"therighthandcolumnistheo\",42],[252.68,\"p\",\"awalletthatnevertoucheda\",167],[263.04,\"p\",\"onwhocanmovecoinsasoppos\",94],[271.26,\"h\",\"howdoesachangeoutputlink\",37],[274.18,\"p\",\"bitcoindoesnotspendparto\",30],[276.58,\"p\",\"itspendsthewholeunspento\",103],[283.82,\"p\",\"hereisthechainanobserver\",73],[288.74,\"p\",\"youwithdraw005000000btcf\",76],[297.02,\"p\",\"theexchangerecordsthatit\",75],[303.34,\"p\",\"youpayamerchant002000000\",27],[309.46,\"p\",\"yourwalletspendsallofaan\",172],[333.22,\"p\",\"anobserverappliestheroun\",92],[340.06,\"p\",\"so002isthepaymentand0029\",34],[346.62,\"p\",\"cisnowlinkedtoaandaislin\",48],[351.22,\"p\",\"nextmonthyouspendctogeth\",57],[355.02,\"p\",\"transactionswithseverali\",110],[362.98,\"p\",\"themerchantwhoshippedyou\",76],[368.46,\"p\",\"noneofthatrequiredahack\",23],[370.3,\"p\",\"anewaddressforeverypayme\",118],[378.78,\"p\",\"wewalkedthroughthesameme\",141],[388.28,\"h\",\"wheredoesyournamegetatta\",39],[390.72,\"p\",\"attheedgesalmostalways\",22],[393.52,\"p\",\"theledgerhasnonamesbutth\",59],[398.0,\"t\",\"exchangewithidentitychec\",108],[406.68,\"t\",\"transferbetweentworegula\",129],[416.88,\"t\",\"usbrokersales\",101],[429.28,\"t\",\"lightwalletserver\",155],[441.08,\"t\",\"hardwarewalletshop\",109],[451.4,\"p\",\"thatlastrowistheonewalle\",73],[456.36,\"p\",\"buyingadevicetoguardyour\",82],[461.76,\"p\",\"ledgersjuly2020noticesai\",157],[475.76,\"p\",\"on21december2020itschief\",134],[488.44,\"p\",\"ithappenedagain\",15],[490.04,\"p\",\"on5january2026globalethe\",140],[501.44,\"p\",\"namescontactdetailsandor\",95],[508.96,\"p\",\"ledgersownglobaleinciden\",47],[513.04,\"p\",\"nocountofaffectedcustome\",38],[515.84,\"p\",\"adifferentwalletsellerdi\",85],[522.58,\"h\",\"whatdopeoplewhosewalleto\",49],[525.78,\"p\",\"weread10trustpilotreview\",152],[538.14,\"p\",\"thesearewhatpeoplereport\",43],[541.7,\"p\",\"fouraccountswerespecific\",35],[544.42,\"p\",\"aukreviewerinjanuary2026\",159],[556.62,\"p\",\"acanadianreviewerinapril\",132],[567.3,\"p\",\"aukreviewerinfebruary202\",116],[575.94,\"p\",\"onbitcointalkinapril2025\",152],[587.18,\"p\",\"anotherpostercalledphysi\",98],[595.18,\"p\",\"therangecutsbothways\",20],[596.86,\"p\",\"inanearlierthreadfromaug\",145],[607.46,\"p\",\"andnoneoftheaccountswere\",119],[616.82,\"p\",\"onereviewreportingstolen\",67],[621.9,\"p\",\"theaccountsagreewiththeo\",76],[627.94,\"p\",\"theypartcompanyontone\",21],[630.18,\"p\",\"noticesstressthatfundswe\",108],[638.1,\"p\",\"ourpieceontheledger24wor\",60],[642.42,\"p\",\"nohardwarewalletmakerexc\",75],[647.74,\"p\",\"anyletteremailcalltextor\",60],[653.7,\"p\",\"donotenterittypeitorscan\",42],[658.48,\"h\",\"whichprivacyhabitshelpan\",42],[661.68,\"t\",\"nosignupmeansanonymous\",112],[670.28,\"t\",\"afreshaddresseverytime\",140],[682.2,\"t\",\"yourownnode\",114],[690.6,\"t\",\"hardwarewalletequalspriv\",115],[700.48,\"t\",\"neverpostyouraddresses\",118],[710.32,\"p\",\"thepracticalversionuseaf\",163],[722.2,\"p\",\"ourguidetoselfcustodyset\",66]];\n(function(){\n  function init(){\n  var root = document.querySelector('.msq-audio'); if (!root) { return; }\n  var audio = root.querySelector('audio'), items = Array.prototype.slice.call(root.querySelectorAll('.msq-toc li'));\n  var starts = items.map(function(li){ return parseFloat(li.getAttribute('data-start')) || 0; });\n  var names = items.map(function(li){ return li.querySelector('a').textContent; });\n  var anchors = items.map(function(li){ var h = li.querySelector('a').getAttribute('href') || ''; return (h.charAt(0) === '#' && h !== '#top') ? document.getElementById(h.slice(1)) : null; });\n  var article = root.getAttribute('data-article') || location.pathname, minutes = root.getAttribute('data-minutes') || '';\n  var marks = {}, started = false, pausedAt = -1, closed = false, ended = false;\n  var RATES = [1, 1.25, 1.5], rate = 1;\n  try { var saved = parseFloat(localStorage.getItem('msq-audio-rate')); if (RATES.indexOf(saved) >= 0) { rate = saved; } } catch (e) {}\n  audio.playbackRate = rate;\n  function track(name, extra){ try { if (typeof gtag === 'function') { var p = { article: article }; for (var k in extra) { p[k] = extra[k]; } gtag('event', name, p); } } catch (e) {} }\n  function current(){ var t = audio.currentTime, idx = 0; for (var i = 0; starts.length > i; i += 1) { if (t + 0.25 >= starts[i]) { idx = i; } } return idx; }\n  function onScreen(){\n    var line = window.innerHeight \/ 3, idx = 0;\n    for (var i = 0; anchors.length > i; i += 1) { var el = anchors[i]; if (el && line >= el.getBoundingClientRect().top) { idx = i; } }\n    return idx;\n  }\n  function fmt(s){ s = Math.max(0, Math.round(s || 0)); var m = Math.floor(s \/ 60), r = s % 60; return m + ':' + (10 > r ? '0' : '') + r; }\n  function play(from, source){\n    if (from !== null) { audio.currentTime = from; }\n    var p = audio.play(); if (p && p.catch) { p.catch(function(){}); }\n    track(from === null ? 'audio_resume' : 'audio_chapter', { chapter: names[current()], start: Math.round(audio.currentTime), source: source });\n  }\n  var hbtns = anchors.map(function(el, i){\n    if (!el) { return null; }\n    var b = document.createElement('button'); b.type = 'button'; b.className = 'msq-hplay'; b.setAttribute('aria-label', 'Play this section: ' + names[i]);\n    b.addEventListener('click', function(){\n      if (!audio.paused && current() === i) { audio.pause(); track('audio_pause', { source: 'heading' }); return; }\n      play(starts[i], 'heading');\n    });\n    el.appendChild(b); return b;\n  });\n  var bar = document.createElement('div'); bar.className = 'msq-bar msq-bar-pill is-hidden'; bar.setAttribute('role', 'region'); bar.setAttribute('aria-label', 'Audio player');\n  var playBtn = document.createElement('button'); playBtn.type = 'button'; playBtn.className = 'msq-bar-play';\n  var icon = document.createElement('span'); icon.className = 'msq-bar-icon'; icon.setAttribute('aria-hidden', 'true');\n  var label = document.createElement('span'); label.className = 'msq-bar-label';\n  playBtn.appendChild(icon); playBtn.appendChild(label);\n  var chap = document.createElement('span'); chap.className = 'msq-bar-chapter';\n  var clock = document.createElement('span'); clock.className = 'msq-bar-time';\n  var rateBtn = document.createElement('button'); rateBtn.type = 'button'; rateBtn.className = 'msq-bar-rate'; rateBtn.setAttribute('aria-label', 'Playback speed');\n  var closeBtn = document.createElement('button'); closeBtn.type = 'button'; closeBtn.className = 'msq-bar-close'; closeBtn.setAttribute('aria-label', 'Close the audio bar');\n  bar.appendChild(playBtn); bar.appendChild(chap); bar.appendChild(clock); bar.appendChild(rateBtn); bar.appendChild(closeBtn);\n  document.body.appendChild(bar);\n  function showRate(){ rateBtn.textContent = (rate === 1 ? '1' : String(rate)) + 'x'; }\n  showRate();\n  rateBtn.addEventListener('click', function(){\n    rate = RATES[(RATES.indexOf(rate) + 1) % RATES.length]; audio.playbackRate = rate; showRate();\n    try { localStorage.setItem('msq-audio-rate', String(rate)); } catch (e) {}\n    track('audio_rate', { rate: rate });\n  });\n  closeBtn.addEventListener('click', function(){\n    closed = true; if (!audio.paused) { audio.pause(); } paint(); track('audio_bar_close', {});\n  });\n  function mode(){\n    if (!audio.paused) { return 'pause'; }\n    if (ended) { return 'again'; }\n    if (!started) { return 'listen'; }\n    return (pausedAt === onScreen()) ? 'resume' : 'section';\n  }\n  playBtn.addEventListener('click', function(){\n    var m = mode();\n    if (m === 'pause') { audio.pause(); track('audio_pause', { source: 'bar' }); return; }\n    if (m === 'again') { ended = false; play(0, 'bar'); return; }\n    if (m === 'resume') { play(null, 'bar'); return; }\n    play(starts[onScreen()], 'bar');\n  });\n  function paint(){\n    var idx = current(), playing = !audio.paused, m = mode();\n    items.forEach(function(li, i){\n      var on = (i === idx) && playing, b = li.querySelector('.msq-toc-play'), a = li.querySelector('a');\n      li.classList.toggle('is-active', on); b.classList.toggle('is-playing', on);\n      b.textContent = on ? '\u2016' : '\u25b6\ufe0e';\n      b.setAttribute('aria-label', (on ? 'Pause: ' : 'Play from: ') + a.textContent);\n    });\n    hbtns.forEach(function(b, i){ if (b) { var on = (i === idx) && playing; b.classList.toggle('is-playing', on); b.setAttribute('aria-label', (on ? 'Pause this section: ' : 'Play this section: ') + names[i]); } });\n    playBtn.classList.toggle('is-playing', playing);\n    label.textContent = m === 'pause' ? 'Pause' : m === 'again' ? 'Play again' : m === 'resume' ? 'Resume' : m === 'section' ? 'Play this section' : 'Listen, ' + minutes + ' min';\n    playBtn.setAttribute('aria-label', label.textContent);\n    chap.textContent = started ? names[(playing || m === 'resume') ? idx : onScreen()] : '';\n    clock.textContent = started ? fmt(audio.currentTime) + ' \/ ' + fmt(audio.duration) : '';\n    bar.classList.toggle('msq-bar-pill', !started);\n    var show = !closed && (started || 0 > root.getBoundingClientRect().bottom);\n    bar.classList.toggle('is-hidden', !show);\n    document.body.classList.toggle('msq-has-bar', show);\n  }\n  root.addEventListener('click', function(e){\n    var b = e.target.closest ? e.target.closest('.msq-toc-play') : null; if (!b) { return; }\n    var li = b.parentNode, s = parseFloat(b.getAttribute('data-start')) || 0;\n    if (!audio.paused && current() === items.indexOf(li)) { audio.pause(); track('audio_pause', { source: 'index' }); return; }\n    play(s, 'index');\n  });\n  audio.addEventListener('play', function(){ ended = false; closed = false; if (!started) { started = true; track('audio_play', { minutes: Math.round((audio.duration || 0) \/ 60) }); } paint(); });\n  audio.addEventListener('pause', function(){ pausedAt = current(); paint(); });\n  audio.addEventListener('timeupdate', function(){\n    paint();\n    if (audio.duration > 0) {\n      var pct = Math.floor(audio.currentTime \/ audio.duration * 100);\n      [25, 50, 75].forEach(function(m){ if (pct >= m && !marks[m]) { marks[m] = true; track('audio_progress', { percent: m }); } });\n    }\n  });\n  audio.addEventListener('ended', function(){ ended = true; track('audio_complete', {}); paint(); });\n  var ticking = false;\n  function onScroll(){ if (ticking) { return; } ticking = true; setTimeout(function(){ ticking = false; paint(); }, 80); }\n  window.addEventListener('scroll', onScroll, { passive: true }); window.addEventListener('resize', onScroll);\n  paint();\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }\n})();\n\n(function(){\n  function start(){\n    var root = document.querySelector('.msq-audio'), audio = root ? root.querySelector('audio') : null;\n    var map = (typeof MSQ_SENT !== 'undefined') ? MSQ_SENT : [];\n    if (!root || !audio || !map.length) { return; }\n    var scope = root.closest('main') || root.closest('article') || root.closest('.entry-content') || document.body;\n    var SKIP = '.msq-audio,.msq,.msq-tool,.msq-end,.msq-bar,script,style,noscript,figcaption,#rank-math-faq,.rank-math-block,nav,header,footer';\n    function norm(s){ return s.toLowerCase().replace(\/[^a-z0-9]+\/g, ''); }\n    var nodes = [], stream = '', walker = document.createTreeWalker(scope, NodeFilter.SHOW_TEXT, null), n;\n    while ((n = walker.nextNode())) {\n      var el = n.parentElement; if (!el || el.closest(SKIP)) { continue; }\n      var raw = n.nodeValue, keep = [], norms = '';\n      for (var i = 0; raw.length > i; i += 1) { var c = raw.charAt(i).toLowerCase(); if (\/[a-z0-9]\/.test(c)) { keep.push(i); norms += c; } }\n      if (!norms) { continue; }\n      nodes.push({ node: n, a: stream.length, b: stream.length + norms.length, keep: keep });\n      stream += norms;\n    }\n    var segs = [], cursor = 0, lastRow = null;\n    map.forEach(function(m, idx){\n      var kind = m[1], f = m[2], len = m[3];\n      if (kind === 't') {\n        var rows = scope.querySelectorAll('tr'), after = !lastRow;\n        for (var r = 0; rows.length > r; r += 1) {\n          var tr = rows[r];\n          if (!after) { if (tr === lastRow) { after = true; } continue; }\n          var cell = tr.querySelector('td,th');\n          if (cell && norm(cell.textContent).indexOf(f) === 0) { tr.setAttribute('data-i', idx); lastRow = tr; break; }\n        }\n        return;\n      }\n      var p = stream.indexOf(f, cursor); if (0 > p) { return; }\n      segs.push({ i: idx, a: p, b: Math.min(p + len, stream.length) }); cursor = p + len;\n    });\n    var si = 0;\n    nodes.forEach(function(nd){\n      var frag = document.createDocumentFragment(), raw = nd.node.nodeValue, rawPos = 0, any = false;\n      for (var k = si; segs.length > k; k += 1) {\n        var sg = segs[k]; if (sg.a >= nd.b) { break; } if (nd.a >= sg.b) { continue; }\n        var s = Math.max(sg.a, nd.a), e = Math.min(sg.b, nd.b);\n        var rs = nd.keep[s - nd.a], re2 = nd.keep[e - nd.a - 1] + 1;\n        if (rs > rawPos) { frag.appendChild(document.createTextNode(raw.slice(rawPos, rs))); }\n        var span = document.createElement('span'); span.className = 'msq-s'; span.setAttribute('data-i', sg.i); span.textContent = raw.slice(rs, re2);\n        frag.appendChild(span); rawPos = re2; any = true;\n        if (sg.b > nd.b) { break; }\n      }\n      while (segs.length > si && nd.b >= segs[si].b) { si += 1; }\n      if (!any) { return; }\n      if (raw.length > rawPos) { frag.appendChild(document.createTextNode(raw.slice(rawPos))); }\n      nd.node.parentNode.replaceChild(frag, nd.node);\n    });\n    var starts = map.map(function(m){ return m[0]; }), curIdx = -1, lastUser = 0, timer = null, autoUntil = 0, dragging = false;\n    function idxAt(t){ var lo = 0, hi = starts.length; while (hi > lo + 1) { var mid = (lo + hi) >> 1; if (t + 0.15 >= starts[mid]) { lo = mid; } else { hi = mid; } } return (t + 0.15 >= starts[0]) ? lo : -1; }\n    function setNow(i){\n      if (i === curIdx) { return; }\n      Array.prototype.forEach.call(scope.querySelectorAll('.msq-now'), function(el){ el.classList.remove('msq-now'); });\n      curIdx = i; if (0 > i) { return; }\n      var els = scope.querySelectorAll('[data-i=\"' + i + '\"]'); if (!els.length) { return; }\n      Array.prototype.forEach.call(els, function(el){ el.classList.add('msq-now'); });\n      var r = els[0].getBoundingClientRect(), now = Date.now();\n      if (!dragging && now > lastUser + 2500 && (80 > r.top || r.bottom > window.innerHeight - 140)) {\n        var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n        autoUntil = now + (reduce ? 400 : 1600);\n        els[0].scrollIntoView({ block: 'center', behavior: reduce ? 'auto' : 'smooth' });\n      }\n    }\n    function tick(){ if (!audio.paused) { setNow(idxAt(audio.currentTime)); } }\n    function userScrolled(){ lastUser = Date.now(); }\n    ['wheel', 'touchmove', 'keydown'].forEach(function(ev){ window.addEventListener(ev, userScrolled, { passive: true }); });\n    window.addEventListener('scroll', function(){ if (Date.now() > autoUntil) { userScrolled(); } }, { passive: true });\n    window.addEventListener('mousedown', function(e){ if (e.clientX >= document.documentElement.clientWidth) { dragging = true; userScrolled(); } }, { passive: true });\n    window.addEventListener('mouseup', function(){ if (dragging) { dragging = false; userScrolled(); } }, { passive: true });\n    audio.addEventListener('play', function(){ if (timer) { clearInterval(timer); } timer = setInterval(tick, 150); tick(); });\n    audio.addEventListener('pause', function(){ if (timer) { clearInterval(timer); timer = null; } });\n    scope.addEventListener('click', function(e){\n      if (e.target.closest('a, button, input, select, textarea, label, summary, .msq, .msq-tool, .msq-end, .msq-audio, .msq-bar')) { return; }\n      var sel = window.getSelection ? String(window.getSelection()) : '';\n      if (sel && sel.trim()) { return; }\n      var el = e.target.closest('[data-i]'); if (!el) { return; }\n      var i = parseInt(el.getAttribute('data-i'), 10); if (isNaN(i)) { return; }\n      if (!audio.paused && i === curIdx) { return; }\n      lastUser = Date.now();\n      audio.currentTime = starts[i];\n      var p = audio.play(); if (p && p.catch) { p.catch(function(){}); }\n      try { if (typeof gtag === 'function') { gtag('event', 'audio_chapter', { article: location.pathname, source: 'sentence', start: Math.round(starts[i]) }); } } catch (err) {}\n    });\n    audio.addEventListener('seeked', tick);\n    audio.addEventListener('ended', function(){ setNow(-1); });\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', start); } else { start(); }\n})();<\/script>\n<\/div>\n\n\n\n<p class=\"msq-hook wp-block-paragraph\">On this page: a breakdown of what the public ledger records, a walkthrough of change output linking, and a checklist of privacy habits.<\/p>\n\n\n\n<div class=\"msq\" id=\"ms-quiz\" data-slug=\"anonymous-crypto-wallet\" data-category=\"Self custody\" data-list=\"1\">\n<style>.msq,.msq-hook,.msq-box,.msq-end,.msq-tool{--msq-accent:#1F4E79;--msq-accent-text:#FFFFFF;--msq-line:#CBD8E6;--msq-warn:#B4531A;--msq-muted:#4A5560;--msq-tint:#EEF3F8;--msq-base:#FFFFFF}\n.msq{margin:1.25em 0 1.75em}\n.msq-hook{border-left:3px solid var(--msq-accent);padding:6px 14px;color:var(--msq-muted);font-size:.97em}\n.msq-box{background:var(--msq-tint);border:1px solid var(--msq-line);border-radius:12px;padding:0}\n.msq-box>summary{cursor:pointer;list-style:none;padding:14px 18px;font-weight:700;color:var(--msq-accent)}\n.msq-box>summary::-webkit-details-marker{display:none}\n.msq-box>summary::before{content:\"+\";display:inline-block;width:1.1em;font-weight:800}\n.msq-box[open]>summary::before{content:\"\\00d7\"}\n.msq-body{padding:2px 18px 18px}\n.msq-intro{margin:0 0 12px;font-size:.95em;color:var(--msq-muted)}\n.msq-list{margin:0;padding:0;list-style:none}\n.msq-q{margin:0 0 18px;padding:0}\n.msq-question{font-weight:700;margin:0 0 8px}\n.msq-options{display:flex;flex-direction:column;gap:8px}\n.msq-opt{text-align:left;background:var(--msq-base);border:1px solid var(--msq-line);border-radius:8px;padding:10px 12px;font:inherit;font-size:.95em;color:inherit;cursor:pointer;line-height:1.35}\n.msq-opt:hover{border-color:var(--msq-accent)}\n.msq-opt[disabled]{cursor:default}\n.msq-opt.is-right{border-color:var(--msq-accent);background:var(--msq-line);font-weight:700}\n.msq-opt.is-wrong{border-color:var(--msq-warn);color:var(--msq-warn)}\n.msq-explain{margin:8px 0 0;font-size:.92em;padding:10px 12px;border-left:3px solid var(--msq-accent);background:var(--msq-base);border-radius:0 8px 8px 0}\n.msq-explain[hidden]{display:none}\n.msq-verdict{font-weight:700}\n.msq-result{margin-top:14px;padding:14px 16px;background:var(--msq-base);border:1px solid var(--msq-line);border-radius:10px}\n.msq-result[hidden]{display:none}\n.msq-result h3{margin:0 0 6px;font-size:1.1em}\n.msq-result p{margin:0 0 8px}\n.msq-jump{margin:0 0 8px;padding-left:1.2em}\n.msq-form{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}\n.msq-form input[type=email]{flex:1 1 220px;padding:10px 12px;border:1px solid var(--msq-muted);border-radius:8px;font:inherit;background:#fff}\n.msq-btn{background:var(--msq-accent);color:var(--msq-accent-text);border:0;border-radius:8px;padding:11px 18px;font:inherit;font-weight:700;cursor:pointer}\n.msq-btn:hover{filter:brightness(.92)}\n.msq-btn[disabled]{opacity:.7;cursor:default}\n.msq-no{font-size:.9em;color:var(--msq-muted);margin-left:4px}\n.msq-privacy{margin:6px 0 0;font-size:.82em;color:var(--msq-muted);flex-basis:100%}\n.msq-hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}\n.msq-msg{margin:8px 0 0;font-size:.92em}\n.msq-end{margin:1.5em 0;padding:18px;border:1px solid var(--msq-accent);border-radius:12px;text-align:center;background:var(--msq-tint)}\n.msq-end p{margin:0 0 12px}\n.msq-end .msq-body{text-align:left;padding:16px 0 0}\n.msq-end .msq-start-test[hidden]{display:none}\n.msq-tool{margin:1.5em 0;padding:18px 20px;background:var(--msq-tint);border:1px solid var(--msq-line);border-radius:12px}\n.msq-tool h3{margin:0 0 6px;font-size:1.15em}\n.msq-tool p{margin:0 0 10px}\n.msq-tool .msq-note{font-size:.85em;color:var(--msq-muted);margin:10px 0 0}\n.msq-check label{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--msq-line);cursor:pointer;line-height:1.4}\n.msq-check label:last-of-type{border-bottom:0}\n.msq-check input{margin-top:5px;flex:0 0 auto;width:18px;height:18px;accent-color:var(--msq-accent)}\n.msq-check-count{font-weight:700;margin:10px 0 0}\n.msq-verdict-box{margin:12px 0 0;padding:10px 14px;border-radius:8px;background:var(--msq-base);border-left:3px solid var(--msq-warn)}\n.msq-verdict-box[hidden]{display:none}\n.msq-calc{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}\n.msq-calc label{display:flex;flex-direction:column;gap:4px;font-size:.92em}\n.msq-calc input,.msq-calc select{padding:8px 10px;border:1px solid var(--msq-muted);border-radius:8px;font:inherit;background:#fff}\n.msq-calc-out{grid-column:1 \/ -1;margin-top:6px;padding:12px 14px;background:var(--msq-base);border-radius:8px;border:1px solid var(--msq-line)}\n.msq-calc-out strong{font-size:1.15em}\n.msq-choose label{display:block;padding:9px 12px;margin:0 0 8px;background:var(--msq-base);border:1px solid var(--msq-line);border-radius:8px;cursor:pointer}\n.msq-choose input{margin-right:8px;accent-color:var(--msq-accent)}\n.msq-choice-result{margin-top:10px;padding:12px 14px;background:var(--msq-base);border-left:3px solid var(--msq-accent);border-radius:0 8px 8px 0}\n.msq-choice-result[hidden]{display:none}\n@media (max-width:600px){.msq-calc{grid-template-columns:1fr}}\nh2.wp-block-heading[id]{scroll-margin-top:24px}<\/style>\n<noscript><style>.msq-explain{display:block !important}<\/style><\/noscript>\n<details class=\"msq-box\">\n<summary>Think you already know this? Five questions, one minute.<\/summary>\n<div class=\"msq-body\">\n<p class=\"msq-intro\">Every answer is on this page. Answer from what you know now; the page fills in the rest.<\/p>\n<ol class=\"msq-list\">\n<li class=\"msq-q\" data-q=\"1\" data-answer=\"b\" data-title=\"Is any crypto wallet actually anonymous?\" data-section=\"#is-any-crypto-wallet-actually-anonymous\">\n<p class=\"msq-question\">1. According to the original Bitcoin whitepaper, how is privacy achieved on the network?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 1 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">By encrypting all transaction amounts on the public ledger<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">By keeping public keys unlinked to real-world identities<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">By routing all transactions through anonymous custodial servers<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Section 10 of the <a href=\"https:\/\/bitcoin.org\/bitcoin.pdf\" target=\"_blank\" rel=\"noopener\">Bitcoin whitepaper<\/a> explains that privacy is maintained by keeping public keys unlinked to personalities, though it warns some linking is inevitable. <a class=\"msq-section\" href=\"#is-any-crypto-wallet-actually-anonymous\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"2\" data-answer=\"b\" data-title=\"What does the Bitcoin ledger keep forever?\" data-section=\"#what-does-the-bitcoin-ledger-keep-forever\">\n<p class=\"msq-question\">2. If you use your own wallet that has never touched an exchange, what links your addresses together?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 2 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">A centralized database maintained by the wallet developer<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Spending several inputs at once, change outputs, and reused addresses<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">The IP address recorded directly inside each block header<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>As noted on the <a href=\"https:\/\/en.bitcoin.it\/wiki\/Privacy\" target=\"_blank\" rel=\"noopener\">Bitcoin Wiki<\/a>, transactions are linked by actions like spending multiple inputs together, change outputs, and reusing addresses. <a class=\"msq-section\" href=\"#what-does-the-bitcoin-ledger-keep-forever\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"3\" data-answer=\"a\" data-title=\"How does a change output link your addresses?\" data-section=\"#how-does-a-change-output-link-your-addresses\">\n<p class=\"msq-question\">3. What is the &#8217;round number rule&#8217; commonly used by blockchain observers to analyze transactions?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 3 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">The assumption that payments tend to be round numbers while change does not<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">The requirement that transaction fees must always be rounded to the nearest thousand satoshis<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">The rule that wallets must only generate change outputs ending in zero<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>According to the <a href=\"https:\/\/en.bitcoin.it\/wiki\/Privacy\" target=\"_blank\" rel=\"noopener\">Bitcoin Wiki<\/a>, observers assume payments tend to be round numbers while change tends not to be, which helps identify the change output. <a class=\"msq-section\" href=\"#how-does-a-change-output-link-your-addresses\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"4\" data-answer=\"b\" data-title=\"Where does your name get attached to your coins?\" data-section=\"#where-does-your-name-get-attached-to-your-coins\">\n<p class=\"msq-question\">4. In the December 2020 Ledger data leak, how many detailed records containing names and physical addresses were exposed?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 4 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">About 9,500 records<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">About 272,000 records<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Exactly 1,000,000 records<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>While the company initially estimated 9,500 detailed records were leaked, the <a href=\"https:\/\/www.ledger.com\/message-ledgers-ceo-data-leak\" target=\"_blank\" rel=\"noopener\">chief executive&#8217;s message<\/a> later confirmed the dump contained about 272,000 records with names, postal addresses, and phone numbers. <a class=\"msq-section\" href=\"#where-does-your-name-get-attached-to-your-coins\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"5\" data-answer=\"a\" data-title=\"What do people whose wallet orders leaked actually report?\" data-section=\"#what-do-people-whose-wallet-orders-leaked-actually-report\">\n<p class=\"msq-question\">5. What did a bitcointalk user describe as the most dangerous version of the phishing scams following the order leak?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 5 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">Professionally printed letters sent to physical home addresses<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Automated phone calls pretending to be wallet support agents<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Direct messages on social media platforms<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>As discussed on <a href=\"https:\/\/bitcointalk.org\/index.php?topic=5539991.0\" target=\"_blank\" rel=\"noopener\">bitcointalk<\/a>, users reported receiving physical letters with QR codes, which was described as highly dangerous because people do not typically expect scams by post. <a class=\"msq-section\" href=\"#what-do-people-whose-wallet-orders-leaked-actually-report\">Read the section<\/a><\/p>\n<\/li>\n<\/ol>\n<div class=\"msq-result\" hidden><\/div>\n<\/div>\n<\/details>\n<script>(function(){\n  if (window.__msqInit) { return; }\n  window.__msqInit = true;\n  var root = document.getElementById('ms-quiz');\n  if (!root) { return; }\n  var meta = { slug: root.getAttribute('data-slug'), category: root.getAttribute('data-category'),\n               list: root.getAttribute('data-list') || '1' };\n  function qs(el, s){ return el.querySelector(s); }\n  function qsa(el, s){ return Array.prototype.slice.call(el.querySelectorAll(s)); }\n  function track(name, params){\n    try { if (typeof gtag === 'function') { var p = params || {}; p.article = meta.slug; gtag('event', name, p); } } catch (e) {}\n  }\n  function jumpList(missed){\n    if (!missed.length) { return ''; }\n    return '<ul class=\"msq-jump\">' + missed.map(function(q){\n      return '<li><a href=\"' + q.getAttribute('data-section') + '\">' + q.getAttribute('data-title') + '<\/a><\/li>';\n    }).join('') + '<\/ul>';\n  }\n  function emailForm(){\n    return '<div class=\"msq-sub\"><p><strong>Get the next one.<\/strong> We publish new articles on ' + meta.category\n      + ' most weeks and recheck this page on Sundays. Email me when a new article goes up or this page changes.<\/p>'\n      + '<form class=\"msq-form\" method=\"post\" action=\"\/mail\/form.php\" novalidate>'\n      + '<input type=\"hidden\" name=\"list\" value=\"' + meta.list + '\">'\n      + '<input type=\"hidden\" name=\"name\" value=\"\">'\n      + '<label class=\"msq-hp\" aria-hidden=\"true\">Leave this empty<input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/label>'\n      + '<input type=\"email\" name=\"email\" placeholder=\"you@example.com\" required aria-label=\"Email address\" autocomplete=\"email\">'\n      + '<button type=\"submit\" class=\"msq-btn\">Email me the updates<\/button>'\n      + '<a href=\"#\" class=\"msq-no\">No thanks<\/a>'\n      + '<p class=\"msq-privacy\">We store your email and this page\\'s topic, nothing else. Unsubscribe any time.<\/p>'\n      + '<\/form><p class=\"msq-msg\" aria-live=\"polite\"><\/p><\/div>';\n  }\n  \/* The autoresponder always answers 200 with its own page. A \".msg.err\" box means the\n     address was rejected, \"You're subscribed\" means accepted, and a redirect only happens\n     after a successful subscribe. Same reading as the landing pages on the other sites. *\/\n  function sendForm(form){\n    return fetch(form.getAttribute('action'), { method: 'POST', body: new FormData(form), credentials: 'same-origin', redirect: 'manual' })\n      .then(function(res){\n        if (res.type === 'opaqueredirect') { return { status: 'ok' }; }\n        if (res.status === 404) { return { status: 'notlive' }; }\n        if (!res.ok) { throw new Error('HTTP ' + res.status); }\n        return res.text().then(function(t){\n          var doc = new DOMParser().parseFromString(t, 'text\/html');\n          var err = doc.querySelector('.msg.err');\n          if (err) {\n            var m = err.textContent.trim();\n            if (\/something went wrong\/i.test(m)) { throw new Error(m); }\n            return { status: 'rejected', message: m };\n          }\n          if (\/you.re subscribed\/i.test(doc.body.textContent)) { return { status: 'ok' }; }\n          return { status: 'unknown' };\n        });\n      });\n  }\n  function wireForm(sub){\n    var form = qs(sub, '.msq-form'), msg = qs(sub, '.msq-msg');\n    qs(form, '.msq-no').addEventListener('click', function(e){\n      e.preventDefault();\n      sub.innerHTML = '<p class=\"msq-msg\">No problem. The Sunday refresh keeps this page current either way.<\/p>';\n      track('quiz_email', { result: 'declined' });\n    });\n    form.addEventListener('submit', function(e){\n      e.preventDefault();\n      var input = qs(form, 'input[name=email]'), btn = qs(form, '.msq-btn');\n      var email = input.value.trim(); input.value = email;\n      if (!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email)) { msg.textContent = 'That email does not look right.'; return; }\n      btn.disabled = true; btn.textContent = 'Sending';\n      function reset(){ btn.disabled = false; btn.textContent = 'Email me the updates'; }\n      sendForm(form).then(function(r){\n        if (r.status === 'ok' || r.status === 'unknown') {\n          sub.innerHTML = '<p class=\"msq-msg\"><strong>Done.<\/strong> We will email you when the next article on ' + meta.category\n            + ' goes up and when this page changes. If a confirmation email arrives, click it.<\/p>';\n          track('quiz_email', { result: r.status });\n          if (r.status === 'ok') { track('generate_lead', { method: 'quiz' }); }\n        } else if (r.status === 'notlive') {\n          msg.textContent = 'Sign up is not switched on yet for this site. Nothing was stored.'; reset();\n          track('quiz_email', { result: 'notlive' });\n        } else {\n          msg.textContent = r.message || 'Please check the email address and try again.'; reset();\n          track('quiz_email', { result: 'rejected' });\n        }\n      }).catch(function(){\n        msg.textContent = 'Could not reach the sign up service just now. Nothing was stored.'; reset();\n        track('quiz_email', { result: 'error' });\n      });\n    });\n  }\n  function finish(container, mode, score, total, missed){\n    var result = qs(container, '.msq-result');\n    track('quiz_complete', { mode: mode, score: score, total: total });\n    var h;\n    if (mode === 'pre') {\n      h = '<h3>You knew ' + score + ' of ' + total + ' before reading.<\/h3>';\n      h += (score === total) ? '<p>All of them. Read on anyway; the sections below carry the detail behind each answer.<\/p>'\n                             : '<p>The rest is below. Jump straight to what you missed:<\/p>' + jumpList(missed);\n      try { sessionStorage.setItem('msq-pre-' + meta.slug, String(score)); } catch (e) {}\n    } else {\n      var pre = null;\n      try { pre = sessionStorage.getItem('msq-pre-' + meta.slug); } catch (e) {}\n      h = '<h3>You got ' + score + ' of ' + total + '.<\/h3>';\n      if (pre !== null) { h += '<p>Before reading you had ' + pre + ' of ' + total + '.<\/p>'; }\n      if (missed.length) { h += '<p>Worth a second look:<\/p>' + jumpList(missed); }\n      h += emailForm();\n    }\n    result.innerHTML = h; result.hidden = false;\n    if (mode !== 'pre') { wireForm(qs(result, '.msq-sub')); }\n    result.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n  }\n  function setup(container, mode){\n    var qEls = qsa(container, '.msq-q'), answered = 0, score = 0, missed = [];\n    qEls.forEach(function(q){\n      var answer = q.getAttribute('data-answer'), opts = qsa(q, '.msq-opt'), explain = qs(q, '.msq-explain');\n      q.removeAttribute('data-done'); explain.hidden = true; qs(explain, '.msq-verdict').textContent = '';\n      opts.forEach(function(b){ b.disabled = false; b.classList.remove('is-right', 'is-wrong'); });\n      opts.forEach(function(b){\n        b.addEventListener('click', function(){\n          if (q.getAttribute('data-done')) { return; }\n          q.setAttribute('data-done', '1');\n          var ok = b.getAttribute('data-opt') === answer;\n          opts.forEach(function(o){ o.disabled = true; if (o.getAttribute('data-opt') === answer) { o.classList.add('is-right'); } });\n          if (ok) { score += 1; } else { b.classList.add('is-wrong'); missed.push(q); }\n          qs(explain, '.msq-verdict').textContent = ok ? 'Right. ' : 'Not quite. ';\n          explain.hidden = false;\n          answered += 1;\n          track('quiz_answer', { mode: mode, question: q.getAttribute('data-q'), correct: ok ? 1 : 0 });\n          if (answered === qEls.length) { finish(container, mode, score, qEls.length, missed); }\n        });\n      });\n    });\n  }\n  var box = qs(root, '.msq-box');\n  setup(root, 'pre');\n  if (box) { var skipFirst = box.hasAttribute('data-default-open'); box.addEventListener('toggle', function(){ if (!box.open) { return; } if (skipFirst) { skipFirst = false; return; } track('quiz_open', { mode: 'pre' }); }); }\n  \/* The end block sits far below this script, so it does not exist yet while this runs\n     during parsing. A delegated listener finds it at click time. *\/\n  document.addEventListener('click', function(e){\n    var startBtn = (e.target && e.target.closest) ? e.target.closest('.msq-start-test') : null;\n    if (!startBtn) { return; }\n    var end = startBtn.closest('.msq-end');\n    if (!end) { return; }\n    var mount = qs(end, '.msq-mount');\n    var clone = qs(root, '.msq-body').cloneNode(true);\n    var intro = qs(clone, '.msq-intro');\n    if (intro) { intro.textContent = 'The same five questions, now that you have read the page.'; }\n    var res = qs(clone, '.msq-result'); if (res) { res.hidden = true; res.innerHTML = ''; }\n    mount.innerHTML = ''; mount.appendChild(clone);\n    setup(mount, 'test');\n    startBtn.hidden = true;\n    track('quiz_open', { mode: 'test' });\n    mount.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    var first = qs(mount, '.msq-opt'); if (first) { first.focus({ preventScroll: true }); }\n  });\n  \/* Shared tool behaviour: checklists remember their ticks on this device, and a chooser\n     shows the result for the option picked. Calculators carry their own small script. *\/\n  function initTools(){\n    qsa(document, '.msq-check').forEach(function(box){\n      var key = 'msq-check-' + meta.slug + '-' + (box.getAttribute('data-id') || 'x');\n      var boxes = qsa(box, 'input[type=checkbox]'), count = qs(box, '.msq-check-count');\n      var yes = qs(box, '.msq-verdict-yes'), no = qs(box, '.msq-verdict-no');\n      var saved = {};\n      try { saved = JSON.parse(localStorage.getItem(key) || '{}'); } catch (e) {}\n      boxes.forEach(function(cb, i){ if (saved[i]) { cb.checked = true; } });\n      function refresh(){\n        var n = boxes.filter(function(cb){ return cb.checked; }).length, state = {};\n        boxes.forEach(function(cb, i){ if (cb.checked) { state[i] = 1; } });\n        try { localStorage.setItem(key, JSON.stringify(state)); } catch (e) {}\n        if (count) { count.textContent = n + ' of ' + boxes.length + (box.getAttribute('data-verb') || ' done'); }\n        if (yes && no) { yes.hidden = n === 0; no.hidden = n !== 0; }\n      }\n      boxes.forEach(function(cb){ cb.addEventListener('change', function(){ refresh(); track('tool_check', { tool: box.getAttribute('data-id') }); }); });\n      refresh();\n    });\n    qsa(document, '.msq-choose').forEach(function(box){\n      var results = qsa(box, '.msq-choice-result');\n      qsa(box, 'input[type=radio]').forEach(function(r){\n        r.addEventListener('change', function(){\n          results.forEach(function(el){ el.hidden = el.getAttribute('data-for') !== r.value; });\n          track('tool_choose', { tool: box.getAttribute('data-id'), choice: r.value });\n        });\n      });\n    });\n  }\n  \/\/ read progress: how far down the article the reader has scrolled, fired once per quarter\n  (function(){\n    var art = root.closest('article') || root.parentNode, fired = {};\n    function check(){\n      var top = art.getBoundingClientRect().top + window.pageYOffset, h = art.offsetHeight || 1;\n      var seen = (window.pageYOffset + window.innerHeight - top) \/ h * 100;\n      [25, 50, 75, 100].forEach(function(m){ if (seen >= m && !fired[m]) { fired[m] = true; track('read_progress', { percent: m }); } });\n    }\n    window.addEventListener('scroll', check, { passive: true }); window.addEventListener('load', check);\n  })();\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initTools); } else { initTools(); }\n})();<\/script>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Checked on 21 September 2026 against the Bitcoin project&#8217;s own privacy guidance, its developer documentation, the original whitepaper, and two Ledger breach notices. This page explains what gets recorded and what a wallet does and does not conceal. It is privacy hygiene, the same instinct that stops you pinning a bank statement to the front door. It is not a guide to avoiding identification or any reporting duty, and it recommends no service for that.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"is-any-crypto-wallet-actually-anonymous\">Is any crypto wallet actually anonymous?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Search the phrase and you get a wall of listicles ranking the best anonymous wallets, most written by sites paid when you download one. What those wallets usually offer is no account: no email, no ID upload. Useful, but it describes the wallet company&#8217;s records, not the blockchain&#8217;s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Bitcoin project is blunter than its fans. Its <a href=\"https:\/\/bitcoin.org\/en\/protect-your-privacy\" rel=\"nofollow noopener\" target=\"_blank\">privacy page<\/a> says all Bitcoin transactions are public, traceable and permanently stored in the network, and that because people usually reveal their identity to receive goods or services, addresses cannot remain fully anonymous. That is the project describing itself, not a critic.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The design goal was never anonymity. Section 10 of the <a href=\"https:\/\/bitcoin.org\/bitcoin.pdf\" rel=\"nofollow noopener\" target=\"_blank\">Bitcoin whitepaper<\/a> describes privacy as keeping public keys unlinked to people, the way a stock exchange publishes the time and size of every trade without the names. It also warns that some linking is unavoidable, and that once the owner of one key is revealed, the links can expose their other transactions. Pseudonymous is the accurate word. Anonymous is the marketing one.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-does-the-bitcoin-ledger-keep-forever\">What does the Bitcoin ledger keep forever?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The useful question is not which wallet is anonymous but what is recorded, where, and who can connect it to you. This table compares the three ways people commonly hold coins. Each row is drawn from a primary source, linked in the last column.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>What is recorded<\/th><th>Custodial exchange account<\/th><th>Own wallet, funded from an exchange<\/th><th>Own wallet, never touched an exchange<\/th><th>Source<\/th><\/tr><\/thead><tbody><tr><td>Public forever<\/td><td>The exchange&#8217;s own on chain deposits and withdrawals; your balance sits in its private books<\/td><td>Every transaction, amount and address your wallet uses<\/td><td>Every transaction, amount and address your wallet uses<\/td><td><a href=\"https:\/\/bitcoin.org\/en\/protect-your-privacy\" rel=\"nofollow noopener\" target=\"_blank\">bitcoin.org<\/a><\/td><\/tr><tr><td>What links your addresses together<\/td><td>Not needed: the exchange simply knows<\/td><td>Spending several inputs at once, change outputs, reused addresses<\/td><td>The same: spending several inputs at once, change outputs, reused addresses<\/td><td><a href=\"https:\/\/en.bitcoin.it\/wiki\/Privacy\" rel=\"nofollow noopener\" target=\"_blank\">Bitcoin Wiki, Privacy<\/a><\/td><\/tr><tr><td>What joins an address to your legal identity<\/td><td>Your verified account itself<\/td><td>The exchange&#8217;s withdrawal record to your first address; transfers between providers carry sender and recipient details under the travel rule<\/td><td>Whoever paid you or was paid by you and knows who you are; the shop that shipped your hardware wallet; any wallet server that sees your addresses and IP address<\/td><td><a href=\"https:\/\/www.fatf-gafi.org\/en\/topics\/virtual-assets.html\" rel=\"nofollow noopener\" target=\"_blank\">FATF<\/a>; <a href=\"https:\/\/www.ledger.com\/addressing-the-july-2020-e-commerce-and-marketing-data-breach\" rel=\"nofollow noopener\" target=\"_blank\">Ledger, July 2020<\/a><\/td><\/tr><tr><td>Who holds that link<\/td><td>The exchange, and regulators on request<\/td><td>The exchange, plus anyone the exchange&#8217;s records reach<\/td><td>Counterparties, shops, servers, and anyone they leak to<\/td><td><a href=\"https:\/\/www.theregister.com\/2026\/01\/06\/ledger_globale_breach\/\" rel=\"nofollow noopener\" target=\"_blank\">The Register, January 2026<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The right hand column is the one the listicles sell. A wallet that never touched an exchange still receives coins from somebody, and the <a href=\"https:\/\/bitcoin.org\/en\/protect-your-privacy\" rel=\"nofollow noopener\" target=\"_blank\">same Bitcoin privacy page<\/a> notes that anyone listening on the network can log the IP addresses relaying a transaction. On who can move coins, as opposed to who can see them, see <a href=\"https:\/\/getbitcoin.guide\/articles\/non-custodial-crypto-wallet\/\">what non custodial actually means for control of your coins<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-does-a-change-output-link-your-addresses\">How does a change output link your addresses?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bitcoin does not spend part of a coin. It spends the whole unspent output and sends the surplus back to you, which the <a href=\"https:\/\/developer.bitcoin.org\/devguide\/transactions.html\" rel=\"nofollow noopener\" target=\"_blank\">Bitcoin developer guide<\/a> calls a change output. Here is the chain an observer can follow, with round numbers so the arithmetic is visible.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>You withdraw 0.05000000 BTC from a verified exchange account to address A in your own wallet. The exchange records that it sent those coins, to that address, at that time, for your account.<\/li><li>You pay a merchant 0.02000000 BTC. Your wallet spends all of A and creates two outputs: 0.02000000 to the merchant and 0.02997800 back to a new change address C. The fee is 0.00002200, which is 2,200 satoshis, about 110 virtual bytes at 20 satoshis each.<\/li><li>An observer applies the round number rule from the <a href=\"https:\/\/en.bitcoin.it\/wiki\/Privacy\" rel=\"nofollow noopener\" target=\"_blank\">Bitcoin Wiki<\/a>: payments tend to be round, change tends not to be. So 0.02 is the payment and 0.029978 is yours. C is now linked to A, and A is linked to your exchange account.<\/li><li>Next month you spend C together with a separate coin a friend sent you. Transactions with several inputs reveal common ownership, as the whitepaper itself says, so the friend&#8217;s coin joins the same cluster.<\/li><li>The merchant, who shipped you something, has your postal address against address A&#8217;s payment.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">None of that required a hack. A new address for every payment, the default in modern wallets, slows this down without stopping it, because the change still has to go somewhere. We walked through the same mechanism from the other end in <a href=\"https:\/\/getbitcoin.guide\/articles\/crypto-paper-wallet\/\">where the leftover coins from a paper wallet go<\/a>, where change sent to a new address is what empties a one key wallet.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1376\" height=\"768\" src=\"https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/linked-addresses-sketch-anonymous-crypto-wallet.jpg\" alt=\"Hands sketch linked circles in a notebook, tracing how an anonymous crypto wallet's addresses connect.\" class=\"wp-image-216\" srcset=\"https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/linked-addresses-sketch-anonymous-crypto-wallet.jpg 1376w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/linked-addresses-sketch-anonymous-crypto-wallet-300x167.jpg 300w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/linked-addresses-sketch-anonymous-crypto-wallet-1024x572.jpg 1024w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/linked-addresses-sketch-anonymous-crypto-wallet-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><figcaption class=\"wp-block-image__caption\">Change outputs join addresses into one cluster, and no hacking is required.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"where-does-your-name-get-attached-to-your-coins\">Where does your name get attached to your coins?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">At the edges, almost always. The ledger has no names, but the places coins enter and leave it mostly do.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Point of contact<\/th><th>What it can learn<\/th><th>Source<\/th><\/tr><\/thead><tbody><tr><td>Exchange with identity checks<\/td><td>Your identity against every deposit and withdrawal address<\/td><td><a href=\"https:\/\/en.bitcoin.it\/wiki\/Privacy\" rel=\"nofollow noopener\" target=\"_blank\">Bitcoin Wiki<\/a><\/td><\/tr><tr><td>Transfer between two regulated providers<\/td><td>Sender and recipient details passed along with the transfer under the travel rule<\/td><td><a href=\"https:\/\/www.fatf-gafi.org\/en\/topics\/virtual-assets.html\" rel=\"nofollow noopener\" target=\"_blank\">FATF<\/a><\/td><\/tr><tr><td>US broker sales<\/td><td>Gross proceeds reported to the IRS on Form 1099-DA for sales from 1 January 2025<\/td><td><a href=\"https:\/\/www.irs.gov\/forms-pubs\/about-form-1099-da\" rel=\"nofollow noopener\" target=\"_blank\">IRS<\/a><\/td><\/tr><tr><td>Light wallet server<\/td><td>Your addresses, and your IP address unless you hide it; Electrum style servers receive address hashes and reply with your history<\/td><td><a href=\"https:\/\/en.bitcoin.it\/wiki\/Privacy\" rel=\"nofollow noopener\" target=\"_blank\">Bitcoin Wiki<\/a><\/td><\/tr><tr><td>Hardware wallet shop<\/td><td>Your name, postal address, phone and the fact that you own a wallet<\/td><td><a href=\"https:\/\/www.ledger.com\/message-ledgers-ceo-data-leak\" rel=\"nofollow noopener\" target=\"_blank\">Ledger, December 2020<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">That last row is the one wallet reviews skip, perhaps because the review links to the shop. Buying a device to guard your keys puts your home address on a list of people who own crypto hardware. Ledger&#8217;s <a href=\"https:\/\/www.ledger.com\/addressing-the-july-2020-e-commerce-and-marketing-data-breach\" rel=\"nofollow noopener\" target=\"_blank\">July 2020 notice<\/a> said an unauthorised party reached its e-commerce database through an API key, exposing about 1 million email addresses and, it first thought, 9,500 detailed records. On 21 December 2020 its <a href=\"https:\/\/www.ledger.com\/message-ledgers-ceo-data-leak\" rel=\"nofollow noopener\" target=\"_blank\">chief executive&#8217;s message<\/a> said the dump published the day before held about 272,000 records with names, postal addresses and phone numbers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It happened again. On 5 January 2026 Global-e, the payments partner handling Ledger&#8217;s international orders, began notifying customers that order data had been taken, <a href=\"https:\/\/www.theregister.com\/2026\/01\/06\/ledger_globale_breach\/\" rel=\"nofollow noopener\" target=\"_blank\">The Register reported<\/a>. Names, contact details and order contents were exposed; Ledger said recovery phrases, passwords and funds were not. Ledger&#8217;s own <a href=\"https:\/\/support.ledger.com\/article\/Global-e-Incident-to-Order-Data---January-2026\" rel=\"nofollow noopener\" target=\"_blank\">Global-e incident page<\/a> is the primary notice. No count of affected customers was published. A different wallet seller disclosed a similar order leak in August 2026, covered in <a href=\"https:\/\/getbitcoin.guide\/articles\/safepal-wallet-review\/\">our SafePal review<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/10\/anonymous-crypto-wallet-chart.png\" alt=\"Bar chart showing the scale of the July 2020 Ledger data breach across different record types.\" class=\"wp-image-530\" srcset=\"https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/10\/anonymous-crypto-wallet-chart.png 1600w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/10\/anonymous-crypto-wallet-chart-300x169.png 300w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/10\/anonymous-crypto-wallet-chart-1024x576.png 1024w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/10\/anonymous-crypto-wallet-chart-768x432.png 768w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/10\/anonymous-crypto-wallet-chart-1536x864.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-block-image__caption\">Figures are based on Ledger&#8217;s official disclosures following the July 2020 incident.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-do-people-whose-wallet-orders-leaked-actually-report\">What do people whose wallet orders leaked actually report?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We read 10 Trustpilot reviews of Ledger that mentioned a leak, a home address or a scam, dated from August 2024 to August 2026, and two bitcointalk threads with about 20 posts between them. These are what people report, not verified findings. Four accounts were specific enough to use.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>A UK reviewer in January 2026 said the leak exposed their name, home address and the model of wallet they had bought, and that targeted phishing emails arrived within about two weeks (<a href=\"https:\/\/www.trustpilot.com\/review\/www.ledger.com?search=address\" rel=\"nofollow noopener\" target=\"_blank\">Trustpilot<\/a>).<\/li><li>A Canadian reviewer in April 2025 reported dozens of emails from people who knew their full name, address, phone number and which product they owned (<a href=\"https:\/\/www.trustpilot.com\/review\/www.ledger.com?search=address\" rel=\"nofollow noopener\" target=\"_blank\">Trustpilot<\/a>).<\/li><li>A UK reviewer in February 2025 described an email claiming their account was hacked that quoted their home address back to them (<a href=\"https:\/\/www.trustpilot.com\/review\/www.ledger.com?search=address\" rel=\"nofollow noopener\" target=\"_blank\">Trustpilot<\/a>).<\/li><li>On bitcointalk in April 2025 a user described professionally printed letters, posted to leaked addresses, carrying a QR code and a demand to update the recovery phrase or lose service. Another poster called physical mail the most dangerous version, since people do not expect scams by post (<a href=\"https:\/\/bitcointalk.org\/index.php?topic=5539991.0\" rel=\"nofollow noopener\" target=\"_blank\">bitcointalk<\/a>).<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The range cuts both ways. In an <a href=\"https:\/\/bitcointalk.org\/index.php?topic=5507246.0\" rel=\"nofollow noopener\" target=\"_blank\">earlier thread<\/a> from August 2024, two posters said they received Ledger phishing emails despite never owning one, which suggests broad spam lists as well as targeted ones. And none of the accounts we read tied a loss of coins to the leak alone: the damage people describe is exposure, fear and a steady stream of attempts. One review reporting stolen funds did not say how they were taken, so we left it out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The accounts agree with the official notices on substance: contact details leaked, not keys. They part company on tone. Notices stress that funds were safe; the people on the list describe years of letters and emails that each have to be spotted as fake. <a href=\"https:\/\/getbitcoin.guide\/articles\/ledger-24-word-seed\/\">Our piece on the Ledger 24 word seed<\/a> covers why the letters keep arriving.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No hardware wallet maker, exchange or wallet app needs your recovery phrase for any reason. Any letter, email, call, text or QR code that asks for it is theft in progress. Do not enter it, type it or scan anything to reveal it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1376\" height=\"768\" src=\"https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/linking-identity-to-anonymous-crypto-wallet.jpg\" alt=\"A man holds an envelope and his phone, wondering what his anonymous crypto wallet order revealed.\" class=\"wp-image-217\" srcset=\"https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/linking-identity-to-anonymous-crypto-wallet.jpg 1376w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/linking-identity-to-anonymous-crypto-wallet-300x167.jpg 300w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/linking-identity-to-anonymous-crypto-wallet-1024x572.jpg 1024w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/linking-identity-to-anonymous-crypto-wallet-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><figcaption class=\"wp-block-image__caption\">A leaked order list turns a wallet purchase into a home address on a list.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"which-privacy-habits-help-and-which-are-sales-talk\">Which privacy habits help, and which are sales talk?<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Claim you will see<\/th><th>What it actually does<\/th><\/tr><\/thead><tbody><tr><td>No signup means anonymous<\/td><td>Keeps your name off the wallet company&#8217;s servers. The ledger records everything anyway.<\/td><\/tr><tr><td>A fresh address every time<\/td><td>Recommended by the developer guide and on by default in most wallets. Slows linking; change and consolidation still link.<\/td><\/tr><tr><td>Your own node<\/td><td>Stops a third party server learning your addresses. Does nothing about what the ledger itself records.<\/td><\/tr><tr><td>Hardware wallet equals privacy<\/td><td>Protects keys, not identity. The purchase itself can put your address on a leaked list.<\/td><\/tr><tr><td>Never post your addresses<\/td><td>Sound. Bitcoin.org says the same: publishing addresses or purchases lets others identify them.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The practical version: use a fresh receiving address, do not reuse or publish addresses, understand what your wallet&#8217;s server can see, and treat any order data a shop holds on you as potentially public. <a href=\"https:\/\/getbitcoin.guide\/articles\/self-custody-crypto\/\">Our guide to self custody<\/a> sets out the rest of what holding your own keys takes on.<\/p>\n\n\n\n<div class=\"msq-tool msq-check\" data-id=\"anonymous-crypto-wallet-checklist\" data-verb=\" done\">\n<h3>Privacy Hygiene Checklist<\/h3>\n<p>Improve your privacy profile by practicing these basic self-custody habits.<\/p>\n<label><input type=\"checkbox\">Use a fresh receiving address for every transaction<\/label>\n<label><input type=\"checkbox\">Do not reuse or publish your addresses online<\/label>\n<label><input type=\"checkbox\">Understand what your wallet&#8217;s server can see<\/label>\n<label><input type=\"checkbox\">Run your own node to stop third-party servers from learning your addresses<\/label>\n<label><input type=\"checkbox\">Treat any order data a shop holds on you as potentially public<\/label>\n<p class=\"msq-check-count\"><\/p>\n<p class=\"msq-note\">Ticks are saved on this device only.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"frequently-asked-questions\">Frequently asked questions<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-q-1\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Is a hardware wallet more private than a phone wallet?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Not by itself. A hardware wallet keeps the keys offline, which is a security property. Privacy depends on how the companion app looks up your balance and on the shop record your purchase created. Both kinds of wallet use the same public ledger.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Can someone see my balance if they know one of my addresses?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>They can see everything that address has received and sent, and follow change outputs to related addresses. If you ever share an extended public key, often shown as an xpub, the holder can see every address the wallet derives from it.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-3\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Does using a new address every time make me untraceable?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No. It removes the easiest link, address reuse, but change outputs and transactions that spend several coins at once still connect addresses, as the Bitcoin whitepaper itself acknowledges.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-4\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Why care about privacy if I have nothing to hide?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Because a visible balance makes you a target. The leaked Ledger customer lists show what happens when the names and home addresses of probable holders circulate: years of phishing letters, emails and calls aimed at those people.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-5\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">What should I do if my details were in a wallet shop leak?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Treat your name, address and phone number as public. Ignore every inbound contact about your wallet, whatever the channel, and go to the maker&#8217;s site by typing its address yourself. Never enter or reveal your recovery phrase.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-6\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Does moving coins from an exchange to my own wallet hide them from the exchange?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No. The exchange keeps its record of the withdrawal and the address it went to, and on chain anyone can follow the coins from that address onward. In the US, brokers also report sales on Form 1099-DA from 2025.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<div class=\"msq-end\" id=\"ms-quiz-end\">\n<p><strong>Finished the page?<\/strong> The same five questions from the top, to see what stuck.<\/p>\n<button type=\"button\" class=\"msq-btn msq-start-test\">Test Your Understanding of This Article<\/button>\n<div class=\"msq-mount\"><\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>This article is educational and is not financial advice. Nothing here is a recommendation to buy, sell or hold anything. You are responsible for your own security decisions.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What an anonymous crypto wallet really hides, what the Bitcoin ledger keeps forever, and what people whose wallet orders leaked report.<\/p>\n","protected":false},"author":1,"featured_media":215,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","rank_math_title":"Anonymous Crypto Wallet: What It Cannot Actually Hide","rank_math_description":"No anonymous crypto wallet hides the ledger. Transactions stay public forever, change links addresses, and exchanges and shops tie them to you.","rank_math_focus_keyword":"anonymous crypto wallet","rank_math_canonical_url":"","rank_math_breadcrumb_title":"","rank_math_facebook_title":"","rank_math_facebook_description":"","rank_math_facebook_image":"","rank_math_twitter_title":"","rank_math_twitter_description":"","rank_math_twitter_image":"","rank_math_pillar_content":"","rank_math_robots":[],"rank_math_advanced_robots":[]},"categories":[3],"tags":[],"class_list":["post-218","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-self-custody"],"_links":{"self":[{"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/posts\/218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/comments?post=218"}],"version-history":[{"count":3,"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/posts\/218\/revisions"}],"predecessor-version":[{"id":533,"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/posts\/218\/revisions\/533"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/media\/215"}],"wp:attachment":[{"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/media?parent=218"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/categories?post=218"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/tags?post=218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}