{"id":1520,"date":"2026-09-26T06:16:16","date_gmt":"2026-09-26T06:16:16","guid":{"rendered":"https:\/\/neverlosebitcoin.com\/?page_id=1520"},"modified":"2026-09-26T09:35:02","modified_gmt":"2026-09-26T09:35:02","slug":"compatibility","status":"publish","type":"page","link":"https:\/\/neverlosebitcoin.com\/fr\/compatibility\/","title":{"rendered":"V\u00e9rificateur de compatibilit\u00e9"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">What this tool does<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pick the hardware devices you own or plan to buy, pick a coordinator app (or check all four), and the Compatibility Checker reports the status of every device and coordinator pair. The answers come from a versioned dataset of 21 device and coordinator records: six hardware devices, four coordinator apps, each pair with a plain-language status, the workflow it was reported with, its limits, and a link to the source. If you are still choosing hardware, see our guide to the <a href=\"https:\/\/neverlosebitcoin.com\/best-bitcoin-wallet\/\">best bitcoin wallet<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The checker is not a wallet. It never touches keys, and it never asks for anything sensitive: no seed phrases, no private keys, no xpubs, no addresses, no balances, no serial numbers, no identity. Your selection stays in your browser and is encoded in the page address, so results are shareable without creating indexable pages: the URL fragment is ignored by search engines.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The statuses, in plain language<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Confirmed:<\/strong> tested hands-on for the named versions and documented workflow. The seed dataset has zero Confirmed records, on purpose: nothing gets the Confirmed label without a real NeverLoseBitcoin test.<\/li>\n\n\n\n<li><strong>Conditional:<\/strong> works, but only with a named transport, firmware, setting, or limitation. Read the constraint before you buy.<\/li>\n\n\n\n<li><strong>Unverified:<\/strong> a vendor or community source exists, but NeverLoseBitcoin has not tested it hands-on. Treat the first setup as a trial run with small amounts.<\/li>\n\n\n\n<li><strong>No record:<\/strong> the dataset has no entry for the pair, so the checker cannot vouch for it.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What it does not do<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The checker does not recommend a setup. Answering six short questions to get a full recommended setup, threshold, recovery model, and honest tradeoffs is the <a href=\"\/wizard\/\">Multisig Wizard<\/a>&#8216;s job. The checker also does not test hardware itself; it reports what the dataset records. The full labeling methodology lives on the wizard page: <a href=\"\/wizard\/#methodology\">how the statuses are assigned<\/a>.<\/p>\n\n\n\n<div id=\"nlb-compat\"><p>Loading the compatibility checker\u2026 If it does not appear, the script may be blocked; the explanatory content above and below still applies.<\/p><\/div>\n<script>window.NLB_COMPAT_DATASET={\"combinationTests\":[{\"constraints\":\"Coldcard docs list Sparrow on Windows, macOS, Linux with BBQr on Coldcard Q. Sparrow docs require current Coldcard firmware for USB. No NeverLoseBitcoin hands-on test.\",\"coordinator_id\":\"sparrow\",\"device_id\":\"coldcard\",\"evidence_url\":\"https:\/\/coldcard.com\/docs\/compatible-wallets\/\",\"id\":\"coldcard-sparrow\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"USB connection, or air-gapped SD card \/ QR (BBQr on Coldcard Q), multisig PSBT signing\"},{\"constraints\":\"BBQr flows need Coldcard Q with recent firmware. Nunchuk mobile and desktop signer lists differ.\",\"coordinator_id\":\"nunchuk\",\"device_id\":\"coldcard\",\"evidence_url\":\"https:\/\/coldcard.com\/docs\/compatible-wallets\/\",\"id\":\"coldcard-nunchuk\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"USB, microSD, or QR (BBQr on Coldcard Q); Nunchuk supports single-sig and multisig\"},{\"constraints\":\"Desktop platforms per Coldcard docs (Windows, macOS, Linux) plus Android. No NeverLoseBitcoin hands-on test.\",\"coordinator_id\":\"electrum\",\"device_id\":\"coldcard\",\"evidence_url\":\"https:\/\/coldcard.com\/docs\/compatible-wallets\/\",\"id\":\"coldcard-electrum\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"USB or SD-card PSBT multisig\"},{\"constraints\":\"BlueWallet is mobile-first; the documented path is file-based multisig import, not USB signing. BlueWallet documents multisig derivation paths m\/48'\/0'\/0'\/2' (native segwit), m\/48'\/0'\/0'\/1' (wrapped segwit), m\/45' (legacy).\",\"coordinator_id\":\"bluewallet\",\"device_id\":\"coldcard\",\"evidence_url\":\"https:\/\/github.com\/BlueWallet\/BlueWallet\/wiki\/Supported-wallet-types\",\"id\":\"coldcard-bluewallet\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"Multisig vault import via Coldcard text file or cosigner xpubs\"},{\"constraints\":\"Sparrow documents Jade as a connected USB wallet; Jade also supports QR air-gapped flows. No NeverLoseBitcoin hands-on test.\",\"coordinator_id\":\"sparrow\",\"device_id\":\"jade\",\"evidence_url\":\"https:\/\/sparrowwallet.com\/docs\/connected-wallet.html\",\"id\":\"jade-sparrow\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"USB connection or QR air-gapped PSBT multisig\"},{\"constraints\":\"Listed as compatible by Blockstream's official store listing and community multisig guides; no vendor step-by-step doc found.\",\"coordinator_id\":\"nunchuk\",\"device_id\":\"jade\",\"evidence_url\":\"https:\/\/blockdyor.com\/diy-bitcoin-multisig-wallet-nunchuk\/\",\"id\":\"jade-nunchuk\",\"status\":\"Unverified\",\"tested_date\":null,\"tester\":null,\"workflow\":\"QR or USB multisig signing\"},{\"constraints\":\"Compatibility reported in Jade Plus launch coverage; no vendor step-by-step doc found.\",\"coordinator_id\":\"bluewallet\",\"device_id\":\"jade\",\"evidence_url\":\"https:\/\/holder.io\/news\/blockstream-launches-jade-plus-wallet-bitcoin-anniversary\/\",\"id\":\"jade-bluewallet\",\"status\":\"Unverified\",\"tested_date\":null,\"tester\":null,\"workflow\":\"QR-based wallet pairing and PSBT signing\"},{\"constraints\":\"Third-party review lists Electrum among well-tested Jade companions; no vendor doc found.\",\"coordinator_id\":\"electrum\",\"device_id\":\"jade\",\"evidence_url\":\"https:\/\/cryptonews.com\/reviews\/blockstream-jade-review\/\",\"id\":\"jade-electrum\",\"status\":\"Unverified\",\"tested_date\":null,\"tester\":null,\"workflow\":\"USB or QR multisig signing\"},{\"constraints\":\"Sparrow documents BitBox02 as a supported USB wallet. USB-only device; needs a computer.\",\"coordinator_id\":\"sparrow\",\"device_id\":\"bitbox02\",\"evidence_url\":\"https:\/\/sparrowwallet.com\/docs\/connected-wallet.html\",\"id\":\"bitbox02-sparrow\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"USB connection, multisig PSBT signing\"},{\"constraints\":\"Community reviews document Electrum support; Bitcoin Wiki lists BitBox as supported by Electrum and HWI-based wallets.\",\"coordinator_id\":\"electrum\",\"device_id\":\"bitbox02\",\"evidence_url\":\"https:\/\/blockdyor.com\/bitbox02-review\/\",\"id\":\"bitbox02-electrum\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"USB multisig via Electrum hardware wallet support\"},{\"constraints\":\"Community multisig guide says Nunchuk desktop adds BitBox support; the mobile signer list is narrower.\",\"coordinator_id\":\"nunchuk\",\"device_id\":\"bitbox02\",\"evidence_url\":\"https:\/\/blockdyor.com\/diy-bitcoin-multisig-wallet-nunchuk\/\",\"id\":\"bitbox02-nunchuk\",\"status\":\"Unverified\",\"tested_date\":null,\"tester\":null,\"workflow\":\"USB multisig signing on Nunchuk desktop\"},{\"constraints\":\"Sparrow documents Trezor as a supported USB wallet. USB-only; needs a computer.\",\"coordinator_id\":\"sparrow\",\"device_id\":\"trezor-safe-3\",\"evidence_url\":\"https:\/\/sparrowwallet.com\/docs\/connected-wallet.html\",\"id\":\"trezor-safe-3-sparrow\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"USB connection, multisig PSBT signing\"},{\"constraints\":\"Listed among Safe 3 third-party apps; Electrum has long-standing Trezor support.\",\"coordinator_id\":\"electrum\",\"device_id\":\"trezor-safe-3\",\"evidence_url\":\"https:\/\/thebitcoinhole.com\/hardware-wallets\/secux-neo-x-vs-trezor-safe-3-btconly\",\"id\":\"trezor-safe-3-electrum\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"USB multisig signing\"},{\"constraints\":\"Community multisig guide says Nunchuk desktop supports Trezor; third-party comparison lists Nunchuk as a Safe 3 app.\",\"coordinator_id\":\"nunchuk\",\"device_id\":\"trezor-safe-3\",\"evidence_url\":\"https:\/\/blockdyor.com\/diy-bitcoin-multisig-wallet-nunchuk\/\",\"id\":\"trezor-safe-3-nunchuk\",\"status\":\"Unverified\",\"tested_date\":null,\"tester\":null,\"workflow\":\"USB multisig signing on Nunchuk desktop\"},{\"constraints\":\"Foundation documents the Sparrow QR multisig export flow. No USB data: QR or microSD only.\",\"coordinator_id\":\"sparrow\",\"device_id\":\"passport\",\"evidence_url\":\"https:\/\/foundation.xyz\/2022\/10\/casa-sparrow\/\",\"id\":\"passport-sparrow\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"Air-gapped QR multisig: export multisig config QR from Sparrow, sign PSBTs via camera\"},{\"constraints\":\"Foundation's Vault Concierge builds 2-of-3 multisig vaults in Nunchuk with Passport signers. QR\/microSD only.\",\"coordinator_id\":\"nunchuk\",\"device_id\":\"passport\",\"evidence_url\":\"https:\/\/foundation.xyz\/2025\/03\/passport-is-now-passport-core\/\",\"id\":\"passport-nunchuk\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"Air-gapped QR multisig vault\"},{\"constraints\":\"Foundation's Vault Concierge builds 2-of-3 multisig vaults in BlueWallet with Passport signers. QR\/microSD only.\",\"coordinator_id\":\"bluewallet\",\"device_id\":\"passport\",\"evidence_url\":\"https:\/\/foundation.xyz\/2025\/03\/passport-is-now-passport-core\/\",\"id\":\"passport-bluewallet\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"Air-gapped QR multisig vault\"},{\"constraints\":\"Third-party review lists Electrum among Passport-compatible PSBT wallets; no vendor step-by-step doc found.\",\"coordinator_id\":\"electrum\",\"device_id\":\"passport\",\"evidence_url\":\"https:\/\/blockdyor.com\/foundation-passport-review\/\",\"id\":\"passport-electrum\",\"status\":\"Unverified\",\"tested_date\":null,\"tester\":null,\"workflow\":\"PSBT multisig via QR or microSD\"},{\"constraints\":\"SeedSigner is stateless: it rebuilds from seed every boot. Community guides document the QR multisig flow.\",\"coordinator_id\":\"sparrow\",\"device_id\":\"seedsigner\",\"evidence_url\":\"https:\/\/bitcoinmagazine.com\/guides\/how-to-use-the-seedsigner-bitcoin-wallet\",\"id\":\"seedsigner-sparrow\",\"status\":\"Conditional\",\"tested_date\":null,\"tester\":null,\"workflow\":\"Air-gapped QR: import multisig XPUBs into Sparrow, sign PSBTs via animated QR\"},{\"constraints\":\"Community multisig guide lists SeedSigner on Nunchuk mobile; DIY build, verify parts and software.\",\"coordinator_id\":\"nunchuk\",\"device_id\":\"seedsigner\",\"evidence_url\":\"https:\/\/blockdyor.com\/diy-bitcoin-multisig-wallet-nunchuk\/\",\"id\":\"seedsigner-nunchuk\",\"status\":\"Unverified\",\"tested_date\":null,\"tester\":null,\"workflow\":\"QR-based multisig signing\"},{\"constraints\":\"Community sources list BlueWallet among SeedSigner-compatible coordinators; DIY build, verify parts and software.\",\"coordinator_id\":\"bluewallet\",\"device_id\":\"seedsigner\",\"evidence_url\":\"https:\/\/bitcoinmagazine.com\/business\/building-your-own-hardware-wallet-seedsigner-and-satochip-combo-is-nuts\",\"id\":\"seedsigner-bluewallet\",\"status\":\"Unverified\",\"tested_date\":null,\"tester\":null,\"workflow\":\"QR-based multisig XPUB and PSBT exchange\"}],\"coordinators\":[{\"connection_methods\":[\"usb\",\"qr\",\"microsd\"],\"descriptor_format\":\"output descriptors\",\"id\":\"sparrow\",\"name\":\"Sparrow\",\"notes\":\"Desktop power tool with deep multisig and PSBT support. Best for users comfortable on a computer.\",\"platforms\":[\"Windows\",\"macOS\",\"Linux\"],\"psbt\":true,\"skill_level\":\"comfortable\",\"url\":\"https:\/\/sparrowwallet.com\/docs\/connected-wallet.html\"},{\"connection_methods\":[\"usb\",\"qr\",\"microsd\"],\"descriptor_format\":\"electrum multisig wallet files\",\"id\":\"electrum\",\"name\":\"Electrum\",\"notes\":\"Veteran desktop wallet. Powerful multisig support, dated interface, expects the user to know what they are doing.\",\"platforms\":[\"Windows\",\"macOS\",\"Linux\",\"Android\"],\"psbt\":true,\"skill_level\":\"advanced\"},{\"connection_methods\":[\"usb\",\"qr\",\"bluetooth\",\"nfc\"],\"descriptor_format\":\"BSMS and output descriptors\",\"id\":\"nunchuk\",\"name\":\"Nunchuk\",\"notes\":\"Mobile-first with guided multisig setup. Desktop version supports additional USB signers.\",\"platforms\":[\"iOS\",\"Android\",\"Windows\",\"macOS\",\"Linux\"],\"psbt\":true,\"skill_level\":\"beginner\"},{\"connection_methods\":[\"qr\",\"file-import\"],\"descriptor_format\":\"multisig vault files\",\"id\":\"bluewallet\",\"name\":\"BlueWallet\",\"notes\":\"Mobile-first. Multisig works through import (for example Coldcard text file or cosigner xpubs). A vault with no cosigner seeds is watch-only.\",\"platforms\":[\"iOS\",\"Android\",\"macOS\"],\"psbt\":true,\"skill_level\":\"beginner\"}],\"devices\":[{\"airgapped_option\":true,\"id\":\"coldcard\",\"multisig\":true,\"name\":\"Coldcard\",\"notes\":\"Bitcoin-only. Mk4 uses USB and microSD; Coldcard Q adds QR (BBQr). A common reference device for multisig.\",\"price_tier\":\"mid\",\"transports\":[\"usb\",\"microsd\",\"qr\"],\"url\":\"https:\/\/coldcard.com\/docs\/compatible-wallets\/\",\"vendor\":\"Coinkite\"},{\"airgapped_option\":true,\"id\":\"jade\",\"multisig\":true,\"name\":\"Blockstream Jade\",\"notes\":\"Budget open-source option with camera for QR air-gapped signing. Also has Bluetooth; prefer USB or QR for multisig setups.\",\"price_tier\":\"low\",\"transports\":[\"usb\",\"qr\",\"bluetooth\"],\"url\":\"https:\/\/blockstream.com\/jade\",\"vendor\":\"Blockstream\"},{\"airgapped_option\":false,\"id\":\"bitbox02\",\"multisig\":true,\"name\":\"BitBox02\",\"notes\":\"USB-only. Bitcoin-only edition recommended for multisig. Backs up to microSD card.\",\"price_tier\":\"mid\",\"transports\":[\"usb\"],\"url\":\"https:\/\/shiftcrypto.ch\/bitbox02\",\"vendor\":\"Shift Crypto\"},{\"airgapped_option\":false,\"id\":\"trezor-safe-3\",\"multisig\":true,\"name\":\"Trezor Safe 3\",\"notes\":\"USB-only. Bitcoin-only firmware available. Supports Shamir (SLIP-39) backup shares on device.\",\"price_tier\":\"low\",\"transports\":[\"usb\"],\"vendor\":\"Trezor\"},{\"airgapped_option\":true,\"id\":\"passport\",\"multisig\":true,\"name\":\"Foundation Passport\",\"notes\":\"Fully air-gapped: no USB data, camera and microSD only. Strong multisig UX.\",\"price_tier\":\"high\",\"transports\":[\"qr\",\"microsd\"],\"url\":\"https:\/\/foundation.xyz\",\"vendor\":\"Foundation Devices\"},{\"airgapped_option\":true,\"id\":\"seedsigner\",\"multisig\":true,\"name\":\"SeedSigner\",\"notes\":\"DIY build, stateless: it rebuilds from seed at every boot. Verify parts and software from the official project before use.\",\"price_tier\":\"low\",\"transports\":[\"qr\"],\"vendor\":\"SeedSigner (DIY open source)\"}],\"guides\":[{\"coordinator_id\":\"sparrow\",\"id\":\"setup-sparrow\",\"kind\":\"setup\",\"title\":\"Sparrow multisig setup guide\",\"url\":\"\/guides\/sparrow-multisig-setup\/\"},{\"coordinator_id\":\"nunchuk\",\"id\":\"setup-nunchuk\",\"kind\":\"setup\",\"title\":\"Nunchuk multisig setup guide\",\"url\":\"\/guides\/nunchuk-multisig-setup\/\"},{\"coordinator_id\":\"electrum\",\"id\":\"setup-electrum\",\"kind\":\"setup\",\"title\":\"Electrum multisig setup guide\",\"url\":\"\/guides\/electrum-multisig-setup\/\"},{\"coordinator_id\":\"bluewallet\",\"id\":\"setup-bluewallet\",\"kind\":\"setup\",\"title\":\"BlueWallet multisig setup guide\",\"url\":\"\/guides\/bluewallet-multisig-setup\/\"},{\"id\":\"recovery-basics\",\"kind\":\"recovery\",\"title\":\"Multisig recovery basics: descriptors, backups, and test restores\",\"url\":\"\/guides\/multisig-recovery-basics\/\"},{\"id\":\"compare-hardware\",\"kind\":\"comparison\",\"title\":\"Hardware wallet comparison for multisig\",\"url\":\"\/compare\/hardware-wallets\/\"},{\"id\":\"methodology\",\"kind\":\"methodology\",\"title\":\"How the wizard picks a setup (methodology)\",\"url\":\"\/wizard\/methodology\/\"},{\"id\":\"checklist\",\"kind\":\"commercial\",\"title\":\"Multisig setup checklist (printable template)\",\"url\":\"\/shop\/multisig-setup-checklist\/\"},{\"id\":\"consulting\",\"kind\":\"commercial\",\"title\":\"1-on-1 multisig setup review\",\"url\":\"\/consulting\/\"}],\"meta\":{\"honesty_notes\":[\"No Confirmed records in this seed dataset. NeverLoseBitcoin has not yet completed its own hands-on test of any pair.\",\"Conditional records rest on official vendor or coordinator documentation of the named workflow.\",\"Unverified records rest on community or editorial sources only.\",\"tested_date and tester are null everywhere: no dates or names are invented.\",\"Guide URLs are site-relative placeholders. Map them to real published guides before launch.\"],\"last_verified\":\"2026-09-25\",\"publisher\":\"NeverLoseBitcoin\",\"status_definitions\":{\"Conditional\":\"Works only with a named transport, firmware, setting, or limitation.\",\"Confirmed\":\"Tested for the named versions and documented workflow.\",\"Incompatible\":\"A documented blocker exists for the named versions or workflow.\",\"Unverified\":\"Vendor or community sources exist, but NeverLoseBitcoin has not completed its own test.\"},\"version\":\"1.0.0\"},\"useCaseRules\":[{\"amount_band\":\"any\",\"beginner_threshold\":null,\"goal\":\"learning\",\"rationale\":\"Learning setups should be cheap, forgiving, and easy to rebuild. 2-of-3 teaches quorum thinking while surviving one lost signer.\",\"signer_count\":3,\"threshold\":\"2-of-3\"},{\"amount_band\":\"under-10k\",\"beginner_threshold\":null,\"goal\":\"savings\",\"rationale\":\"For smaller savings, 2-of-3 removes the single point of failure without adding meaningful complexity.\",\"signer_count\":3,\"threshold\":\"2-of-3\"},{\"amount_band\":\"10k-100k\",\"beginner_threshold\":null,\"goal\":\"savings\",\"rationale\":\"2-of-3 with geographically separated backups is the standard serious-savings setup.\",\"signer_count\":3,\"threshold\":\"2-of-3\"},{\"amount_band\":\"over-100k\",\"beginner_threshold\":null,\"goal\":\"savings\",\"rationale\":\"At this size, redundancy and backup discipline matter more than a higher threshold. 2-of-3 keeps recovery realistic.\",\"signer_count\":3,\"threshold\":\"2-of-3\"},{\"amount_band\":\"under-10k\",\"beginner_threshold\":null,\"goal\":\"inheritance\",\"rationale\":\"Inheritance setups must be explainable to non-technical heirs. 2-of-3 with written instructions beats clever thresholds.\",\"signer_count\":3,\"threshold\":\"2-of-3\"},{\"amount_band\":\"10k-100k\",\"beginner_threshold\":null,\"goal\":\"inheritance\",\"rationale\":\"2-of-3 keeps the heir story simple: any two of three locations unlocks the funds, with clear written instructions.\",\"signer_count\":3,\"threshold\":\"2-of-3\"},{\"amount_band\":\"over-100k\",\"beginner_threshold\":\"2-of-3\",\"goal\":\"inheritance\",\"rationale\":\"Larger inheritance benefits from 3-of-5: it survives two lost signers. Beginners still get 2-of-3, because a setup heirs cannot operate is worse than a simpler one.\",\"signer_count\":5,\"threshold\":\"3-of-5\"},{\"amount_band\":\"under-10k\",\"beginner_threshold\":null,\"goal\":\"treasury\",\"rationale\":\"Small treasuries need the same single-key-failure protection as savings, with keys held by different people or locations.\",\"signer_count\":3,\"threshold\":\"2-of-3\"},{\"amount_band\":\"10k-100k\",\"beginner_threshold\":null,\"goal\":\"treasury\",\"rationale\":\"2-of-3 across people or sites gives a business continuity story without operational overhead.\",\"signer_count\":3,\"threshold\":\"2-of-3\"},{\"amount_band\":\"over-100k\",\"beginner_threshold\":\"2-of-3\",\"goal\":\"treasury\",\"rationale\":\"Larger treasuries justify 3-of-5: two signers can be lost or unavailable without locking funds. Beginners still get 2-of-3 to keep operations realistic.\",\"signer_count\":5,\"threshold\":\"3-of-5\"}]};<\/script>\n<script>\n\/* NeverLoseBitcoin multisig compatibility checker (vanilla JS, no dependencies).\n *\n * Usage: include on \/compatibility\/ only, with a container <div id=\"nlb-compat\"><\/div>.\n * Dataset: window.NLB_COMPAT_DATASET takes precedence; otherwise the script\n * fetches \"dataset.json\" relative to the page. Selections stay categorical and\n * local to the browser. Nothing sensitive is ever requested or stored.\n *\n * NOTE: this inline script must not contain a literal double-ampersand\n * operator. The site's render pipeline has escaped it to an HTML entity on\n * output in the past, which breaks the script. Use nested if statements.\n *\/\n(function () {\n  'use strict';\n\n  var ROOT_ID = 'nlb-compat';\n  var FRAG_PREFIX = 'compat=';\n\n  \/* ------------------------------------------------------------------ *\/\n  \/* Small DOM helpers                                                   *\/\n  \/* ------------------------------------------------------------------ *\/\n\n  function el(tag, attrs, text) {\n    var node = document.createElement(tag);\n    if (attrs) {\n      for (var k in attrs) {\n        if (Object.prototype.hasOwnProperty.call(attrs, k)) {\n          if (k === 'class') node.className = attrs[k];\n          else node.setAttribute(k, attrs[k]);\n        }\n      }\n    }\n    if (text !== undefined) {\n      if (text !== null) node.textContent = text;\n    }\n    return node;\n  }\n\n  function on(node, evt, fn) {\n    if (node.addEventListener) node.addEventListener(evt, fn, false);\n  }\n\n  \/* ------------------------------------------------------------------ *\/\n  \/* Dataset                                                             *\/\n  \/* ------------------------------------------------------------------ *\/\n\n  function loadDataset() {\n    return new Promise(function (resolve, reject) {\n      if (window.NLB_COMPAT_DATASET) {\n        resolve(window.NLB_COMPAT_DATASET);\n        return;\n      }\n      fetch('dataset.json', { credentials: 'same-origin' }).then(function (r) {\n        if (!r.ok) {\n          reject(new Error('http ' + r.status));\n          return;\n        }\n        return r.json();\n      }).then(function (d) {\n        resolve(d);\n      }).catch(reject);\n    });\n  }\n\n  function deviceById(ds, id) {\n    var list = ds.devices || [];\n    for (var i = 0; i < list.length; i++) {\n      if (list[i].id === id) return list[i];\n    }\n    return null;\n  }\n\n  function coordById(ds, id) {\n    var list = ds.coordinators || [];\n    for (var i = 0; i < list.length; i++) {\n      if (list[i].id === id) return list[i];\n    }\n    return null;\n  }\n\n  function pairRecord(ds, deviceId, coordId) {\n    var tests = ds.combinationTests || [];\n    for (var i = 0; i < tests.length; i++) {\n      var t = tests[i];\n      if (t.device_id === deviceId) {\n        if (t.coordinator_id === coordId) return t;\n      }\n    }\n    return null;\n  }\n\n  function statusDef(ds, status) {\n    var defs = {};\n    if (ds.meta) {\n      if (ds.meta.status_definitions) defs = ds.meta.status_definitions;\n    }\n    if (defs[status]) return defs[status];\n    return '';\n  }\n\n  \/* ------------------------------------------------------------------ *\/\n  \/* Fragment encode \/ decode (#compat=coldcard.jade+sparrow)             *\/\n  \/* ------------------------------------------------------------------ *\/\n\n  function readFragment() {\n    var h = window.location.hash || '';\n    if (h.charAt(0) === '#') h = h.slice(1);\n    if (h.indexOf(FRAG_PREFIX) !== 0) return null;\n    var rest = h.slice(FRAG_PREFIX.length);\n    var plus = rest.indexOf('+');\n    if (plus < 0) return null;\n    var devPart = rest.slice(0, plus);\n    var coord = rest.slice(plus + 1);\n    if (!devPart || !coord) return null;\n    return { devices: devPart.split('.'), coordinator: coord };\n  }\n\n  function writeFragment(devices, coordinator) {\n    var h = '#' + FRAG_PREFIX + devices.join('.') + '+' + coordinator;\n    if (window.location.hash !== h) window.location.hash = h;\n  }\n\n  \/* ------------------------------------------------------------------ *\/\n  \/* Verdict                                                             *\/\n  \/* ------------------------------------------------------------------ *\/\n\n  function computeVerdict(pairs) {\n    var hasIncompatible = false;\n    var hasUnknown = false;\n    var hasUnverified = false;\n    var hasConditional = false;\n    var hasConfirmed = false;\n    for (var i = 0; i < pairs.length; i++) {\n      var st = pairs[i].status;\n      if (st === 'Incompatible') hasIncompatible = true;\n      if (st === 'Unknown') hasUnknown = true;\n      if (st === 'Unverified') hasUnverified = true;\n      if (st === 'Conditional') hasConditional = true;\n      if (st === 'Confirmed') hasConfirmed = true;\n    }\n    if (hasIncompatible) {\n      return {\n        title: 'Not compatible',\n        text: 'At least one selected pair has a documented blocker. The combination will not work as selected. Change the hardware, the coordinator, or both.'\n      };\n    }\n    if (hasUnknown) {\n      return {\n        title: 'Cannot verify',\n        text: 'At least one selected pair has no record in the dataset, so the checker cannot vouch for it. Every pair that does have a record is shown below with its honest status.'\n      };\n    }\n    if (hasUnverified) {\n      return {\n        title: 'Usable but unverified',\n        text: 'Every recorded pair works on paper, but at least one rests on community or vendor sources only. NeverLoseBitcoin has not tested it hands-on. Treat the first setup as a trial run with small amounts.'\n      };\n    }\n    if (hasConfirmed) {\n      if (hasConditional) {\n        return {\n          title: 'Compatible with conditions',\n          text: 'Every selected pair has a record. Pairs labeled Confirmed were tested hands-on; pairs labeled Conditional work only with the named transport, firmware, setting, or limitation. Read every constraint before you buy.'\n        };\n      }\n      return {\n        title: 'Confirmed compatible',\n        text: 'Every selected pair was tested hands-on for the named workflow and versions. Check the workflow notes below before you buy.'\n      };\n    }\n    return {\n      title: 'Compatible with conditions',\n      text: 'Every selected pair has a record and works with the named transport, firmware, setting, or limitation. Read every constraint before you buy.'\n    };\n  }\n\n  \/* ------------------------------------------------------------------ *\/\n  \/* Rendering                                                           *\/\n  \/* ------------------------------------------------------------------ *\/\n\n  function badgeClass(status) {\n    if (status === 'Confirmed') return 'nlb-cmp-badge is-confirmed';\n    if (status === 'Conditional') return 'nlb-cmp-badge is-conditional';\n    if (status === 'Unverified') return 'nlb-cmp-badge is-unverified';\n    if (status === 'Incompatible') return 'nlb-cmp-badge is-bad';\n    return 'nlb-cmp-badge is-unknown';\n  }\n\n  function renderSelect(root, ds, api) {\n    root.innerHTML = '';\n\n    var intro = el('p', { 'class': 'nlb-cmp-lead' },\n      'Select the hardware devices you own or plan to buy, then a coordinator app. The checker reports the status of every pair.');\n    root.appendChild(intro);\n\n    var devField = el('fieldset', { 'class': 'nlb-cmp-field' });\n    devField.appendChild(el('legend', {}, 'Your devices (select at least one)'));\n    var devices = ds.devices || [];\n    for (var i = 0; i < devices.length; i++) {\n      (function (d) {\n        var label = el('label', { 'class': 'nlb-cmp-check' });\n        var input = el('input', { type: 'checkbox', value: d.id, 'class': 'nlb-cmp-check-input' });\n        var name = el('span', { 'class': 'nlb-cmp-check-name' }, d.name);\n        label.appendChild(input);\n        label.appendChild(name);\n        var desc = d.vendor;\n        if (d.transports) {\n          if (d.transports.length) desc += ' - ' + d.transports.join(', ');\n        }\n        label.appendChild(el('span', { 'class': 'nlb-cmp-check-desc' }, desc));\n        on(input, 'change', function () {\n          if (input.checked) label.classList.add('is-selected');\n          else label.classList.remove('is-selected');\n          api.refreshButton();\n        });\n        devField.appendChild(label);\n      })(devices[i]);\n    }\n    root.appendChild(devField);\n\n    var coordField = el('fieldset', { 'class': 'nlb-cmp-field' });\n    coordField.appendChild(el('legend', {}, 'Coordinator app'));\n    var coords = ds.coordinators || [];\n\n    (function () {\n      var label = el('label', { 'class': 'nlb-cmp-check is-selected' });\n      var input = el('input', { type: 'radio', name: 'nlb-cmp-coord', value: 'all', 'class': 'nlb-cmp-check-input' });\n      input.checked = true;\n      label.appendChild(input);\n      label.appendChild(el('span', { 'class': 'nlb-cmp-check-name' }, 'All coordinators'));\n      label.appendChild(el('span', { 'class': 'nlb-cmp-check-desc' }, 'Check every coordinator in the dataset.'));\n      on(input, 'change', function () {\n        var all = coordField.querySelectorAll('.nlb-cmp-check');\n        for (var j = 0; j < all.length; j++) all[j].classList.remove('is-selected');\n        label.classList.add('is-selected');\n      });\n      coordField.appendChild(label);\n    })();\n\n    for (var c = 0; c < coords.length; c++) {\n      (function (co) {\n        var label = el('label', { 'class': 'nlb-cmp-check' });\n        var input = el('input', { type: 'radio', name: 'nlb-cmp-coord', value: co.id, 'class': 'nlb-cmp-check-input' });\n        label.appendChild(input);\n        label.appendChild(el('span', { 'class': 'nlb-cmp-check-name' }, co.name));\n        var desc = '';\n        if (co.platforms) {\n          if (co.platforms.length) desc = co.platforms.join(', ');\n        }\n        label.appendChild(el('span', { 'class': 'nlb-cmp-check-desc' }, desc));\n        on(input, 'change', function () {\n          var all = coordField.querySelectorAll('.nlb-cmp-check');\n          for (var j = 0; j < all.length; j++) all[j].classList.remove('is-selected');\n          label.classList.add('is-selected');\n        });\n        coordField.appendChild(label);\n      })(coords[c]);\n    }\n    root.appendChild(coordField);\n\n    var btn = el('button', { type: 'button', 'class': 'nlb-cmp-btn is-primary' }, 'Check compatibility');\n    var hint = el('p', { 'class': 'nlb-cmp-hint' }, 'Select at least one device to check.');\n    on(btn, 'click', function () {\n      var sel = api.selectedDevices();\n      if (!sel.length) return;\n      api.showResults(sel, api.selectedCoordinator());\n    });\n    root.appendChild(btn);\n    root.appendChild(hint);\n\n    api.refreshButton = function () {\n      var sel = api.selectedDevices();\n      if (sel.length) {\n        btn.removeAttribute('disabled');\n        hint.style.display = 'none';\n      } else {\n        btn.setAttribute('disabled', 'disabled');\n        hint.style.display = '';\n      }\n    };\n    api.refreshButton();\n  }\n\n  function renderResults(root, ds, api, deviceIds, coordId) {\n    root.innerHTML = '';\n\n    var coords = [];\n    if (coordId === 'all') {\n      var all = ds.coordinators || [];\n      for (var i = 0; i < all.length; i++) coords.push(all[i].id);\n    } else {\n      coords.push(coordId);\n    }\n\n    var pairs = [];\n    for (var d = 0; d < deviceIds.length; d++) {\n      var dev = deviceById(ds, deviceIds[d]);\n      if (!dev) continue;\n      for (var k = 0; k < coords.length; k++) {\n        var co = coordById(ds, coords[k]);\n        if (!co) continue;\n        var rec = pairRecord(ds, dev.id, co.id);\n        pairs.push({ device: dev, coord: co, record: rec, status: rec ? rec.status : 'Unknown' });\n      }\n    }\n\n    var verdict = computeVerdict(pairs);\n    var banner = el('div', { 'class': 'nlb-cmp-verdict', role: 'status' });\n    banner.appendChild(el('strong', { 'class': 'nlb-cmp-verdict-title' }, verdict.title));\n    banner.appendChild(el('p', {}, verdict.text));\n    root.appendChild(banner);\n\n    var meta = ds.meta || {};\n    if (meta.version || meta.last_verified) {\n      var note = 'Dataset version ' + (meta.version || '?') + '. Last verified ' + (meta.last_verified || '?') + '.';\n      root.appendChild(el('p', { 'class': 'nlb-cmp-dataset-note' }, note));\n    }\n\n    var grid = el('div', { 'class': 'nlb-cmp-grid' });\n    for (var p = 0; p < pairs.length; p++) {\n      (function (pair) {\n        var card = el('div', { 'class': 'nlb-cmp-card' });\n        card.appendChild(el('h3', { 'class': 'nlb-cmp-card-title' }, pair.device.name + ' + ' + pair.coord.name));\n        card.appendChild(el('span', { 'class': badgeClass(pair.status) }, pair.status));\n        if (pair.record) {\n          var def = statusDef(ds, pair.status);\n          if (def) card.appendChild(el('p', { 'class': 'nlb-cmp-def' }, def));\n          card.appendChild(el('p', {}, pair.record.workflow));\n          if (pair.record.constraints) {\n            card.appendChild(el('p', {}, 'Constraint: ' + pair.record.constraints));\n          }\n          if (pair.record.evidence_url) {\n            var link = el('a', { href: pair.record.evidence_url, target: '_blank', rel: 'noopener noreferrer' }, 'Source');\n            var pw = el('p', {});\n            pw.appendChild(link);\n            card.appendChild(pw);\n          }\n        } else {\n          card.appendChild(el('p', {}, 'No record in the dataset for this pair. The checker cannot vouch for it.'));\n        }\n        grid.appendChild(card);\n      })(pairs[p]);\n    }\n    root.appendChild(grid);\n\n    var nav = el('div', { 'class': 'nlb-cmp-nav' });\n    var back = el('button', { type: 'button', 'class': 'nlb-cmp-btn' }, 'Check another combination');\n    on(back, 'click', function () {\n      if (window.history) {\n        if (window.history.pushState) {\n          window.history.pushState(null, '', window.location.pathname + window.location.search);\n        }\n      }\n      api.showSelect();\n    });\n    var print = el('button', { type: 'button', 'class': 'nlb-cmp-btn' }, 'Print results');\n    on(print, 'click', function () { window.print(); });\n    nav.appendChild(back);\n    nav.appendChild(print);\n    root.appendChild(nav);\n\n    writeFragment(deviceIds, coordId);\n    if (root.querySelector) {\n      var h = root.querySelector('h3, .nlb-cmp-verdict');\n      if (h) {\n        if (h.setAttribute) h.setAttribute('tabindex', '-1');\n        if (h.focus) h.focus({ preventScroll: true });\n      }\n    }\n  }\n\n  \/* ------------------------------------------------------------------ *\/\n  \/* Boot                                                                *\/\n  \/* ------------------------------------------------------------------ *\/\n\n  function injectStyles() {\n    if (document.getElementById('nlb-cmp-styles')) return;\n    var css = [\n      '#' + ROOT_ID + ' .nlb-cmp-field{border:0;padding:0;margin:1.25rem 0;}',\n      '#' + ROOT_ID + ' .nlb-cmp-field legend{font-weight:bold;margin-bottom:.5rem;}',\n      '#' + ROOT_ID + ' .nlb-cmp-check{display:block;border:2px solid;padding:.7rem 1rem;border-radius:7px;cursor:pointer;margin:.5rem 0;}',\n      '#' + ROOT_ID + ' .nlb-cmp-check.is-selected{border-color:var(--global-palette1,#f0911f);}',\n      '#' + ROOT_ID + ' .nlb-cmp-check-input{margin-right:.6rem;}',\n      '#' + ROOT_ID + ' .nlb-cmp-check-name{font-weight:bold;}',\n      '#' + ROOT_ID + ' .nlb-cmp-check-desc{display:block;font-size:.9em;opacity:.8;}',\n      '#' + ROOT_ID + ' .nlb-cmp-btn{display:inline-block;border-radius:12px;padding:.7rem 1.4rem;font-weight:bold;cursor:pointer;border:2px solid currentColor;background:transparent;color:inherit;margin:.5rem .5rem .5rem 0;}',\n      '#' + ROOT_ID + ' .nlb-cmp-btn.is-primary{background:var(--global-palette3,#141414);color:var(--global-palette6,#ffffff);border-color:var(--global-palette3,#141414);}',\n      '#' + ROOT_ID + ' .nlb-cmp-btn[disabled]{opacity:.45;cursor:not-allowed;}',\n      '#' + ROOT_ID + ' .nlb-cmp-hint{font-size:.9em;opacity:.8;}',\n      '#' + ROOT_ID + ' .nlb-cmp-verdict{border:2px solid currentColor;border-radius:7px;padding:1rem 1.25rem;margin:1rem 0;}',\n      '#' + ROOT_ID + ' .nlb-cmp-verdict-title{font-size:1.15em;}',\n      '#' + ROOT_ID + ' .nlb-cmp-dataset-note{font-size:.9em;opacity:.8;}',\n      '#' + ROOT_ID + ' .nlb-cmp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem;margin:1rem 0;}',\n      '#' + ROOT_ID + ' .nlb-cmp-card{border:1px solid;padding:1rem 1.1rem;border-radius:7px;}',\n      '#' + ROOT_ID + ' .nlb-cmp-card-title{margin:.1rem 0 .5rem;font-size:1.05em;}',\n      '#' + ROOT_ID + ' .nlb-cmp-badge{display:inline-block;padding:.15rem .65rem;border-radius:12px;font-size:.8em;font-weight:bold;border:1px solid currentColor;margin-bottom:.5rem;}',\n      '#' + ROOT_ID + ' .nlb-cmp-badge.is-unknown{border-style:dashed;font-weight:normal;}',\n      '#' + ROOT_ID + ' .nlb-cmp-def{font-size:.9em;opacity:.85;}',\n      '#' + ROOT_ID + ' .nlb-cmp-nav{margin-top:1rem;}',\n      '#' + ROOT_ID + ' .nlb-cmp-lead{font-size:1.05em;}',\n      '@media print{',\n      'body>*:not(#' + ROOT_ID + '-print-scope){display:none !important;}',\n      '}'\n    ].join('\\n');\n    var style = document.createElement('style');\n    style.id = 'nlb-cmp-styles';\n    style.textContent = css;\n    document.head.appendChild(style);\n  }\n\n  function boot() {\n    var root = document.getElementById(ROOT_ID);\n    if (!root) return;\n    injectStyles();\n    loadDataset().then(function (ds) {\n      var api = {};\n      api.selectedDevices = function () {\n        var out = [];\n        var boxes = root.querySelectorAll('input[type=\"checkbox\"].nlb-cmp-check-input');\n        for (var i = 0; i < boxes.length; i++) {\n          if (boxes[i].checked) out.push(boxes[i].value);\n        }\n        return out;\n      };\n      api.selectedCoordinator = function () {\n        var radios = root.querySelectorAll('input[type=\"radio\"].nlb-cmp-check-input');\n        for (var i = 0; i < radios.length; i++) {\n          if (radios[i].checked) return radios[i].value;\n        }\n        return 'all';\n      };\n      api.showSelect = function () { renderSelect(root, ds, api); };\n      api.showResults = function (deviceIds, coordId) { renderResults(root, ds, api, deviceIds, coordId); };\n\n      var frag = readFragment();\n      if (frag) {\n        var ok = true;\n        for (var i = 0; i < frag.devices.length; i++) {\n          if (!deviceById(ds, frag.devices[i])) ok = false;\n        }\n        if (frag.coordinator !== 'all') {\n          if (!coordById(ds, frag.coordinator)) ok = false;\n        }\n        if (ok) {\n          if (frag.devices.length) {\n            renderResults(root, ds, api, frag.devices, frag.coordinator);\n            return;\n          }\n        }\n      }\n      renderSelect(root, ds, api);\n    }).catch(function () {\n      root.innerHTML = '';\n      root.appendChild(el('p', { role: 'alert' },\n        'The checker could not load its compatibility dataset. Please reload the page. If the problem continues, the dataset file may be missing from the page.'));\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', boot);\n  } else {\n    boot();\n  }\n})();\n\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Is this financial advice?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. It is an educational decision aid. Compatibility information helps you avoid buying hardware that will not work with your coordinator, but it says nothing about which setup fits your threat model. For a recommendation, use the <a href=\"\/wizard\/\">Multisig Wizard<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why are there no Confirmed records?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Because NeverLoseBitcoin has not completed its own hands-on test of any pair yet. A pair is only labeled Confirmed after a real test of the named versions and workflow, with the test documented. Until then, the honest labels are Conditional and Unverified, each with its source linked.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What if my device is not listed?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The checker covers the six hardware devices and four coordinator apps in the seed dataset: Coldcard, Blockstream Jade, BitBox02, Trezor Safe 3, Foundation Passport, SeedSigner, with Sparrow, Electrum, Nunchuk, and BlueWallet. The dataset grows as records are added; every addition ships with a source. You can compare models in our <a href=\"https:\/\/neverlosebitcoin.com\/shop\/\">Hardware Wallet Shop<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I share my check?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Your selection is encoded in the URL fragment (the part after #), so copying the page address shares the exact check. Fragments are not sent to the server and are ignored by search engines.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">I found a wrong record or a better source. What now?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Every pair links its source. If you have a better source or a correction, send it in: a record only changes with a source attached, named device and coordinator versions, and the tested workflow.<\/p>\n\n\n<style>.kt-accordion-id1520_9bb512-d0 .kt-accordion-inner-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:8px;}.kt-accordion-id1520_9bb512-d0 .kt-accordion-panel-inner{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);}.kt-accordion-id1520_9bb512-d0 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{padding-top:var(--global-kb-spacing-xxs, 0.5rem);padding-right:var(--global-kb-spacing-xs, 1rem);padding-bottom:var(--global-kb-spacing-xxs, 0.5rem);padding-left:var(--global-kb-spacing-xs, 1rem);}@media all and (max-width: 767px){.kt-accordion-id1520_9bb512-d0 .kt-accordion-inner-wrap{display:block;}.kt-accordion-id1520_9bb512-d0 .kt-accordion-inner-wrap .kt-accordion-pane:not(:first-child){margin-top:8px;}}<\/style>\n<div class=\"wp-block-kadence-accordion alignnone\"><div class=\"kt-accordion-wrap kt-accordion-id1520_9bb512-d0 kt-accordion-has-5-panes kt-active-pane-0 kt-accordion-block kt-pane-header-alignment-left kt-accodion-icon-style-basic kt-accodion-icon-side-right\" style=\"max-width:none\"><div class=\"kt-accordion-inner-wrap\" data-allow-multiple-open=\"false\" data-start-open=\"0\">\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-1 kt-pane1520_d3d63a-45\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">What does the compatibility checker do?<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<p class=\"wp-block-paragraph\">It shows which hardware wallets work with which coordinator apps, including Sparrow, Electrum, Nunchuk, and BlueWallet, so you can verify a planned setup before you buy or build.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-2 kt-pane1520_fe41fa-a5\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">What do the compatibility labels mean?<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<p class=\"wp-block-paragraph\">Every device and app pair gets an honest label: verified compatible, community-reported, or unknown. Unknown means we have not confirmed it, not that it is broken.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-3 kt-pane1520_20d620-6b\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Why are some pairs marked unknown?<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<p class=\"wp-block-paragraph\">Because neither our own checks nor reliable community reports have confirmed them yet. We would rather show unknown than guess.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-4 kt-pane1520_2dd18a-54\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Does a compatible label guarantee my setup will work?<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<p class=\"wp-block-paragraph\">No. Firmware versions and settings vary. A compatible label means the combination is known to work. Always rehearse with testnet coins or a tiny amount before moving real funds.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-5 kt-pane1520_828eb9-21\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Which devices and apps are covered?<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<p class=\"wp-block-paragraph\">Six hardware wallets and four coordinator apps, 21 combinations in total, including multisig support. The list grows as more combinations get verified.<\/p>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>What this tool does Pick the hardware devices you own or plan to buy, pick a coordinator app (or check all four), and the Compatibility Checker reports the status of every device and coordinator pair. The answers come from a versioned dataset of 21 device and coordinator records: six hardware devices, four coordinator apps, each&#8230;<\/p>","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-1520","page","type-page","status-publish","hentry"],"taxonomy_info":[],"featured_image_src_large":false,"author_info":{"display_name":"WUMBOLOVER","author_link":"https:\/\/neverlosebitcoin.com\/fr\/author\/wumbolover\/"},"comment_info":0,"_links":{"self":[{"href":"https:\/\/neverlosebitcoin.com\/fr\/wp-json\/wp\/v2\/pages\/1520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/neverlosebitcoin.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/neverlosebitcoin.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/neverlosebitcoin.com\/fr\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/neverlosebitcoin.com\/fr\/wp-json\/wp\/v2\/comments?post=1520"}],"version-history":[{"count":3,"href":"https:\/\/neverlosebitcoin.com\/fr\/wp-json\/wp\/v2\/pages\/1520\/revisions"}],"predecessor-version":[{"id":1754,"href":"https:\/\/neverlosebitcoin.com\/fr\/wp-json\/wp\/v2\/pages\/1520\/revisions\/1754"}],"wp:attachment":[{"href":"https:\/\/neverlosebitcoin.com\/fr\/wp-json\/wp\/v2\/media?parent=1520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}