{"id":345,"date":"2026-09-27T16:36:49","date_gmt":"2026-09-27T16:36:49","guid":{"rendered":"https:\/\/getbitcoin.guide\/articles\/?p=345"},"modified":"2026-10-21T09:34:12","modified_gmt":"2026-10-21T09:34:12","slug":"cryptosteel-capsule-solo","status":"publish","type":"post","link":"https:\/\/getbitcoin.guide\/articles\/cryptosteel-capsule-solo\/","title":{"rendered":"Cryptosteel Capsule Solo: Retired, and What Replaces It"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>The Cryptosteel Capsule Solo has been retired. Its page on the maker\u2019s own store now redirects to the Seed24, and no Capsule appears in the shop at all, checked on 27 September 2026. Resellers still list it, sold out and silent about the replacement. An existing Capsule keeps working, because it has no firmware to abandon.<\/strong><\/p>\n\n\n\n<div class=\"msq-audio\" data-article=\"cryptosteel-capsule-solo\" data-minutes=\"13\">\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\/cryptosteel-capsule-solo\/#audio\",\"name\":\"Cryptosteel Capsule Solo: Retired, and What Replaces It, read aloud\",\"description\":\"Synthetic voice reading of the article, recorded 27 September 2026.\",\"contentUrl\":\"https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/cryptosteel-capsule-solo-audio-202609272213.mp3\",\"encodingFormat\":\"audio\/mpeg\",\"duration\":\"PT13M18S\",\"uploadDate\":\"2026-09-27\",\"inLanguage\":\"en-GB\",\"isAccessibleForFree\":true,\"mainEntityOfPage\":\"https:\/\/getbitcoin.guide\/articles\/cryptosteel-capsule-solo\/\",\"hasPart\":[{\"@type\":\"Clip\",\"name\":\"Cryptosteel Capsule Solo: Retired, and What Replaces It\",\"startOffset\":0,\"endOffset\":56},{\"@type\":\"Clip\",\"name\":\"Is the Cryptosteel Capsule Solo still on sale?\",\"startOffset\":56,\"endOffset\":150,\"url\":\"https:\/\/getbitcoin.guide\/articles\/cryptosteel-capsule-solo\/#is-the-cryptosteel-capsule-solo-still-on-sale\"},{\"@type\":\"Clip\",\"name\":\"What is the Seed24, and what does it change?\",\"startOffset\":150,\"endOffset\":287,\"url\":\"https:\/\/getbitcoin.guide\/articles\/cryptosteel-capsule-solo\/#what-is-the-seed24-and-what-does-it-change\"},{\"@type\":\"Clip\",\"name\":\"Does 123 characters really hold a 24 word seed phrase?\",\"startOffset\":287,\"endOffset\":470,\"url\":\"https:\/\/getbitcoin.guide\/articles\/cryptosteel-capsule-solo\/#does-123-characters-really-hold-a-24-word-seed-phrase\"},{\"@type\":\"Clip\",\"name\":\"What survived the stress tests, and what did not?\",\"startOffset\":470,\"endOffset\":535,\"url\":\"https:\/\/getbitcoin.guide\/articles\/cryptosteel-capsule-solo\/#what-survived-the-stress-tests-and-what-did-not\"},{\"@type\":\"Clip\",\"name\":\"What do public accounts from buyers actually say?\",\"startOffset\":535,\"endOffset\":647,\"url\":\"https:\/\/getbitcoin.guide\/articles\/cryptosteel-capsule-solo\/#what-do-public-accounts-from-buyers-actually-say\"},{\"@type\":\"Clip\",\"name\":\"What does a metal backup not protect?\",\"startOffset\":647,\"endOffset\":748,\"url\":\"https:\/\/getbitcoin.guide\/articles\/cryptosteel-capsule-solo\/#what-does-a-metal-backup-not-protect\"},{\"@type\":\"Clip\",\"name\":\"What should you do if you already own a Capsule Solo?\",\"startOffset\":748,\"endOffset\":798,\"url\":\"https:\/\/getbitcoin.guide\/articles\/cryptosteel-capsule-solo\/#what-should-you-do-if-you-already-own-a-capsule-solo\"}],\"contentSize\":\"5.6 MB\"}<\/script>\n<p class=\"msq-audio-lead\"><strong>Listen to this article<\/strong>, about 13 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\/09\/cryptosteel-capsule-solo-audio-202609272213.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: Cryptosteel Capsule Solo: Retired, and What Replaces It\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">0:00<\/span><a href=\"#top\">Cryptosteel Capsule Solo: Retired, and What Replaces It<\/a><\/li>\n<li data-start=\"55.7\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"55.7\" aria-label=\"Play from: Is the Cryptosteel Capsule Solo still on sale?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">0:56<\/span><a href=\"#is-the-cryptosteel-capsule-solo-still-on-sale\">Is the Cryptosteel Capsule Solo still on sale?<\/a><\/li>\n<li data-start=\"149.84\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"149.84\" aria-label=\"Play from: What is the Seed24, and what does it change?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">2:30<\/span><a href=\"#what-is-the-seed24-and-what-does-it-change\">What is the Seed24, and what does it change?<\/a><\/li>\n<li data-start=\"286.94\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"286.94\" aria-label=\"Play from: Does 123 characters really hold a 24 word seed phrase?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">4:47<\/span><a href=\"#does-123-characters-really-hold-a-24-word-seed-phrase\">Does 123 characters really hold a 24 word seed phrase?<\/a><\/li>\n<li data-start=\"470.2\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"470.2\" aria-label=\"Play from: What survived the stress tests, and what did not?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">7:50<\/span><a href=\"#what-survived-the-stress-tests-and-what-did-not\">What survived the stress tests, and what did not?<\/a><\/li>\n<li data-start=\"535.38\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"535.38\" aria-label=\"Play from: What do public accounts from buyers actually say?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">8:55<\/span><a href=\"#what-do-public-accounts-from-buyers-actually-say\">What do public accounts from buyers actually say?<\/a><\/li>\n<li data-start=\"646.76\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"646.76\" aria-label=\"Play from: What does a metal backup not protect?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">10:47<\/span><a href=\"#what-does-a-metal-backup-not-protect\">What does a metal backup not protect?<\/a><\/li>\n<li data-start=\"747.54\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"747.54\" aria-label=\"Play from: What should you do if you already own a Capsule Solo?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">12:28<\/span><a href=\"#what-should-you-do-if-you-already-own-a-capsule-solo\">What should you do if you already own a Capsule Solo?<\/a><\/li>\n<\/ol><\/nav>\n<p class=\"msq-audio-note\">Recorded 27 September 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\",\"cryptosteelcapsulesolore\",46],[3.36,\"p\",\"thecryptosteelcapsulesol\",39],[6.56,\"p\",\"itspageonthemakersownsto\",106],[15.76,\"p\",\"resellersstilllistitsold\",55],[19.56,\"p\",\"anexistingcapsulekeepswo\",60],[24.0,\"p\",\"onthispagethemakersownst\",160],[37.8,\"p\",\"almosteverypagerankingfo\",138],[46.24,\"p\",\"sohereisthestateofitveri\",102],[55.7,\"h\",\"isthecryptosteelcapsules\",38],[58.9,\"p\",\"notfromthecompanythatmak\",28],[61.1,\"p\",\"on27september2026theprod\",114],[72.42,\"p\",\"theshopliststheseed12sec\",108],[82.94,\"p\",\"thereisnocapsuleofanykin\",29],[85.02,\"p\",\"thecassettetheoriginal20\",122],[93.82,\"p\",\"beforethatpagecamedownit\",162],[105.62,\"p\",\"thatwordingisnolongerrea\",77],[111.66,\"p\",\"resellersareadifferentst\",80],[116.38,\"p\",\"thecryptomerchantstillha\",122],[126.06,\"p\",\"asearchfortheexactproduc\",198],[141.46,\"p\",\"thatisthepracticalriskof\",49],[145.26,\"p\",\"youdonotfindit\",14],[146.78,\"p\",\"youfindsomethingarranged\",36],[149.84,\"h\",\"whatistheseed24andwhatdo\",34],[152.84,\"p\",\"theseedsystempagecallsth\",92],[160.2,\"p\",\"sameideathenstampedsteel\",73],[166.36,\"p\",\"thevendorstatestheseed24\",120],[177.92,\"p\",\"threechangesmatter\",18],[179.88,\"p\",\"theshellnowhasmountingho\",122],[190.36,\"p\",\"thecoreisdescribedasdefo\",73],[195.2,\"p\",\"andthesealstilesseparato\",155],[205.4,\"t\",\"statedcapacity\",75],[216.32,\"t\",\"fireclaim\",62],[234.36,\"t\",\"tamperevidentseals\",93],[244.96,\"t\",\"soldbythemaker\",45],[252.44,\"t\",\"pricewhenchecked\",98],[264.12,\"p\",\"thosepriceswerereaddurin\",153],[275.88,\"p\",\"openingthestorefromoutsi\",145],[286.94,\"h\",\"does123charactersreallyh\",44],[291.54,\"p\",\"thenumber123ismeaningles\",119],[300.34,\"p\",\"bip39buildsitswordlistso\",73],[305.82,\"p\",\"wedownloadedtheenglishwo\",100],[313.22,\"p\",\"wordlengthsrunfromthreel\",48],[317.58,\"p\",\"cryptosteelreliesonexact\",171],[329.18,\"p\",\"whichgivesthefollowingco\",46],[332.78,\"t\",\"12wordsfirstfourletterse\",95],[343.3,\"t\",\"12wordswrittenoutinfulla\",96],[352.66,\"t\",\"12wordswrittenoutinfullw\",97],[362.3,\"t\",\"24wordsfirstfourletterse\",95],[373.14,\"t\",\"24wordswrittenoutinfulla\",97],[383.38,\"t\",\"24wordswrittenoutinfullw\",102],[393.34,\"t\",\"capsulesolocapacity\",74],[401.02,\"t\",\"seed24capacity\",69],[409.22,\"t\",\"seed12capacity\",68],[416.7,\"p\",\"sothecapsulesoloclearsa2\",74],[423.1,\"p\",\"neitherholdsonewrittenou\",82],[431.18,\"p\",\"thatisthedesignrathertha\",128],[439.62,\"p\",\"theheadroomisthereforapa\",60],[444.62,\"p\",\"thenumberworthasecondloo\",86],[451.86,\"p\",\"buythesmalloneintendingt\",84],[457.9,\"p\",\"abbreviatedyouneed48\",20],[460.58,\"p\",\"eitherwayourpieceonthewa\",125],[470.2,\"h\",\"whatsurvivedthestresstes\",39],[473.12,\"p\",\"jamesonlopptestedmoretha\",119],[482.76,\"p\",\"hismethodroughly2000ffor\",112],[492.28,\"p\",\"heatandwaterthecapsuleca\",82],[498.32,\"p\",\"acidnoneenteredthecapsul\",25],[501.28,\"p\",\"thepressisthefindingthat\",31],[502.92,\"p\",\"under20tonsthetubebentan\",89],[509.32,\"p\",\"thetilesinsidewereundama\",48],[513.16,\"p\",\"gettingatthemwouldmeancu\",67],[517.24,\"p\",\"sothecapsuleisexcellenta\",153],[527.48,\"p\",\"aflatstampedplatehasnoca\",30],[530.48,\"p\",\"thatisarealtradeoffandno\",59],[535.38,\"h\",\"whatdopublicaccountsfrom\",41],[538.18,\"p\",\"verylittleandthesilencei\",41],[542.02,\"p\",\"weread34postsacrosstwobi\",139],[556.18,\"p\",\"foraproductrecommendedth\",77],[561.66,\"p\",\"treatallofthisastestimon\",36],[565.1,\"p\",\"whatrecursfrompeoplecons\",189],[578.1,\"p\",\"severalsaidtheywouldrath\",65],[582.58,\"p\",\"otherspushedbacknotingth\",124],[591.5,\"p\",\"oneposterinfebruary2021w\",124],[600.58,\"p\",\"theonefirsthandaccountwe\",126],[610.94,\"p\",\"hemachinedhisownfromstai\",211],[626.82,\"p\",\"hereachedthecrushproblem\",55],[630.26,\"p\",\"wheretheseaccountsagreew\",92],[635.94,\"p\",\"wheretheydonotassemblyis\",140],[646.76,\"h\",\"whatdoesametalbackupnotp\",30],[649.08,\"p\",\"ametalbackupdefendsthewo\",58],[653.72,\"p\",\"thatisthewholelist\",18],[655.84,\"p\",\"itdoesnothingaboutanyone\",138],[666.48,\"p\",\"thereisnopinnoattemptlim\",48],[670.96,\"p\",\"thedocumentedanswertotha\",150],[682.08,\"p\",\"slip39splittingistheothe\",84],[688.24,\"p\",\"ourpieceonwhythephraseis\",96],[695.32,\"p\",\"thesecondthingsteelcanno\",52],[699.0,\"p\",\"inledgersowndisclosureof\",160],[712.24,\"p\",\"nowalletandnofundswereto\",126],[721.64,\"p\",\"cryptosteelnowadvertises\",106],[728.96,\"p\",\"neverenterarecoveryphras\",94],[735.96,\"p\",\"nolegitimatetoolneedsit\",23],[737.56,\"p\",\"ifyouhavebeenleavingaphr\",133],[747.54,\"h\",\"whatshouldyoudoifyoualre\",42],[750.86,\"p\",\"nothingurgentandthatisth\",37],[754.02,\"p\",\"adiscontinuedphonestopsg\",45],[757.42,\"p\",\"adiscontinuedlumpofstain\",147],[768.5,\"p\",\"thevendorstatesthattiles\",113],[776.54,\"p\",\"whatisworthdoingisthethi\",98],[783.66,\"p\",\"papercopiesdeservethesam\",135],[793.22,\"p\",\"forwhereabackupbelongsat\",64]];\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: the maker&#8217;s own store checked on 27 September 2026, a table of what a 24 word phrase actually costs in characters computed from the BIP39 wordlist, and what a 20 ton press did to a capsule.<\/p>\n\n\n\n<div class=\"msq\" id=\"ms-quiz\" data-slug=\"cryptosteel-capsule-solo\" 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 the Cryptosteel Capsule Solo still on sale?\" data-section=\"#is-the-cryptosteel-capsule-solo-still-on-sale\">\n<p class=\"msq-question\">1. What happens when you open the old Capsule Solo product page on the maker&#8217;s own store today?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 1 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">It loads normally with a buy button<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">It redirects to the Seed24 product page<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">It returns a not found error<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Checked on 27 September 2026, the Capsule Solo URL resolves to the <a href=\"https:\/\/cryptosteel.com\/product\/seed24\/\" target=\"_blank\" rel=\"noopener\">Seed24 product page<\/a>, and no Capsule of any kind appears in the <a href=\"https:\/\/cryptosteel.com\/shop\/\" target=\"_blank\" rel=\"noopener\">shop<\/a>. <a class=\"msq-section\" href=\"#is-the-cryptosteel-capsule-solo-still-on-sale\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"2\" data-answer=\"c\" data-title=\"What is the Seed24, and what does it change?\" data-section=\"#what-is-the-seed24-and-what-does-it-change\">\n<p class=\"msq-question\">2. What capacity does the maker state for the Seed24?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 2 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">64 characters<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">96 characters<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">128 characters<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>The <a href=\"https:\/\/cryptosteel.com\/seed-system-metal-backup\/\" target=\"_blank\" rel=\"noopener\">Seed system page<\/a> states 128 characters for the Seed24 and 64 for the Seed12, against 123 for the Capsule it replaces. <a class=\"msq-section\" href=\"#what-is-the-seed24-and-what-does-it-change\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"3\" data-answer=\"b\" data-title=\"Does 123 characters really hold a 24 word seed phrase?\" data-section=\"#does-123-characters-really-hold-a-24-word-seed-phrase\">\n<p class=\"msq-question\">3. How many characters does a 24 word phrase need when each word is cut to its first four letters?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 3 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">72<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">96<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">130<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>24 words at four letters each is 96. <a href=\"https:\/\/github.com\/bitcoin\/bips\/blob\/master\/bip-0039.mediawiki\" target=\"_blank\" rel=\"noopener\">BIP39<\/a> builds its wordlist so those four letters identify a word unambiguously, and all 2048 words in the <a href=\"https:\/\/github.com\/bitcoin\/bips\/blob\/master\/bip-0039\/english.txt\" target=\"_blank\" rel=\"noopener\">English wordlist<\/a> are unique in their first four letters. <a class=\"msq-section\" href=\"#does-123-characters-really-hold-a-24-word-seed-phrase\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"4\" data-answer=\"c\" data-title=\"What survived the stress tests, and what did not?\" data-section=\"#what-survived-the-stress-tests-and-what-did-not\">\n<p class=\"msq-question\">4. In Jameson Lopp&#8217;s Round III testing, what stopped the capsule being opened?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 4 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">The heat welded the cap shut<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Acid corroded the thread<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">A 20 ton press bent the tube so the cap could not be unscrewed<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>In <a href=\"https:\/\/blog.lopp.net\/metal-bitcoin-seed-storage-stress-test-round-iii\/\" target=\"_blank\" rel=\"noopener\">Round III, published 7 December 2019<\/a>, the capsule came through roughly 2000F and muriatic acid readable, but the press bent the tube and the permanently fixed end rod meant the cap would no longer unscrew. <a class=\"msq-section\" href=\"#what-survived-the-stress-tests-and-what-did-not\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"5\" data-answer=\"a\" data-title=\"What does a metal backup not protect?\" data-section=\"#what-does-a-metal-backup-not-protect\">\n<p class=\"msq-question\">5. What does a metal backup do about somebody who finds it and opens it?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 5 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">Nothing, the words are there in plain letters<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">It locks after three wrong attempts<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">It requires a PIN to read<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>A capsule is a passive container with no PIN and no attempt limit. The documented answer is a BIP39 passphrase kept elsewhere, or <a href=\"https:\/\/github.com\/satoshilabs\/slips\/blob\/master\/slip-0039.md\" target=\"_blank\" rel=\"noopener\">SLIP39<\/a> splitting so no single object found in a drawer is enough. <a class=\"msq-section\" href=\"#what-does-a-metal-backup-not-protect\">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) { box.addEventListener('toggle', function(){ if (box.open) { 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\">Almost every page ranking for this product name is a review with a commission attached, and not one of them mentions that the thing it recommends has been discontinued. So here is the state of it, verified today at source, plus the arithmetic on whether 123 characters is enough for a seed phrase.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"is-the-cryptosteel-capsule-solo-still-on-sale\">Is the Cryptosteel Capsule Solo still on sale?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Not from the company that makes it. On 27 September 2026 the product URL for the Capsule Solo on <a href=\"https:\/\/cryptosteel.com\/product\/seed24\/\" target=\"_blank\" rel=\"noopener\">cryptosteel.com<\/a> resolves to the Seed24 product page instead of a Capsule page. The <a href=\"https:\/\/cryptosteel.com\/shop\/\" target=\"_blank\" rel=\"noopener\">shop<\/a> lists the Seed12 Security Kit, the Seed24 Security Kit, the Seed24 MAX Solo, Duo, Trio and Quintet, and the older Cassette Solo. There is no Capsule of any kind in it. The Cassette, the original 2013 era product, outlived the Capsule that replaced it, which is a pleasing result for anyone who distrusts moving parts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before that page came down it carried a clearance notice calling itself the final opportunity to buy the Capsule Solo, replaced by the next generation Seed24, and restricting sales to the US and EU. That wording is no longer reachable directly, so treat it as reported rather than quoted live. Resellers are a different story, and this is the part worth knowing before you click a review link. The Crypto Merchant still has a <a href=\"https:\/\/www.thecryptomerchant.com\/products\/cryptosteel-capsule-solo\" target=\"_blank\" rel=\"noopener\">Capsule Solo product page<\/a> at 99 dollars, reduced from 115, marked sold out, with nothing on it saying the line has ended. A search for the exact product name on Amazon.com the same day returned five results and not one was a Cryptosteel: two Keystone plates, an ELLIPAL plate, and two unbranded listings with the words crypto steel capsule wedged into their titles. That is the practical risk of shopping for a retired device. You do not find it. You find something arranged to look like it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-the-seed24-and-what-does-it-change\">What is the Seed24, and what does it change?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <a href=\"https:\/\/cryptosteel.com\/seed-system-metal-backup\/\" target=\"_blank\" rel=\"noopener\">Seed system page<\/a> calls the Seed range the new version of the Capsule, whose anatomy it says the Seed inherits. Same idea, then: stamped steel character tiles threaded onto a core inside a sealed shell. The vendor states the Seed24 stores a 24 word phrase, Shamir backups, multisig keys and strings up to 128 characters, and the Seed12 strings up to 64.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Three changes matter. The shell now has mounting holes at both ends for PSW-97 tamper evident seals, each with a serial number and a stated breaking strength of nearly 45 kg. The core is described as deformation resistant and locks with a double sided cotter pin. And the seals, tiles, separators and cotter pins are all stated to be compatible with the original Capsule, which is the single most useful sentence on the vendor\u2019s site if you already own one.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><\/th><th>Capsule Solo<\/th><th>Seed24<\/th><th>Seed12<\/th><\/tr><\/thead><tbody><tr><td>Stated capacity<\/td><td>123 characters<\/td><td>128 characters<\/td><td>64 characters<\/td><\/tr><tr><td>Fire claim<\/td><td>1400C \/ 2500F<\/td><td>1400C \/ 2500F<\/td><td>1400C \/ 2500F<\/td><\/tr><tr><td>Tamper evident seals<\/td><td>Compatible, sold separately<\/td><td>Included, 4 in the MAX set<\/td><td>Optional<\/td><\/tr><tr><td>Sold by the maker<\/td><td>No<\/td><td>Yes<\/td><td>Yes<\/td><\/tr><tr><td>Price when checked<\/td><td>99 dollars at a reseller, sold out<\/td><td>From 50 dollars, MAX Solo 70<\/td><td>From 20 euro<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Those prices were read during a September sale advertising up to 50 percent off, against list prices of 80 dollars for the Security Kit and 110 for the MAX Solo, which showed as out of stock. Opening the store from outside the US and EU showed every Seed24 variant as currently unavailable in your region, so the geographic restriction did not leave with the Capsule.<\/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\/assembling-metal-letters-cryptosteel-capsule-solo-alternative.jpg\" alt=\"Hands assembling metal letters for a backup, showing an alternative to the cryptosteel capsule solo.\" class=\"wp-image-343\" srcset=\"https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/assembling-metal-letters-cryptosteel-capsule-solo-alternative.jpg 1376w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/assembling-metal-letters-cryptosteel-capsule-solo-alternative-300x167.jpg 300w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/assembling-metal-letters-cryptosteel-capsule-solo-alternative-1024x572.jpg 1024w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/assembling-metal-letters-cryptosteel-capsule-solo-alternative-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><figcaption class=\"wp-block-image__caption\">Every character must be precisely set to ensure recovery works when needed.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"does-123-characters-really-hold-a-24-word-seed-phrase\">Does 123 characters really hold a 24 word seed phrase?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The number 123 is meaningless until you know what a seed phrase costs in characters, and that depends entirely on whether you write the words out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/bitcoin\/bips\/blob\/master\/bip-0039.mediawiki\" target=\"_blank\" rel=\"noopener\">BIP39<\/a> builds its wordlist so that the first four letters identify a word unambiguously. We downloaded the <a href=\"https:\/\/github.com\/bitcoin\/bips\/blob\/master\/bip-0039\/english.txt\" target=\"_blank\" rel=\"noopener\">English wordlist<\/a> and checked: all 2048 words are unique in their first four letters, with no exceptions. Word lengths run from three letters to eight, averaging 5.4. Cryptosteel relies on exactly this property and <a href=\"https:\/\/cryptosteel.com\/why-four-letter-words-are-the-standard-for-recovery-seed-backup\/\" target=\"_blank\" rel=\"noopener\">explains why<\/a>, and its <a href=\"https:\/\/cryptosteel.com\/how-to-use-capsule\/\" target=\"_blank\" rel=\"noopener\">own instructions<\/a> use a blank tile to fill the gap when a word is only three letters long, so an abbreviated word always occupies four slots.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Which gives the following, computed rather than quoted.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>What you are storing<\/th><th>Characters<\/th><th>Where the number comes from<\/th><\/tr><\/thead><tbody><tr><td>12 words, first four letters each<\/td><td>48<\/td><td>12 times 4, per the BIP39 four letter rule<\/td><\/tr><tr><td>12 words written out in full, average<\/td><td>65<\/td><td>mean word length 5.4, from the wordlist<\/td><\/tr><tr><td>12 words written out in full, worst case<\/td><td>96<\/td><td>the twelve longest words in the list<\/td><\/tr><tr><td>24 words, first four letters each<\/td><td>96<\/td><td>24 times 4, per the BIP39 four letter rule<\/td><\/tr><tr><td>24 words written out in full, average<\/td><td>130<\/td><td>mean word length 5.4, from the wordlist<\/td><\/tr><tr><td>24 words written out in full, worst case<\/td><td>192<\/td><td>the twenty four longest words in the list<\/td><\/tr><tr><td>Capsule Solo capacity<\/td><td>123<\/td><td>vendor specification<\/td><\/tr><tr><td>Seed24 capacity<\/td><td>128<\/td><td>vendor specification<\/td><\/tr><tr><td>Seed12 capacity<\/td><td>64<\/td><td>vendor specification<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">So the Capsule Solo clears a 24 word phrase with 27 characters spare and the Seed24 with 32. Neither holds one written out in full, because the average needs 130 and an unlucky phrase needs 192. That is the design rather than a defect: these devices are built around the four letter abbreviation, which is lossless because the wordlist guarantees it. The headroom is there for a passphrase or a <a href=\"https:\/\/github.com\/satoshilabs\/slips\/blob\/master\/slip-0039.md\" target=\"_blank\" rel=\"noopener\">SLIP39 share<\/a>, not for spelling. A plate that stores numbers instead of letters has a different limit, which our <a href=\"https:\/\/getbitcoin.guide\/articles\/cryptotag-zeus-review\/\">Cryptotag Zeus review<\/a> works through: a 20 word share fits its 24 slots, a 33 word share does not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The number worth a second look is the Seed12 at 64 characters against an average full 12 word phrase of 65. Buy the small one intending to write your words out and roughly half of all 12 word phrases will not fit. Abbreviated, you need 48. Either way, our piece on <a href=\"https:\/\/getbitcoin.guide\/articles\/your-recovery-phrase\/\">the ways people actually lose a recovery phrase<\/a> covers the transcription mistakes that have cost more coins than fire ever has.<\/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\/09\/cryptosteel-capsule-solo-chart.png\" alt=\"Bar chart of cryptosteel capsule solo capacity against seed phrase character needs\" class=\"wp-image-348\" srcset=\"https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/cryptosteel-capsule-solo-chart.png 1600w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/cryptosteel-capsule-solo-chart-300x169.png 300w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/cryptosteel-capsule-solo-chart-1024x576.png 1024w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/cryptosteel-capsule-solo-chart-768x432.png 768w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/cryptosteel-capsule-solo-chart-1536x864.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-block-image__caption\">The line marks the 96 characters a 24 word phrase needs at four letters per word. Writing the same phrase out in full averages 130.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-survived-the-stress-tests-and-what-did-not\">What survived the stress tests, and what did not?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jameson Lopp tested more than 70 metal seed products before ending the series, and the Capsule appears in <a href=\"https:\/\/blog.lopp.net\/metal-bitcoin-seed-storage-stress-test-round-iii\/\" target=\"_blank\" rel=\"noopener\">Round III, published on 7 December 2019<\/a>. His method: roughly 2000F for up to ten minutes, then submersion in water to imitate a fire crew, muriatic acid, and a 20 ton hydraulic press.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Heat and water: the Capsule came through readable, and Lopp reported no trouble reopening it by hand. Acid: none entered the capsule. The press is the finding that matters. Under 20 tons the tube bent, and because the end rod is permanently fixed, the cap could no longer be unscrewed. The tiles inside were undamaged and the words were intact. Getting at them would mean cutting the tube open around your own recovery phrase.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So the capsule is excellent against the failure people fear, fire, and has a specific weakness against one they rarely plan for: being crushed under a collapsed building or a heavy object. A flat stamped plate has no cap to jam. That is a real trade off, and no review with an affiliate link mentions 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\/man-examining-durable-cryptosteel-capsule-solo-backup.jpg\" alt=\"A man sitting in a cozy room holding a metal backup device similar to the cryptosteel capsule solo.\" class=\"wp-image-344\" srcset=\"https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/man-examining-durable-cryptosteel-capsule-solo-backup.jpg 1376w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/man-examining-durable-cryptosteel-capsule-solo-backup-300x167.jpg 300w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/man-examining-durable-cryptosteel-capsule-solo-backup-1024x572.jpg 1024w, https:\/\/getbitcoin.guide\/articles\/wp-content\/uploads\/2026\/09\/man-examining-durable-cryptosteel-capsule-solo-backup-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><figcaption class=\"wp-block-image__caption\">Steel came through fire and acid in testing. A 20 ton press was a different matter.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-do-public-accounts-from-buyers-actually-say\">What do public accounts from buyers actually say?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Very little, and the silence is itself the finding. We read 34 posts across two bitcointalk threads, one of <a href=\"https:\/\/bitcointalk.org\/index.php?topic=5476242.0\" target=\"_blank\" rel=\"noopener\">20 posts from 1 to 3 December 2023<\/a> and one of <a href=\"https:\/\/bitcointalk.org\/index.php?topic=5313180.0\" target=\"_blank\" rel=\"noopener\">14 posts from 29 January to 3 February 2021<\/a>, plus one published build log. For a product recommended this widely, almost nobody posting publicly had actually held one. Treat all of this as testimony, not evidence.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What recurs, from people considering it rather than owning it: fear of misspelling a word during assembly, fear of all the tiles sliding out at once, doubt about having enough letter tiles, and the price set against a hardware wallet. Several said they would rather have one punched plate than a bag of small parts. Others pushed back, noting that the separators stop words mixing and the end stop keeps the tiles in, which matches the vendor\u2019s assembly instructions. One poster in February 2021, weeks after a large customer list leak, argued the real problem with any branded backup was the purchase record it creates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The one first hand account we found is James Stanley, who published a <a href=\"https:\/\/incoherency.co.uk\/blog\/stories\/diy-cryptosteel-capsule.html\" target=\"_blank\" rel=\"noopener\">build log on 20 January 2020<\/a> after deciding the Capsule at 89 euro was a bit expensive. He machined his own from stainless washers on a threaded rod for about 14 pounds in materials, and gave two reasons for preferring it: you do not lose the key even if you spill the washers, and the shorter body is easier to stash and less likely to bend if crushed. He reached the crush problem six weeks after Lopp demonstrated it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Where these accounts agree with the official guidance: the steel does what the vendor says under heat and water. Where they do not: assembly is fiddlier than the marketing photographs suggest, and what people fear is human error with small parts rather than any property of the metal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-does-a-metal-backup-not-protect\">What does a metal backup not protect?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A metal backup defends the words against the weather and against time. That is the whole list. It does nothing about anyone who opens it, because your recovery phrase is sitting there in plain letters, as legible to a burglar or a builder or a relative as it is to you. There is no PIN, no attempt limit and nothing to brute force.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The documented answer to that is a BIP39 passphrase, sometimes called the 25th word, stored somewhere the capsule is not, which is one of the things the spare character capacity is for. <a href=\"https:\/\/github.com\/satoshilabs\/slips\/blob\/master\/slip-0039.md\" target=\"_blank\" rel=\"noopener\">SLIP39<\/a> splitting is the other, dividing the secret so that no single object found in a drawer is enough. Our piece on <a href=\"https:\/\/getbitcoin.guide\/articles\/ledger-24-word-seed\/\">why the phrase is 24 words and what that cannot stop<\/a> goes through what the length does and does not buy you.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The second thing steel cannot fix is the record of the purchase. In Ledger\u2019s <a href=\"https:\/\/www.ledger.com\/addressing-the-july-2020-e-commerce-and-marketing-data-breach\" target=\"_blank\" rel=\"noopener\">own disclosure<\/a> of the July 2020 e-commerce breach, around one million email addresses were exposed, along with the name, postal address, phone number or order history of 9,500 customers. No wallet and no funds were touched, which was never the point: a list of verified addresses of people known to own bitcoin hardware is dangerous on its own. Cryptosteel now advertises unbranded discreet shipping and anonymous ordering, which suggests they understand the problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Never enter a recovery phrase into a website, an app or a support form that asks for it, whatever it promises to check. No legitimate tool needs it. If you have been leaving a phrase with a custodian instead, our page on <a href=\"https:\/\/getbitcoin.guide\/articles\/coinbase-seed-phrase\/\">which Coinbase product actually has a seed phrase<\/a> explains what you are and are not holding.<\/p>\n\n\n\n<div class=\"msq-tool msq-choose\" data-id=\"backup-medium\">\n<h3>Which backup medium answers your threat?<\/h3>\n<p>Pick the thing you are actually worried about. Each answer restates what the vendors specify and what published testing found, and nothing else. No medium is endorsed here and none of this is advice about your money.<\/p>\n<label><input type=\"radio\" name=\"backup-medium\" value=\"fire\">A house fire or a flood<\/label>\n<label><input type=\"radio\" name=\"backup-medium\" value=\"crush\">Being crushed, buried or run over<\/label>\n<label><input type=\"radio\" name=\"backup-medium\" value=\"found\">Somebody in the house finding it<\/label>\n<label><input type=\"radio\" name=\"backup-medium\" value=\"parts\">Losing or mis-setting small parts<\/label>\n<label><input type=\"radio\" name=\"backup-medium\" value=\"travel\">Carrying it or hiding it in a small space<\/label>\n<label><input type=\"radio\" name=\"backup-medium\" value=\"capacity\">Storing 24 words plus a passphrase or a Shamir share<\/label>\n<div class=\"msq-choice-result\" data-for=\"fire\" hidden><strong>Metal, of any format.<\/strong> Cryptosteel states 1400C and 2500F for both the Capsule and the Seed range. In Lopp&#8217;s Round III the capsule came through roughly 2000F followed by water submersion with the words readable, and muriatic acid did not get inside. Paper does not survive either test.<\/div>\n<div class=\"msq-choice-result\" data-for=\"crush\" hidden><strong>A one piece stamped or punched plate has an advantage here.<\/strong> Under a 20 ton press the capsule tube bent and the cap could no longer be unscrewed, because the end rod is permanently fixed. The tiles were undamaged. A flat plate has no cap to jam, though it is also harder to hide.<\/div>\n<div class=\"msq-choice-result\" data-for=\"found\" hidden><strong>No medium helps.<\/strong> Steel, paper and plastic all hold the words in plain sight. The documented answers are a BIP39 passphrase stored separately from the backup, or SLIP39 splitting so that one found object is not enough. Choose the medium for the weather, not for secrecy.<\/div>\n<div class=\"msq-choice-result\" data-for=\"parts\" hidden><strong>A stamped plate or a punched card removes the failure mode.<\/strong> Tile systems have loose letters, separators and pins; the recurring worry in public forum threads is misspelling a word or spilling the tiles. The vendor&#8217;s separators and end stop are designed against exactly that, which is a claim you can test on the kitchen table before it matters.<\/div>\n<div class=\"msq-choice-result\" data-for=\"travel\" hidden><strong>Capsule formats are the compact option.<\/strong> Cryptosteel markets the Seed12 as compact and discreet at a stated 64 characters, enough for a 12 word phrase abbreviated to four letters per word, which needs 48. The Seed24 states 128 characters and covers 24 word phrases, Shamir shares and multisig keys.<\/div>\n<div class=\"msq-choice-result\" data-for=\"capacity\" hidden><strong>Check the character count before you buy.<\/strong> 24 words at four letters each is 96 characters. The Capsule Solo states 123 and the Seed24 states 128, leaving 27 and 32 characters of headroom respectively. The Seed12 states 64, which does not leave room for both a 24 word phrase and anything else.<\/div>\n<p class=\"msq-note\">This restates published specifications and one published test series. It is general information, not advice about what to buy or what to do with your money.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-should-you-do-if-you-already-own-a-capsule-solo\">What should you do if you already own a Capsule Solo?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nothing urgent, and that is the honest answer. A discontinued phone stops getting security updates. A discontinued lump of stainless steel has no firmware, no companion app and no server to switch off, so end of life means only that you cannot buy another and cannot expect support. The vendor states that tiles, separators, cotter pins and seals carry over between the Capsule and the Seed range, so spares are still made.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What is worth doing is the thing most people never do: confirming the backup is readable and correct before they need it. Paper copies deserve the same treatment, and our page on <a href=\"https:\/\/getbitcoin.guide\/articles\/crypto-paper-wallet\/\">where the leftover coins on a paper wallet actually go<\/a> explains why an old sheet may hold less than you think. For where a backup belongs at all, start with <a href=\"https:\/\/getbitcoin.guide\/articles\/what-is-a-cold-wallet\/\">what cold storage actually means<\/a>.<\/p>\n\n\n\n<div class=\"msq-tool msq-check\" data-id=\"capsule-owner-check\" data-verb=\" done\">\n<h3>Checking a capsule you already own<\/h3>\n<p>Seven things worth doing once, on a table, with nothing connected to the internet. None of them involves typing your recovery phrase anywhere.<\/p>\n<label><input type=\"checkbox\">Count the character tiles in the capsule against the number of words your wallet uses: 96 tiles for 24 words at four letters each, 48 for 12 words<\/label>\n<label><input type=\"checkbox\">Read every four letter group against the BIP39 English wordlist on paper or on an offline screen, checking each one matches a real word<\/label>\n<label><input type=\"checkbox\">Confirm nothing is upside down or reversed, which is the transcription error people report most<\/label>\n<label><input type=\"checkbox\">Check the cotter pin is seated and the shell closes and opens fully by hand<\/label>\n<label><input type=\"checkbox\">Take no photograph of the open capsule, at any point, for any reason<\/label>\n<label><input type=\"checkbox\">Confirm the capsule and your only other copy are not in the same building<\/label>\n<label><input type=\"checkbox\">If you use a passphrase, confirm it is recorded somewhere the capsule is not, and that somebody you trust could find it<\/label>\n<p class=\"msq-check-count\"><\/p>\n<p class=\"msq-note\">Ticks are saved on this device only. Never enter a recovery phrase into any website, app or support form that asks for it.<\/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 \">Was the Cryptosteel Capsule Solo discontinued or just out of stock?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Discontinued. As of 27 September 2026 the maker\u2019s own product URL for it redirects to the Seed24 and no Capsule is listed in the shop, while the vendor describes the Seed range as the new version of the Capsule. Individual resellers still show listings, mostly sold out.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Is the Seed24 the direct replacement?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes, by the vendor\u2019s own description: the Seed anatomy originates from the Capsule, and the Seed24 covers the same 24 word use case at a stated 128 characters against the Capsule\u2019s 123. It adds tamper evident seals with serial numbers and a redesigned locking pin.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-3\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Will my existing Capsule tiles work with a Seed24?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>The vendor states that character tiles, separators and cotter pins are compatible across the Seed12, the Seed24 and the original Capsule, and that the PSW-97 seals fit the original Capsule too. Check against the current specification before ordering parts, since compatibility claims can change.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-4\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Can a Capsule Solo hold a 24 word phrase written out in full?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No. A 24 word BIP39 phrase written out in full averages 130 characters and can reach 192, against a stated capacity of 123. Cut each word to its first four letters and it needs 96, which fits, and the BIP39 wordlist guarantees those four letters identify the word uniquely.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-5\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Does the fireproof rating mean the capsule is indestructible?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No. In Jameson Lopp\u2019s Round III testing it survived roughly 2000F followed by water and a muriatic acid bath with the words readable, but a 20 ton press bent the tube so the cap could not be unscrewed. The data survived; reaching it would have meant cutting the tube open.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-6\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Is a second hand Capsule Solo safe to buy?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>The steel itself cannot be tampered with in a way that leaks anything, since it is a passive container. The risks are practical: missing tiles, a jammed or previously bent shell, no seals, and no warranty or support from a discontinued line. Count the tiles against the phrase length you intend to store.<\/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>The Cryptosteel Capsule Solo is discontinued and its product page now redirects to the Seed24. What changed, and whether 123 characters is enough for a seed phrase.<\/p>\n","protected":false},"author":1,"featured_media":342,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","rank_math_title":"Cryptosteel Capsule Solo: Retired, and What Replaces It","rank_math_description":"The Cryptosteel Capsule Solo is discontinued, replaced by the Seed24. What changed, and whether 123 characters really holds a 24 word seed phrase.","rank_math_focus_keyword":"cryptosteel capsule solo","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-345","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\/345","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=345"}],"version-history":[{"count":5,"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/posts\/345\/revisions"}],"predecessor-version":[{"id":692,"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/posts\/345\/revisions\/692"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/media\/342"}],"wp:attachment":[{"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/media?parent=345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/categories?post=345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/getbitcoin.guide\/articles\/wp-json\/wp\/v2\/tags?post=345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}