refine cheatsheet
· 1 year ago
6032dbf1beddbf9fd56b393cb399e206889eaf1e
Parent:
2173c0e64
1 file changed +581 −588
- bitcoin.html +581 −588
Diff
--- a/bitcoin.html +++ b/bitcoin.html @@ -1,291 +1,342 @@ <!DOCTYPE html> <html lang="en"> <head> - <meta charset="UTF-8"> + <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Bitcoin Wallet Cheatsheet - Self-Custody, Security & Operations</title> + <title>Bitcoin Wallet Cheatsheet - Cyberpunk Matrix Edition</title> + <meta name="description" content="Comprehensive Bitcoin wallet cheatsheet styled as a cyberpunk matrix. Covers fundamentals, types, security, operations, hardware comparisons (Trezor, Coldcard, Ledger), and advanced concepts for self-custody."> + <link rel="canonical" href="https://cheatsheets.davidveksler.com/bitcoin.html"> - <!-- SEO Meta Description --> - <meta name="description" content="Comprehensive Bitcoin wallet cheatsheet covering fundamentals, types (hot/cold, hardware/software), operations, security practices (seed phrase handling), advanced concepts (multisig, nodes), and hardware comparisons (Trezor, Coldcard, Ledger etc.) for beginner to advanced users."> - - <!-- Canonical URL --> - <link rel="canonical" href="https://cheatsheets.davidveksler.com/bitcoin.html"> <!-- Verified --> - - <!-- Social Media Metadata --> - <!-- Open Graph / Facebook --> - <meta property="og:title" content="Bitcoin Wallet Cheatsheet - Self-Custody, Security & Operations"> - <meta property="og:description" content="Interactive guide to Bitcoin wallets: fundamentals, types, security best practices, advanced operations (multisig, nodes), and hardware comparisons (Trezor, Coldcard, Ledger)."> + <!-- Social Media Metadata (Example - Update image URL when available) --> + <meta property="og:title" content="Bitcoin Wallet Cheatsheet - Cyberpunk Matrix Edition"> + <meta property="og:description" content="Navigate Bitcoin self-custody with this cyberpunk-themed guide to wallets, security, operations, and hardware."> <meta property="og:type" content="article"> <meta property="og:url" content="https://cheatsheets.davidveksler.com/bitcoin.html"> - <meta property="og:image" content="https://cheatsheets.davidveksler.com/images/bitcoin-og.png"> <!-- Placeholder - Create an appropriate image --> - <meta property="og:image:alt" content="Diagram illustrating Bitcoin wallet concepts like hot vs cold storage, hardware wallets, and seed phrases."> - - <!-- Twitter Card --> + <meta property="og:image" content="https://cheatsheets.davidveksler.com/images/bitcoin-cyberpunk-og.png"> <!-- Placeholder OG image --> + <meta property="og:image:alt" content="Cyberpunk styled diagram showing Bitcoin wallet concepts."> <meta name="twitter:card" content="summary_large_image"> - <meta name="twitter:title" content="Bitcoin Wallet Cheatsheet - Self-Custody, Security & Operations"> - <meta name="twitter:description" content="Interactive guide to Bitcoin wallets: fundamentals, types, security best practices, advanced operations (multisig, nodes), and hardware comparisons (Trezor, Coldcard, Ledger)."> - <meta name="twitter:image" content="https://cheatsheets.davidveksler.com/images/bitcoin-og.png"> <!-- Placeholder - Create an appropriate image --> - <meta name="twitter:image:alt" content="Diagram illustrating Bitcoin wallet concepts like hot vs cold storage, hardware wallets, and seed phrases."> + <meta name="twitter:title" content="Bitcoin Wallet Cheatsheet - Cyberpunk Matrix Edition"> + <meta name="twitter:description" content="Navigate Bitcoin self-custody with this cyberpunk-themed guide to wallets, security, operations, and hardware."> + <meta name="twitter:image" content="https://cheatsheets.davidveksler.com/images/bitcoin-cyberpunk-og.png"> <!-- Placeholder Twitter image --> + <meta name="twitter:image:alt" content="Cyberpunk styled diagram showing Bitcoin wallet concepts."> - <!-- Favicon links (optional but recommended) --> - <!-- <link rel="icon" href="/favicon.ico" sizes="any"> --> - <!-- <link rel="icon" href="/favicon.svg" type="image/svg+xml"> --> - <!-- <link rel="apple-touch-icon" href="/apple-touch-icon.png"> --> <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css"> + <!-- Link Fonts --> + <link rel="preconnect" href="https://fonts.googleapis.com"> + <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> + <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&family=Fira+Code:wght@400;600&family=Orbitron:[email protected]&display=swap" rel="stylesheet"> + <style> + @keyframes subtleDataStream { + 0% { background-position: 0 0; } + 100% { background-position: 0 60px; } /* Vertical movement for stream */ + } + + @keyframes pulseGlowIntense { + 0% { box-shadow: 0 0 8px 1px var(--category-color-glow), 0 4px 10px rgba(0,0,0, 0.4), inset 0 0 5px rgba(0,0,0,0.2); } + 50% { box-shadow: 0 0 20px 5px var(--category-color-glow), 0 6px 15px rgba(0,0,0, 0.5), inset 0 0 10px rgba(0,0,0,0.3); } + 100% { box-shadow: 0 0 8px 1px var(--category-color-glow), 0 4px 10px rgba(0,0,0, 0.4), inset 0 0 5px rgba(0,0,0,0.2); } + } + + @keyframes flowLineGradient { + 0% { background-position: -100% 0; } + 100% { background-position: 100% 0; } + } + :root { - --bs-body-bg: #f0f4f8; /* Lighter blue-gray background */ - --bs-primary: #f7931a; /* Bitcoin Orange */ - --bs-primary-dark: #e8830a; /* Darker Orange */ - --bs-primary-light: #fde6ce; /* Lighter Orange */ - --card-border-color: #cbd5e1; /* Slate 300 */ - --card-shadow-color: rgba(100, 116, 139, 0.1); /* Slate shadow */ - --text-color-main: #1e293b; /* Slate 800 */ - --text-color-secondary: #475569; /* Slate 600 */ - --text-color-highlight: var(--bs-primary-dark); - --blueprint-grid-color: rgba(148, 163, 184, 0.15); /* Slate 400 with alpha */ - --schema-bg-color: rgba(255, 255, 255, 0.65); - --schema-border-color: #e2e8f0; /* Slate 200 */ - --critical-color: #dc2626; /* Red 600 */ + /* Core Palette - Deeper Cyberpunk Dark */ + --bg-main: #0a0c10; /* Even darker */ + --bg-container: #11151c; /* Darker gray/blue */ + --bg-card: #1c2128; /* Dark slate gray */ + --bg-card-content: #22272e; /* Slightly lighter slate */ + --text-primary: #d1d5db; /* Light gray for readability */ + --text-secondary: #9ca3af; /* Mid gray */ + --text-heading: #f0f6fc; /* Brighter off-white */ + --border-color: #373e47; /* Subtle border color */ + --accent-primary: #6cb6ff; /* Lighter Vibrant Blue */ + --accent-primary-dark: #58a6ff; + --accent-primary-glow: rgba(108, 182, 255, 0.6); + --critical-color: #ff7b72; /* Brighter Neon Red */ --rule-border-color: var(--critical-color); + --rule-bg-color: rgba(255, 123, 114, 0.15); /* Slightly stronger bg */ + --btc-orange: #f7931a; + --btc-orange-glow: rgba(247, 147, 26, 0.7); + --btc-orange-subtle-glow: rgba(247, 147, 26, 0.4); - /* --- Bitcoin Category Colors --- */ - --btc-color-concept: #475569; /* Slate 600 (Grayish) */ - --btc-color-hot: #ef4444; /* Red 500 */ - --btc-color-cold: #2563eb; /* Blue 600 */ - --btc-color-operations: #16a34a; /* Green 600 */ - --btc-color-security: #c026d3; /* Fuchsia 600 */ - --btc-color-advanced: #7c3aed; /* Violet 600 */ - --btc-color-comparison: #0ea5e9; /* Sky 500 */ - --btc-color-pitfalls: #f97316; /* Orange 500 */ - --btc-color-glossary: #64748b; /* Slate 500 */ - --btc-color-resources: #059669; /* Emerald 600 */ - /* Default category color */ - --category-color: var(--btc-color-concept); - } + /* Bitcoin Category Colors (Neon Emphasis) */ + --btc-color-concept: #9ca3af; --btc-glow-concept: rgba(156, 163, 175, 0.5); + --btc-color-hot: #ff7b72; --btc-glow-hot: rgba(255, 123, 114, 0.7); /* Neon Red */ + --btc-color-cold: #6cb6ff; --btc-glow-cold: rgba(108, 182, 255, 0.6); /* Neon Blue */ + --btc-color-operations: #56d364; --btc-glow-operations: rgba(86, 211, 100, 0.6); /* Neon Green */ + --btc-color-security: #f778ba; --btc-glow-security: rgba(247, 120, 186, 0.6); /* Neon Pink */ + --btc-color-advanced: #c39ac5; --btc-glow-advanced: rgba(195, 154, 197, 0.6); /* Neon Purple */ + --btc-color-comparison: #79c0ff; --btc-glow-comparison: rgba(121, 192, 255, 0.6); /* Light Neon Blue */ + --btc-color-pitfalls: #f7c85c; --btc-glow-pitfalls: rgba(247, 200, 92, 0.7); /* Neon Yellow */ + --btc-color-glossary: #8b949e; --btc-glow-glossary: rgba(139, 148, 158, 0.5); + --btc-color-resources: #56d364; --btc-glow-resources: rgba(86, 211, 100, 0.6); /* Neon Green again */ - @keyframes blueprintGridAnimation { - 0% { background-position: 0 0, 0 0; } - 100% { background-position: 50px 50px, -50px -50px; } + --category-color: var(--btc-color-concept); /* Default */ + --category-color-glow: var(--btc-glow-concept); + color-scheme: dark; } body { - background-color: var(--bs-body-bg); + background-color: var(--bg-main); + /* Animated "data stream" background */ background-image: - linear-gradient(to right, var(--blueprint-grid-color) 1px, transparent 1px), - linear-gradient(to bottom, var(--blueprint-grid-color) 1px, transparent 1px); - background-size: 50px 50px; - animation: blueprintGridAnimation 75s linear infinite; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; + linear-gradient(0deg, rgba(13, 17, 23, 0) 0%, rgba(88, 166, 255, 0.03) 50%, rgba(13, 17, 23, 0) 100%), + linear-gradient(90deg, rgba(48, 54, 61, 0.1) 1px, transparent 1px), + linear-gradient(0deg, rgba(48, 54, 61, 0.1) 1px, transparent 1px); + background-size: 100% 60px, 40px 40px, 40px 40px; /* stream height, grid x, grid y */ + animation: subtleDataStream 4s linear infinite; + + color: var(--text-primary); + font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; /* Modern Sans-serif */ padding-bottom: 3rem; - font-size: 16px; - color: var(--text-color-main); + font-size: 15px; box-sizing: border-box; + line-height: 1.7; /* Increased line height */ } *, *::before, *::after { box-sizing: inherit; } + /* --- Bitcoin Header Styling --- */ .page-header { - background: linear-gradient(135deg, #fffbeb, #fef3c7); /* Lighter yellow/orange gradient */ - padding: 2.5rem 1.5rem; + background: + linear-gradient(135deg, rgba(247, 147, 26, 0.08) 0%, transparent 30%), + linear-gradient(225deg, rgba(247, 147, 26, 0.05) 0%, transparent 30%), + linear-gradient(45deg, rgba(48, 54, 61, 0.1) 0%, transparent 50%), + var(--bg-container); + backdrop-filter: blur(2px); + padding: 3rem 1.5rem; text-align: center; - border-bottom: 2px solid var(--bs-primary-light); + border-bottom: 1px solid var(--border-color); margin-bottom: 3rem; position: relative; z-index: 10; - box-shadow: 0 4px 15px rgba(247, 147, 26, 0.1); + box-shadow: 0 5px 25px rgba(0, 0, 0, 0.4), inset 0 0 15px rgba(0,0,0,0.3); + overflow: hidden; } + + .page-header::before, + .page-header::after { + content: ''; + position: absolute; + width: 20px; height: 20px; + border-color: var(--btc-orange); border-style: solid; + opacity: 0.7; filter: drop-shadow(0 0 4px var(--btc-orange-glow)); + transition: all 0.3s ease; + } + .page-header::before { top: 10px; left: 10px; border-width: 2px 0 0 2px; border-top-left-radius: 5px; } + .page-header::after { bottom: 10px; right: 10px; border-width: 0 2px 2px 0; border-bottom-right-radius: 5px; } + .page-header:hover::before, + .page-header:hover::after { width: 25px; height: 25px; opacity: 1; filter: drop-shadow(0 0 8px var(--btc-orange-glow)); } + .page-header h1 { - color: var(--bs-primary-dark); - font-weight: 300; - letter-spacing: 0.5px; - margin-bottom: 0.5rem; - font-size: 2.8rem; + color: var(--text-heading); font-weight: 300; letter-spacing: 1.5px; + margin-bottom: 0.7rem; font-size: 2.8rem; + text-shadow: 0 0 15px var(--btc-orange-glow), 0 0 5px var(--btc-orange-subtle-glow); } - .page-header h1 .bi { font-size: 0.9em; vertical-align: -0.05em; margin-right: 0.3em;} - .page-header .lead { color: #78350f; /* Amber 800 */ font-size: 1.15rem; max-width: 800px; margin: auto; } + .page-header h1 .bi.bi-currency-bitcoin { + font-size: 0.9em; vertical-align: -0.08em; margin-right: 0.4em; + color: var(--btc-orange); filter: drop-shadow(0 0 8px var(--btc-orange-glow)); + } + .page-header .lead { + color: var(--text-secondary); font-size: 1.15rem; max-width: 800px; + margin: 0.5rem auto 0 auto; text-shadow: 0 1px 2px rgba(0,0,0,0.5); + } + /* --- End Bitcoin Header Styling --- */ .schema-container { - background-color: var(--schema-bg-color); - border: 1px solid var(--schema-border-color); - border-radius: 8px; - padding: 1.5rem 1.5rem 0.5rem 1.5rem; - margin-bottom: 2.5rem; - box-shadow: 0 5px 15px rgba(100, 116, 139, 0.07); - backdrop-filter: blur(3px); - position: relative; - transition: opacity 0.3s ease-in-out; + padding: 0 1rem 0.5rem 1rem; margin-bottom: 3rem; position: relative; } .section-title { - color: var(--category-color); - margin: -2.8rem 0 1.5rem 0; - font-weight: 600; - text-transform: uppercase; - letter-spacing: .08em; - font-size: 1.05rem; - border-bottom: none; - padding: 0.4rem 1rem; - background-color: var(--bs-body-bg); - display: inline-block; - position: relative; - left: 1rem; - z-index: 15; - border: 1px solid var(--schema-border-color); - border-bottom: none; - border-radius: 6px 6px 0 0; - transition: opacity 0.3s ease-in-out; + color: var(--category-color); margin: 0 0 2rem 0; font-weight: 500; + text-transform: uppercase; letter-spacing: 0.12em; font-size: 1rem; + border-bottom: 1px solid var(--border-color); + padding: 0.5rem 0; display: block; position: relative; z-index: 15; + text-shadow: 0 0 8px var(--category-color-glow); } + /* Apply category colors vars */ + .cat-concept > .section-title { --category-color: var(--btc-color-concept); --category-color-glow: var(--btc-glow-concept);} + .cat-hot > .section-title { --category-color: var(--btc-color-hot); --category-color-glow: var(--btc-glow-hot);} + .cat-cold > .section-title { --category-color: var(--btc-color-cold); --category-color-glow: var(--btc-glow-cold);} + .cat-operations > .section-title { --category-color: var(--btc-color-operations); --category-color-glow: var(--btc-glow-operations);} + .cat-security > .section-title { --category-color: var(--btc-color-security); --category-color-glow: var(--btc-glow-security);} + .cat-advanced > .section-title { --category-color: var(--btc-color-advanced); --category-color-glow: var(--btc-glow-advanced);} + .cat-comparison > .section-title { --category-color: var(--btc-color-comparison); --category-color-glow: var(--btc-glow-comparison);} + .cat-pitfalls > .section-title { --category-color: var(--btc-color-pitfalls); --category-color-glow: var(--btc-glow-pitfalls);} + .cat-glossary > .section-title { --category-color: var(--btc-color-glossary); --category-color-glow: var(--btc-glow-glossary);} + .cat-resources > .section-title { --category-color: var(--btc-color-resources); --category-color-glow: var(--btc-glow-resources);} - /* --- Card Styling --- */ + /* --- Card Styling ("Nodes" v2) --- */ .info-card { - background: #fff; - border: 1px solid var(--card-border-color); - border-radius: 4px; /* Slightly softer */ - box-shadow: 0 2px 5px var(--card-shadow-color); - height: 100%; - display: flex; - flex-direction: column; - transition: box-shadow 0.3s ease, opacity 0.3s ease; - position: relative; - z-index: 5; - opacity: 1; + background-color: var(--bg-card); border: 1px solid var(--border-color); + border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0, 0.3), inset 0 0 8px rgba(0,0,0,0.2); + height: 100%; display: flex; flex-direction: column; + transition: all 0.3s ease; position: relative; z-index: 5; overflow: hidden; + --category-color: inherit; --category-color-glow: inherit; /* Prepare for hover */ + } + + /* Apply category color vars */ + .info-card.btc-type-concept { --category-color: var(--btc-color-concept); --category-color-glow: var(--btc-glow-concept);} + .info-card.btc-type-software { --category-color: var(--btc-color-hot); --category-color-glow: var(--btc-glow-hot);} + .info-card.btc-type-web { --category-color: var(--btc-color-hot); --category-color-glow: var(--btc-glow-hot); filter: brightness(0.85); } + .info-card.btc-type-hardware { --category-color: var(--btc-color-cold); --category-color-glow: var(--btc-glow-cold);} + .info-card.btc-type-paper { --category-color: var(--btc-color-cold); --category-color-glow: var(--btc-glow-cold); filter: brightness(0.85); } + .info-card.btc-type-airgap { --category-color: var(--btc-color-cold); --category-color-glow: var(--btc-glow-cold);} + .info-card.btc-type-operation { --category-color: var(--btc-color-operations); --category-color-glow: var(--btc-glow-operations);} + .info-card.btc-type-security { --category-color: var(--btc-color-security); --category-color-glow: var(--btc-glow-security);} + .info-card.btc-type-advanced { --category-color: var(--btc-color-advanced); --category-color-glow: var(--btc-glow-advanced);} + .info-card.btc-type-comparison { --category-color: var(--btc-color-comparison); --category-color-glow: var(--btc-glow-comparison);} + .info-card.btc-type-pitfall { --category-color: var(--btc-color-pitfalls); --category-color-glow: var(--btc-glow-pitfalls);} + .info-card.btc-type-glossary { --category-color: var(--btc-color-glossary); --category-color-glow: var(--btc-glow-glossary);} + .info-card.btc-type-resource { --category-color: var(--btc-color-resources); --category-color-glow: var(--btc-glow-resources);} + + /* Circuit Board Corner Effect */ + .info-card::before { + content: ''; position: absolute; top: -1px; left: -1px; + width: 15px; height: 15px; border-top: 2px solid var(--category-color); + border-left: 2px solid var(--category-color); border-radius: 6px 0 0 0; + opacity: 0.6; transition: all 0.3s ease; + filter: drop-shadow(0 0 3px var(--category-color-glow)); } + .info-card:hover::before { opacity: 1; width: 25px; height: 25px; filter: drop-shadow(0 0 6px var(--category-color-glow)); } .info-card:hover { - box-shadow: 0 5px 12px rgba(100, 116, 139, .15); - z-index: 20; + transform: translateY(-4px) scale(1.01); z-index: 20; + animation: pulseGlowIntense 1.8s infinite ease-in-out; } .info-card .card-body { padding: 0; flex-grow: 1; display: flex; flex-direction: column; } .info-card h5 { - color: #fff; background-color: var(--category-color); - font-size: 1rem; text-align: center; margin: 0; padding: 0.6rem 0.5rem; + color: var(--text-heading); + background: linear-gradient(135deg, var(--category-color) 0%, color-mix(in srgb, var(--category-color) 80%, black 20%) 100%); + font-size: 0.85rem; text-align: center; margin: 0; padding: 0.7rem 0.5rem; font-weight: 600; display: flex; justify-content: center; align-items: center; - gap: .5rem; - border-bottom: 1px solid var(--card-border-color); - border-radius: 3px 3px 0 0; /* Match card radius */ + gap: .6rem; font-family: 'Orbitron', 'Fira Code', monospace; + border-bottom: 1px solid var(--border-color); border-radius: 5px 5px 0 0; + text-transform: uppercase; letter-spacing: 1px; text-shadow: 0 0 5px rgba(0,0,0,0.6); } - .info-card h5 .bi { font-size: 1.1em; color: #fff; opacity: 0.9; } - .card-content-wrapper { padding: 1rem; flex-grow: 1; display: flex; flex-direction: column; } - .info-card p.summary { font-size: .9rem; color: var(--text-color-secondary); margin-bottom: .8rem; flex-grow: 1; } + .info-card h5 .bi { font-size: 1.2em; color: var(--text-heading); opacity: 1; filter: drop-shadow(0 0 3px rgba(0,0,0,0.6));} + .card-content-wrapper { padding: 1.1rem; flex-grow: 1; display: flex; flex-direction: column; } + .info-card p.summary { font-size: .88rem; color: var(--text-secondary); margin-bottom: 1rem; flex-grow: 1; line-height: 1.6;} - /* Attribute List Styling (inside collapse) */ - .collapse-content { font-size: 0.9rem; border-top: 1px solid #e2e8f0; padding: 1rem; margin: 1rem -1rem -1rem -1rem; background-color:#f8fafc; border-radius: 0 0 3px 3px;} /* Added padding and slight background */ - .collapse-content h6 { font-weight: 700; color: var(--text-color-highlight); margin-top: 0.8rem; margin-bottom: 0.3rem; font-size: 0.95rem; } - .collapse-content ul { padding-left: 0.5rem; margin-bottom: 0.8rem; list-style: none; } - .collapse-content li { margin-bottom: 0.6rem; padding-bottom: 0.6rem; font-size: 0.88rem; line-height: 1.5; border-bottom: 1px dotted #d1d5db; position: relative; padding-left: 1.5rem; } - .collapse-content li:last-child { border-bottom: none; margin-bottom: 0; } - /* Use specific icons or keep generic */ - .collapse-content li::before { content: "\f285"; /* Example: check */ font-family: "bootstrap-icons"; position: absolute; left: 0; top: 2px; color: var(--category-color); opacity: 0.7; font-size: 0.9em; } - .collapse-content li strong { color: var(--text-color-highlight); display: block; margin-bottom: 0.2rem; font-weight: 600; } - .collapse-content p { font-size: 0.9rem; margin-bottom: 0.6rem; line-height: 1.55; } - .collapse-content code { font-size: 0.85rem; color: #b91c1c; /* Red 700 */ background-color: #f1f5f9; /* Slate 100 */ padding: 0.1em 0.4em; border-radius: 3px; } - .collapse-content dl dt { font-weight: bold; margin-top: 0.7em; color: var(--text-color-main); } - .collapse-content dl dd { margin-left: 1.5em; margin-bottom: 0.5em; color: var(--text-color-secondary); } + /* Collapse Content Styling */ + .collapse-content { + font-size: 0.88rem; border-top: 1px dashed var(--border-color); + padding: 1.2rem; margin: 0; background-color: var(--bg-card-content); + border-radius: 0 0 5px 5px; color: var(--text-primary); + } + .collapse-content h6 { font-weight: 600; color: var(--accent-primary); margin: 1rem 0 0.5rem 0; font-size: 0.95rem; text-transform: uppercase; letter-spacing: 0.5px;} + .collapse-content ul { padding-left: 0; margin-bottom: 1rem; list-style-type: none; } + .collapse-content li { margin-bottom: 0.6rem; font-size: 0.88rem; line-height: 1.7; padding-left: 1.5em; position: relative; } + .collapse-content li::before { /* Neon bullet */ + content: ""; display: block; position: absolute; left: 0.2em; top: 0.5em; + width: 6px; height: 6px; background-color: var(--category-color); + border-radius: 50%; box-shadow: 0 0 5px 1px var(--category-color-glow); + } + /* Style list bullets based on card category */ + .info-card .collapse-content li::before { color: var(--category-color); box-shadow: 0 0 5px 1px var(--category-color-glow); background-color: var(--category-color); } - .row > * { margin-bottom: 2rem; } /* Restore bottom margin for multi-card rows */ - footer { padding-top: 3rem; font-size: .85em; color: var(--text-color-secondary); position: relative; z-index: 10; text-align: center; } + .collapse-content code { font-size: 0.8rem; color: #ffcc99; background-color: #30363d; padding: 0.2em 0.5em; border-radius: 4px; font-family: 'Fira Code', 'Courier New', monospace; border: 1px solid #444;} + .collapse-content pre code { display: block; padding: 1em; margin: 1em 0; background-color: #0d1117; border: 1px solid var(--border-color); border-radius: 4px; overflow-x: auto; } + .collapse-content dl dt { font-weight: bold; margin-top: 0.7em; color: var(--text-heading); } + .collapse-content dl dd { margin-left: 1.5em; margin-bottom: 0.5em; color: var(--text-secondary); } + .row > * { margin-bottom: 2rem; } + footer { padding: 3rem 1rem 1rem 1rem; font-size: .8rem; color: var(--text-secondary); text-align: center; } + + /* Details Toggle Button */ .details-toggle { - font-size: 0.8rem; margin-top: auto; align-self: flex-start; - padding: 0.3rem 0.6rem; color: var(--category-color); - border: 1px solid var(--category-color); background-color: transparent; - border-radius: 3px; - transition: background-color 0.2s ease, color 0.2s ease; - display: inline-flex; align-items: center; gap: 0.3em; + font-size: 0.7rem; margin-top: auto; align-self: flex-start; + padding: 0.4rem 0.8rem; color: var(--accent-primary); + border: 1px solid var(--accent-primary); background-color: transparent; + border-radius: 4px; transition: all 0.2s ease; + display: inline-flex; align-items: center; gap: 0.4em; + text-transform: uppercase; font-weight: 700; letter-spacing: 0.8px; + box-shadow: 0 0 5px 0px var(--accent-primary-glow); } - .details-toggle:hover { background-color: var(--category-color); color: white; } + .details-toggle:hover { background-color: var(--accent-primary); color: var(--bg-main); border-color: var(--accent-primary); transform: scale(1.05); box-shadow: 0 0 10px 2px var(--accent-primary-glow);} .details-toggle .bi { transition: transform 0.2s ease-in-out; } .details-toggle[aria-expanded="true"] .bi { transform: rotate(180deg); } - .term { font-weight: 600; color: var(--bs-primary-dark); background-color: var(--bs-primary-light); padding: 0.1em 0.3em; border-radius: 3px;} - .critical { color: var(--critical-color); font-weight: bold; } + /* Terms & Links */ + .term { font-weight: 600; color: var(--accent-primary); background-color: transparent; border-bottom: 1px dotted var(--accent-primary); padding-bottom: 1px; border-radius: 0; font-family: 'Fira Code', 'Consolas', monospace; filter: drop-shadow(0 0 3px var(--accent-primary-glow)); } + .critical { color: var(--critical-color); font-weight: bold; text-shadow: 0 0 6px rgba(248, 81, 73, 0.6); } .rule { - color: var(--critical-color); - font-weight: bold; - display: block; - margin: 0.8em 0; - border-left: 4px solid var(--rule-border-color); - padding: 0.5em 0.8em; - background-color: #fee2e2; /* Red 100 */ - border-radius: 0 4px 4px 0; + color: #ffc1bd; font-weight: 500; display: block; margin: 1em 0; + border: 1px solid var(--rule-border-color); border-left-width: 5px; + padding: 0.8em 1.2em; background-color: var(--rule-bg-color); + border-radius: 4px; font-size: 0.9rem; + box-shadow: inset 3px 0 8px rgba(0,0,0,0.2), 0 0 8px var(--rule-bg-color); } - .pros { color: #15803d; /* Green 700 */ font-weight: bold; } - .cons { color: #b91c1c; /* Red 700 */ font-weight: bold; } - - a { color: var(--bs-primary); text-decoration: none; } - a:hover { color: var(--bs-primary-dark); text-decoration: underline; } - .collapse-content a { color: #c2410c; /* Orange 700 */ } - .collapse-content a:hover { color: #9a3412; /* Orange 800 */ } + .pros::before { content: '[+] '; color: #56d364; font-weight: bold; filter: drop-shadow(0 0 3px var(--btc-glow-operations));} + .cons::before { content: '[-] '; color: #ff7b72; font-weight: bold; filter: drop-shadow(0 0 3px var(--btc-glow-hot));} + .pros, .cons { display: block; margin-left: 0; padding-left: 0;} - /* --- Color Coding Class Assignments --- */ - .cat-concept { --category-color: var(--btc-color-concept); } - .cat-hot { --category-color: var(--btc-color-hot); } - .cat-cold { --category-color: var(--btc-color-cold); } - .cat-operations { --category-color: var(--btc-color-operations); } - .cat-security { --category-color: var(--btc-color-security); } - .cat-advanced { --category-color: var(--btc-color-advanced); } - .cat-comparison { --category-color: var(--btc-color-comparison); } - .cat-pitfalls { --category-color: var(--btc-color-pitfalls); } - .cat-glossary { --category-color: var(--btc-color-glossary); } - .cat-resources { --category-color: var(--btc-color-resources); } + a { color: var(--accent-primary); text-decoration: none; transition: color 0.2s ease;} + a:hover { color: #9ecbff; text-decoration: underline; text-shadow: 0 0 5px var(--accent-primary-glow);} + .collapse-content a { color: #79c0ff; } + .collapse-content a:hover { color: #aedbff; } - /* Specific Card Types inherit from category by default or override */ - .btc-type-concept { --category-color: var(--btc-color-concept); } - .btc-type-software { --category-color: var(--btc-color-hot); } /* Inherit from hot */ - .btc-type-web { --category-color: var(--btc-color-hot); opacity: 0.8;} /* Dim web slightly */ - .btc-type-hardware { --category-color: var(--btc-color-cold); } /* Inherit from cold */ - .btc-type-paper { --category-color: var(--btc-color-cold); opacity: 0.8;} /* Dim paper slightly */ - .btc-type-airgap { --category-color: var(--btc-color-cold); } - .btc-type-operation { --category-color: var(--btc-color-operations); } - .btc-type-security { --category-color: var(--btc-color-security); } - .btc-type-advanced { --category-color: var(--btc-color-advanced); } - .btc-type-comparison { --category-color: var(--btc-color-comparison); } - .btc-type-pitfall { --category-color: var(--btc-color-pitfalls); } - .btc-type-glossary { --category-color: var(--btc-color-glossary); } - .btc-type-resource { --category-color: var(--btc-color-resources); } + /* Animated Flow Line Between Rows */ + .row + .row::before { /* Add line *before* subsequent rows */ + content: ''; position: absolute; left: 10%; right: 10%; top: -1rem; + height: 1px; /* Thinner line */ + background: linear-gradient(90deg, transparent, var(--accent-primary-glow), var(--accent-primary), var(--accent-primary-glow), transparent); + background-size: 200% 1px; + opacity: 0.4; animation: flowLineGradient 6s linear infinite; + z-index: 1; border-radius: 1px; + } </style> </head> <body> <header class="page-header"> - <h1 class="display-5"><i class="bi bi-wallet2"></i> Bitcoin Wallet Cheatsheet</h1> - <p class="lead">A comprehensive guide to Bitcoin self-custody, wallet types, security practices, and advanced concepts for beginner to advanced users.</p> + <!-- Bitcoin Icon and Title --> + <h1 class="display-5"> + <i class="bi bi-currency-bitcoin"></i> Bitcoin Wallet Matrix + </h1> + <p class="lead">Cyberpunk Protocols & Security Interfaces for Self-Custody.</p> </header> + <div class="container" id="main-container"> <!-- ========================== --> <!-- SECTION I: Introduction --> <!-- ========================== --> <div class="schema-container cat-concept" data-section-id="section-intro"> - <h2 class="section-title" id="section-intro">I. Introduction</h2> + <h2 class="section-title" id="section-intro"><i class="bi bi-info-circle"></i> // I. System Initialization</h2> <div class="row"> <div class="col-12"> <div class="info-card btc-type-concept" id="card-intro"> <div class="card-body"> - <h5 class="text-center"><i class="bi bi-info-circle"></i> Purpose, Scope & Disclaimer</h5> + <h5 class="text-center"><i class="bi bi-terminal-plus"></i> Purpose :: Scope :: Disclaimer</h5> <div class="card-content-wrapper"> - <p class="summary">Quick reference for understanding, choosing, using, and securing Bitcoin wallets, emphasizing self-custody. Covers fundamentals, types, operations, security, advanced topics, comparisons, and pitfalls.</p> + <p class="summary">Fast-access datastream for Bitcoin wallet protocols, interfaces, OPSEC, and advanced configurations. Focus: Self-Custody.</p> <button class="btn btn-sm details-toggle mx-auto" type="button" data-bs-toggle="collapse" data-bs-target="#collapseIntro" aria-expanded="false" aria-controls="collapseIntro"> - More Details <i class="bi bi-chevron-down"></i> + Access Subroutines <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseIntro"> - <h6>Why Self-Custody Matters</h6> + <h6>Directive: Self-Custody</h6> <ul> - <li>Core Principle: Reinforces the mantra <strong class="critical">"Not your keys, not your coins."</strong> Control your private keys, control your Bitcoin. Third parties (exchanges) introduce counterparty risk.</li> - <li>Benefits: Financial sovereignty, censorship resistance.</li> - <li>Responsibility: Requires diligence in securing keys/seed phrase.</li> + <li>Core Protocol: <strong class="critical">"Not your keys, not your coins."</strong> Third-party custodians = Counterparty Risk Vector.</li> + <li>Advantages: Sovereign control, censorship resistance.</li> + <li>Mandate: User assumes <strong class="critical">full responsibility</strong> for key/seed security.</li> </ul> - <h6>Disclaimer</h6> - <p>Educational purposes only, not financial or security advice. Technology evolves. <strong class="critical">Always Do Your Own Research (DYOR)</strong>.</p> + <h6>System Scope</h6> + <p>Fundamentals (Keys, Addr, TXs), Interface Types (Hot/Cold, HW/SW), Core Operations, Security Protocols (OPSEC), Advanced Ops (Multisig, Nodes), Hardware Matrix, Threat Vectors.</p> + <h6>Legal Disclaimer</h6> + <p>Information for educational uplink only. No financial/security advisory transmitted. Protocol specifications evolve. <strong class="critical">DYOR: Verify All Data Independently.</strong></p> <ul> - <li><strong>Key Link:</strong> <a href="https://bitcoin.org/en/getting-started" target="_blank" rel="noopener noreferrer">Bitcoin.org - Getting Started</a></li> + <li><strong>Primary Node:</strong> <a href="https://bitcoin.org/en/getting-started" target="_blank" rel="noopener noreferrer">Bitcoin.org - Genesis Block</a></li> </ul> </div> </div> @@ -298,26 +349,24 @@ <!-- SECTION II: Wallet Fundamentals --> <!-- ================================= --> <div class="schema-container cat-concept" data-section-id="section-fundamentals"> - <h2 class="section-title" id="section-fundamentals">II. Bitcoin Wallet Fundamentals</h2> + <h2 class="section-title" id="section-fundamentals"><i class="bi bi-braces-asterisk"></i> // II. Core Protocols</h2> <div class="row"> - <div class="col-lg-4 col-md-6"> + <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-concept" id="card-what-is-wallet"> <div class="card-body"> - <h5><i class="bi bi-box-seam"></i> What is a Wallet?</h5> + <h5><i class="bi bi-bounding-box-circles"></i> Interface Definition</h5> <div class="card-content-wrapper"> - <p class="summary">An <span class="term">interface</span> (software/hardware) managing <span class="term">private/public keys</span>. Allows viewing balance, generating addresses, and signing transactions. Doesn't *store* coins, just keys.</p> - <!-- No collapse needed for this simple concept --> + <p class="summary">Software/Hardware <span class="term">interface</span> managing cryptographic <span class="term">keys</span>. Enables TX signing & balance lookup. Keys, not coins, are stored.</p> </div> </div> </div> </div> - <div class="col-lg-4 col-md-6"> + <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-concept" id="card-keys"> <div class="card-body"> - <h5><i class="bi bi-key-fill"></i> Public vs. Private Keys</h5> + <h5><i class="bi bi-key-fill"></i> Key Pairs :: Asymmetric Crypto</h5> <div class="card-content-wrapper"> - <p class="summary"><span class="term">Private Key:</span> Secret code to authorize spending (<strong class="critical">Keep Secret!</strong>). <span class="term">Public Key:</span> Derives addresses, shareable. Relationship is one-way.</p> - <!-- No collapse needed for this simple concept --> + <p class="summary"><span class="term">Private Key:</span> Secret. Signs TXs. <strong class="critical">[GUARD]</strong>. <span class="term">Public Key:</span> Derives Addr. Shareable.</p> </div> </div> </div> @@ -325,202 +374,204 @@ <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-concept" id="card-addresses"> <div class="card-body"> - <h5><i class="bi bi-geo-alt"></i> Bitcoin Addresses</h5> + <h5><i class="bi bi-geo-alt-fill"></i> Addresses :: Receiving Nodes</h5> <div class="card-content-wrapper"> - <p class="summary">Identifiers for receiving BTC. Formats: Legacy (<code>1...</code>), Nested SegWit (<code>3...</code>), <span class="term">Native SegWit</span> (<code>bc1q...</code> - preferred), <span class="term">Taproot</span> (<code>bc1p...</code> - newest).</p> + <p class="summary">Receiving Identifiers. Formats: Legacy(<code>1</code>), Nested SegWit(<code>3</code>), <span class="term">Native SegWit</span>(<code>bc1q</code>), <span class="term">Taproot</span>(<code>bc1p</code>).</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAddresses" aria-expanded="false" aria-controls="collapseAddresses"> - Details <i class="bi bi-chevron-down"></i> + Format Specs <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseAddresses"> - <h6>Address Types & Best Practices</h6> + <h6>Address Type Analysis</h6> <ul> - <li><strong>Legacy (P2PKH):</strong> Starts with <code>1</code>. Highest fees, lowest efficiency. Widely compatible.</li> - <li><strong>Nested SegWit (P2SH-P2WPKH):</strong> Starts with <code>3</code>. Wrapper for SegWit, lower fees than Legacy. Good compatibility bridge.</li> - <li><strong>Native SegWit (Bech32 / P2WPKH):</strong> Starts with <code>bc1q</code>. <strong class="term">Lowest fees</strong>, best error detection. Standard for most modern wallets.</li> - <li><strong>Taproot (Bech32m / P2TR):</strong> Starts with <code>bc1p</code>. Most recent. Enables advanced scripting/privacy features. Growing adoption.</li> - <li><strong>Best Practice:</strong> Use a <strong class="term">new address for each transaction</strong> received to enhance privacy. Most wallets handle this automatically. Avoid address reuse.</li> + <li><code>Legacy (P2PKH)</code>: Max compatibility, highest fees.</li> + <li><code>Nested SegWit (P2SH)</code>: Wrapped SegWit, better fees. Bridge format.</li> + <li><code>Native SegWit (Bech32)</code>: <strong class="term">Lowest fees</strong>, best error check. Current standard.</li> + <li><code>Taproot (Bech32m)</code>: Latest upgrade. Privacy/scripting benefits. Future standard.</li> </ul> + <p><strong class="term">OPSEC: Generate new address per TX</strong> for privacy enhancement.</p> </div> </div> </div> <div class="col-lg-6 col-md-6"> <div class="info-card btc-type-concept" id="card-seed-phrase"> <div class="card-body"> - <h5><i class="bi bi-journal-text"></i> Seed Phrase (BIP-39)</h5> + <h5><i class="bi bi-journal-code"></i> Seed Phrase :: Genesis Code (BIP-39)</h5> <div class="card-content-wrapper"> - <p class="summary">12/24 word <span class="term">mnemonic</span> representing the <span class="term">master private key</span>. <strong class="critical">The ONLY backup for your funds!</strong> Defined by <a href="https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target="_blank" rel="noopener noreferrer">BIP-39</a>.</p> + <p class="summary">12/24 word <span class="term">mnemonic</span> -> Master Key. <strong class="critical">[ULTIMATE BACKUP PROTOCOL]</strong>. (<a href="https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target="_blank" rel="noopener noreferrer">BIP-39 Spec</a>).</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSeed" aria-expanded="false" aria-controls="collapseSeed"> - Details <i class="bi bi-chevron-down"></i> + Decode & Derive <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseSeed"> - <h6>Importance & Derivation</h6> - <ul> - <li><strong class="critical">CRITICAL Importance:</strong> If your device fails, this is the *only* way to recover access to your Bitcoin on a new wallet.</li> - <li><strong>Generation:</strong> Should be securely generated *by the wallet software/hardware* itself, ideally offline for cold storage.</li> - <li><strong>Derivation:</strong> Uses standards like <span class="term"><a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target="_blank" rel="noopener noreferrer">BIP-32</a></span> (HD Wallets) and path standards (<span class="term"><a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target="_blank" rel="noopener noreferrer">BIP-44</a></span>, <span class="term"><a href="https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki" target="_blank" rel="noopener noreferrer">BIP-84</a></span>, <span class="term"><a href="https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki" target="_blank" rel="noopener noreferrer">BIP-86</a></span>) to generate a nearly infinite tree of keys and addresses from this single seed phrase (+ optional passphrase).</li> - <li><strong>Tool (Caution!):</strong> <a href="https://iancoleman.io/bip39/" target="_blank" rel="noopener noreferrer">Ian Coleman BIP39 Tool</a> (<strong class="critical">Use Offline ONLY!</strong> Never enter your real seed online).</li> - </ul> + <h6>Critical Function & Derivation</h6> + <ul> + <li><strong class="critical">Function:</strong> Sole recovery vector post-device failure/loss.</li> + <li><strong>Origin:</strong> Secure generation via wallet RNG (offline preferred).</li> + <li><strong>Derivation Path:</strong> Uses <span class="term">BIP-32</span> + <span class="term">BIP-44/84/86</span> standards to generate key hierarchy.</li> + <li><code>Seed -> Master Key -> Tree of Keys -> Addresses</code></li> + <li><strong>Tool (Offline ONLY):</strong> <a href="https://iancoleman.io/bip39/" target="_blank" rel="noopener noreferrer">Ian Coleman BIP39</a> <strong class="critical">[WARNING: Extreme caution required if used]</strong></li> + </ul> </div> </div> </div> <div class="col-lg-6 col-md-6"> <div class="info-card btc-type-concept" id="card-transactions"> <div class="card-body"> - <h5><i class="bi bi-diagram-2"></i> How Transactions Work</h5> + <h5><i class="bi bi-arrows-fullscreen"></i> TX Flow :: Network Propagation</h5> <div class="card-content-wrapper"> - <p class="summary">Spend <span class="term">UTXOs</span> (unspent inputs) to create new ones (outputs). Pay miners a <span class="term">fee (sat/vB)</span> for confirmation. Transactions wait in the <span class="term">Mempool</span>.</p> + <p class="summary">Consume <span class="term">UTXOs</span> -> Create Outputs. Attach <span class="term">fee (sat/vB)</span>. Broadcast to <span class="term">Mempool</span> -> Await Mining Confirmation.</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTx" aria-expanded="false" aria-controls="collapseTx"> - Details <i class="bi bi-chevron-down"></i> + Lifecycle Analysis <i class="bi bi-chevron-down"></i> </button> </div> </div> - <div class="collapse collapse-content" id="collapseTx"> - <h6>Transaction Lifecycle</h6> - <ul> - <li><strong class="term">UTXOs (Unspent Transaction Outputs):</strong> Individual "chunks" of bitcoin you own. Your balance is the sum of your UTXOs.</li> - <li><strong class="term">Inputs & Outputs:</strong> Sending involves selecting UTXOs (inputs), creating new UTXOs for the recipient (output) and potentially change back to yourself (output). Input UTXOs become spent.</li> - <li><strong class="term">Transaction Fees (sat/vB):</strong> Paid to miners based on transaction *size* in bytes, not value. Higher fee rate = higher priority. Critical during network congestion.</li> - <li><strong class="term">Mempool:</strong> A "waiting room" for unconfirmed transactions broadcast to the network. Miners select transactions, usually prioritizing higher fee rates.</li> - <li><strong class="term">Confirmations:</strong> Inclusion in a valid block added to the blockchain. 6+ confirmations often considered highly secure.</li> - <li><strong>Key Link:</strong> <a href="https://mempool.space/" target="_blank" rel="noopener noreferrer">mempool.space</a> (Visualize mempool, fees, blocks, transactions)</li> - </ul> - </div> + <div class="collapse collapse-content" id="collapseTx"> + <h6>Transaction Lifecycle:</h6> + <ul> + <li><span class="term">UTXOs:</span> Unspent outputs; represent ownable BTC units.</li> + <li><span class="term">Inputs/Outputs:</span> TX consumes UTXOs, creates new ones (recipient + change).</li> + <li><span class="term">Fees (sat/vB):</span> Market-based incentive for miners; size-dependent.</li> + <li><span class="term">Mempool:</span> P2P queue for unconfirmed TXs.</li> + <li><span class="term">Confirmations:</span> Block inclusion = finality increases. (6+ = standard security).</li> + <li><strong>Monitor Node:</strong> <a href="https://mempool.space/" target="_blank" rel="noopener noreferrer">mempool.space</a></li> + </ul> + </div> </div> </div> </div> <!-- /.row --> </div> <!-- /.schema-container --> - <!-- ================================ --> <!-- SECTION III: Types of Wallets --> <!-- ================================ --> - <div class="schema-container cat-hot" data-section-id="section-hot-wallets"> - <h2 class="section-title" id="section-hot-wallets"><i class="bi bi-wifi"></i> III.A Hot Wallets (Online)</h2> + <div class="schema-container" data-section-id="section-types"> + <!-- Hot Wallets Sub-section --> + <h2 class="section-title cat-hot" id="section-hot-wallets"><i class="bi bi-fire"></i> // III.A Hot Interfaces :: ONLINE/NETWORKED</h2> <div class="row"> <div class="col-lg-6 col-md-6"> <div class="info-card btc-type-software" id="card-software"> <div class="card-body"> - <h5><i class="bi bi-display"></i> Software Wallets (Apps)</h5> + <h5><i class="bi bi-display"></i> Software Terminals</h5> <div class="card-content-wrapper"> - <p class="summary">Applications on computers/phones. Keys exposed to online threats. Good for frequent, smaller amounts. <strong class="critical">Distinguish Custodial vs. Non-Custodial.</strong></p> + <p class="summary">Applications (Desktop/Mobile). Keys reside on networked device = <strong class="cons">High Attack Surface</strong>. Suitable for operational funds only.</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSoftware" aria-expanded="false" aria-controls="collapseSoftware"> - Details & Examples <i class="bi bi-chevron-down"></i> + Variants & Protocols <i class="bi bi-chevron-down"></i> </button> </div> </div> - <div class="collapse collapse-content" id="collapseSoftware"> - <h6>Custodial vs. Non-Custodial</h6> + <div class="collapse collapse-content" id="collapseSoftware"> + <h6>Custody Protocol Distinction:</h6> <ul> - <li><strong class="term pros">Non-Custodial:</strong> You hold the seed/keys. Full control & responsibility. <strong class="term">True self-custody.</strong></li> - <li><strong class="term cons">Custodial:</strong> Third party holds keys (e.g., exchange wallet). Trust required. <strong class="term">Not self-custody.</strong></li> + <li><strong class="pros">Non-Custodial:</strong> User controls keys/seed. <strong class="term">[Self-Sovereign]</strong></li> + <li><strong class="cons">Custodial:</strong> Third-party controls keys. <strong class="term">[Counterparty Risk]</strong></li> </ul> - <h6>Examples (Non-Custodial):</h6> + <h6>Non-Custodial Access Nodes:</h6> <ul> - <li>Desktop: <a href="https://electrum.org/" target="_blank" rel="noopener noreferrer">Electrum</a>, <a href="https://sparrowwallet.com/" target="_blank" rel="noopener noreferrer">Sparrow Wallet</a>, <a href="https://specter.solutions/" target="_blank" rel="noopener noreferrer">Specter Desktop</a></li> - <li>Mobile: <a href="https://bluewallet.io/" target="_blank" rel="noopener noreferrer">BlueWallet</a>, <a href="https://muun.com/" target="_blank" rel="noopener noreferrer">Muun Wallet</a>, <a href="https://samouraiwallet.com/" target="_blank" rel="noopener noreferrer">Samourai Wallet</a> (*note legal issues*), Electrum Mobile</li> + <li>Desktop: <code>Electrum</code>, <code>Sparrow</code>, <code>Specter</code></li> + <li>Mobile: <code>BlueWallet</code>, <code>Muun</code>, <code>Samourai</code>(*Note Legal Status*)</li> </ul> - <h6>Pros & Cons</h6> + <h6>Threat Assessment:</h6> <ul> - <li><strong class="pros">Pros:</strong> Convenient, often free, quick transactions.</li> - <li><strong class="cons">Cons:</strong> Keys vulnerable to device compromise (malware, phishing, theft). Not for significant long-term holdings.</li> - </ul> - </div> + <li><strong class="cons">Vulnerable to:</strong> Malware, Phishing, OS Exploits, Physical Device Compromise.</li> + </ul> + </div> </div> </div> - <div class="col-lg-6 col-md-6"> + <div class="col-lg-6 col-md-6"> <div class="info-card btc-type-web" id="card-web"> <div class="card-body"> - <h5><i class="bi bi-globe"></i> Web Wallets</h5> + <h5><i class="bi bi-globe2"></i> Web Interfaces</h5> <div class="card-content-wrapper"> - <p class="summary">Accessed via web browser. Often custodial. <strong class="cons">Generally discouraged for significant value</strong> due to browser/website/phishing risks.</p> - <!-- No collapse needed --> + <p class="summary">Browser-based access nodes. Often custodial. <strong class="cons">EXTREME RISK PROFILE</strong> via XSS, Phishing, Browser Malware.</p> </div> </div> </div> </div> </div> <!-- /.row --> - </div> <!-- /.schema-container --> - <div class="schema-container cat-cold" data-section-id="section-cold-wallets"> - <h2 class="section-title" id="section-cold-wallets"><i class="bi bi-snow"></i> III.B Cold Wallets (Offline)</h2> + <!-- Cold Wallets Sub-section --> + <h2 class="section-title cat-cold" id="section-cold-wallets" style="margin-top: 2.5rem;"><i class="bi bi-shield-shaded"></i> // III.B Cold Storage :: OFFLINE/ISOLATED</h2> <div class="row"> <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-hardware" id="card-hardware"> <div class="card-body"> - <h5><i class="bi bi-hdd"></i> Hardware Wallets</h5> + <h5><i class="bi bi-memory"></i> Hardware Modules</h5> <div class="card-content-wrapper"> - <p class="summary">Purpose-built physical devices securing keys offline. Signatures done on-device. <strong class="pros">Highest security against online threats.</strong></p> + <p class="summary">Dedicated crypto-processors. Key isolation from network. <strong class="pros">Maximum Online Threat Resistance.</strong></p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseHardware" aria-expanded="false" aria-controls="collapseHardware"> - Details & Examples <i class="bi bi-chevron-down"></i> + Specs & Examples <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseHardware"> - <h6>Pros & Cons</h6> - <ul> - <li><strong class="pros">Pros:</strong> Best protection from malware/hacking, strong physical security features (PIN, tamper-evidence), recovery via seed.</li> - <li><strong class="cons">Cons:</strong> Cost, requires physical device for signing, potential physical loss/theft (mitigated by seed backup).</li> - </ul> - <h6>Examples & Links:</h6> + <h6>Core Functionality:</h6> <ul> - <li><a href="https://trezor.io/" target="_blank" rel="noopener noreferrer">Trezor</a> (Model T, Safe 3)</li> - <li><a href="https://coldcard.com/" target="_blank" rel="noopener noreferrer">Coldcard</a> (Mk4, Q1)</li> - <li><a href="https://www.ledger.com/" target="_blank" rel="noopener noreferrer">Ledger</a> (Nano S Plus, Nano X, Stax)</li> - <li><a href="https://bitbox.swiss/" target="_blank" rel="noopener noreferrer">BitBox02</a> (Bitcoin-only Edition)</li> - <li><a href="https://seedsigner.com/" target="_blank" rel="noopener noreferrer">Seedsigner</a> (DIY)</li> - <li><a href="https://blockstream.com/jade/" target="_blank" rel="noopener noreferrer">Blockstream Jade</a></li> - <li><a href="https://foundationdevices.com/" target="_blank" rel="noopener noreferrer">Foundation Passport</a></li> + <li><strong class="pros">Advantage:</strong> Private keys never exposed to connected (potentially compromised) host.</li> + <li><strong class="pros">Physical Security:</strong> PIN protection, tamper-evidence features.</li> + <li><strong class="cons">Considerations:</strong> Initial cost, physical security needs.</li> </ul> - <p>(See Section VII for detailed comparison)</p> - </div> + <h6>Example Modules:</h6> + <ul> + <li><a href="https://trezor.io/" target="_blank" rel="noopener noreferrer">Trezor</a> (T/Safe 3)</li> + <li><a href="https://coldcard.com/" target="_blank" rel="noopener noreferrer">Coldcard</a> (Mk4/Q1)</li> + <li><a href="https://www.ledger.com/" target="_blank" rel="noopener noreferrer">Ledger</a> (Nano/Stax)</li> + <li>... (See Section VII for Matrix)</li> + </ul> + </div> </div> </div> <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-paper" id="card-paper"> <div class="card-body"> - <h5><i class="bi bi-file-earmark-text"></i> Paper Wallets</h5> + <h5><i class="bi bi-journal"></i> Paper Storage Unit</h5> <div class="card-content-wrapper"> - <p class="summary">Printing private/public keys on paper. <strong class="cons">Generally obsolete and unsafe</strong> due to spending complexity and physical risks.</p> - <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapsePaper" aria-expanded="false" aria-controls="collapsePaper"> - Risks <i class="bi bi-chevron-down"></i> + <p class="summary">Physical key printout. <strong class="cons">Obsolete / High Risk Profile.</strong> Complex spending, fragile medium.</p> + <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapsePaper" aria-expanded="false" aria-controls="collapsePaper"> + Threat Analysis <i class="bi bi-chevron-down"></i> </button> </div> </div> - <div class="collapse collapse-content" id="collapsePaper"> - <h6>Risks</h6> + <div class="collapse collapse-content" id="collapsePaper"> + <h6>Inherent Vulnerabilities:</h6> <ul> - <li>Difficult/unsafe partial spending (often requires sweeping entire balance, exposing keys).</li> - <li>Vulnerable to physical damage (fire, water, fading).</li> - <li>Requires extremely secure offline generation process.</li> - <li>Easily lost, stolen, or accidentally discovered.</li> - <li>Compared to hardware wallets, offers poor usability and less robust security for practical use.</li> + <li><strong class="cons">Spending Complexity:</strong> Partial spends difficult/unsafe (key exposure).</li> + <li><strong class="cons">Physical Fragility:</strong> Susceptible to fire, water, decay, accidental damage.</li> + <li><strong class="cons">Generation Risk:</strong> Requires secure, air-gapped generation environment.</li> + <li><strong class="cons">Discovery Risk:</strong> Easily lost, stolen, or viewed accidentally.</li> </ul> - </div> + <p>Modern hardware wallets offer superior security and usability.</p> + </div> </div> </div> <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-airgap" id="card-airgap"> <div class="card-body"> - <h5><i class="bi bi-hdd-network-fill"></i> Air-Gapped Setups</h5> + <h5><i class="bi bi-exclude"></i> Air-Gapped Systems</h5> <div class="card-content-wrapper"> - <p class="summary">Using an offline device (PC, Pi, specific HW wallets) that never connects to internet. Transactions via SD/QR (<span class="term">PSBTs</span>). <strong class="pros">Extremely high online security.</strong></p> + <p class="summary">Network-isolated signer + Online watch-interface. Data relay via SD/QR (<span class="term">PSBT</span>). <strong class="pros">Extreme Network Isolation.</strong></p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAirgap" aria-expanded="false" aria-controls="collapseAirgap"> - Pros & Cons <i class="bi bi-chevron-down"></i> + Protocol & Tradeoffs <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseAirgap"> - <h6>Pros & Cons</h6> - <ul> - <li><strong class="pros">Pros:</strong> Maximum protection against online threats (malware, network attacks).</li> - <li><strong class="cons">Cons:</strong> Requires technical setup/knowledge, more steps per transaction (transferring PSBTs), relies on secure handling of transfer media (SD card).</li> + <h6>Operational Protocol:</h6> + <ol> + <li>Generate unsigned TX (<span class="term">PSBT</span>) on online interface.</li> + <li>Transfer PSBT (SD/QR) to offline signing module.</li> + <li>Authorize/Sign PSBT on secure offline module.</li> + <li>Transfer signed PSBT back to online interface.</li> + <li>Broadcast TX to network.</li> + </ol> + <h6>Tradeoffs:</h6> + <ul> + <li><strong class="pros">Advantage:</strong> Maximum immunity to online malware/network attacks.</li> + <li><strong class="cons">Disadvantage:</strong> Increased operational complexity, potential risks via transfer medium (SD card malware - less common for PSBTs).</li> </ul> - <h6>Examples:</h6> - <p>Coldcard, Seedsigner used in air-gapped mode; dedicated offline computer running Electrum/Sparrow with watch-only wallet online.</p> + <p>Examples: <code>Coldcard</code>, <code>Seedsigner</code>.</p> </div> </div> </div> @@ -532,28 +583,28 @@ <!-- SECTION IV: Core Operations --> <!-- ============================== --> <div class="schema-container cat-operations" data-section-id="section-operations"> - <h2 class="section-title" id="section-operations">IV. Core Wallet Operations</h2> + <h2 class="section-title" id="section-operations"><i class="bi bi-gear-wide-connected"></i> // IV. Core Operations</h2> <div class="row"> <div class="col-lg-6 col-md-6"> <div class="info-card btc-type-operation" id="card-op-setup"> <div class="card-body"> - <h5><i class="bi bi-box-arrow-in-down"></i> Wallet Creation & Setup</h5> + <h5><i class="bi bi-motherboard-fill"></i> Initialization Sequence</h5> <div class="card-content-wrapper"> - <p class="summary">Generate seed phrase securely *on device*. <strong class="critical">Backup seed ACCURATELY & securely (offline, steel recommended)</strong>. Set strong PIN/password. <strong class="critical">VERIFY backup!</strong></p> + <p class="summary">Secure seed generation *on device*. <strong class="critical">Backup seed (offline, steel). VERIFY BACKUP.</strong> Set strong credentials.</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOpSetup" aria-expanded="false" aria-controls="collapseOpSetup"> - Detailed Steps <i class="bi bi-chevron-down"></i> + Protocol Steps <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseOpSetup"> - <h6>Steps:</h6> + <h6>Initialization Protocol:</h6> <ol> - <li>Install Software / Initialize Hardware: Follow official instructions. Verify HW firmware if applicable.</li> - <li>Generate Seed Phrase: Let wallet generate securely. Avoid pre-generated seeds.</li> - <li><strong class="critical">Backup Seed Phrase:</strong> Write down words accurately, in order (#1-12/24). Double check. Store securely offline immediately. Consider steel backups (<a href="https://cryptosteel.com/" target="_blank" rel="noopener noreferrer">Cryptosteel</a>, <a href="https://seedplate.com/" target="_blank" rel="noopener noreferrer">SeedPlate</a>).</li> - <li><strong class="critical">Verify Backup:</strong> Crucial! Re-enter words during setup or use device "check backup" feature *before* funding wallet significantly.</li> - <li>Set PIN/Password: Strong, unique code for device/software access.</li> - <li>Optional: Add BIP-39 Passphrase (See Advanced VI.A).</li> + <li>Firmware Verification/Installation (HW wallets).</li> + <li>Secure Seed Phrase Generation (Device RNG).</li> + <li><strong class="critical">Seed Phrase Backup:</strong> Accurate transcription, secure offline storage (e.g., <a href="https://seedplate.com/" target="_blank" rel="noopener noreferrer">SeedPlate</a>, <a href="https://cryptosteel.com/" target="_blank" rel="noopener noreferrer">Cryptosteel</a>).</li> + <li><strong class="critical">Backup Verification:</strong> Mandatory re-entry or check routine *before* receiving funds.</li> + <li>Set Strong PIN / Password.</li> + <li>Optional: Configure BIP-39 Passphrase (Advanced).</li> </ol> </div> </div> @@ -561,10 +612,10 @@ <div class="col-lg-6 col-md-6"> <div class="info-card btc-type-operation" id="card-op-receive"> <div class="card-body"> - <h5><i class="bi bi-box-arrow-in-down-left"></i> Receiving Bitcoin</h5> + <h5><i class="bi bi-download"></i> Receive Operation</h5> <div class="card-content-wrapper"> - <p class="summary">Generate fresh address. <strong class="critical">Verify address on hardware wallet screen</strong> to prevent clipboard hijacking. Share address/QR with sender.</p> - <!-- No collapse needed --> + <p class="summary">Generate fresh address. <strong class="critical">VERIFY address on HW Trusted Display</strong> vs. host screen. Share Addr/QR.</p> + <!-- Simple operation, less need for collapse --> </div> </div> </div> @@ -572,23 +623,23 @@ <div class="col-lg-6 col-md-6"> <div class="info-card btc-type-operation" id="card-op-send"> <div class="card-body"> - <h5><i class="bi bi-box-arrow-up-right"></i> Sending Bitcoin</h5> + <h5><i class="bi bi-upload"></i> Send Operation</h5> <div class="card-content-wrapper"> - <p class="summary">Enter recipient address (<strong class="critical">double/triple check!</strong>). Enter amount. Set fee (<span class="term">sat/vB</span>). Review details. <strong class="critical">Confirm address/amount on hardware wallet screen.</strong></p> + <p class="summary">Input recipient Addr (<strong class="critical">TRIPLE CHECK</strong>). Set Amount. Set <span class="term">Fee (sat/vB)</span>. Review. <strong class="critical">Confirm Addr/Amount on HW Screen.</strong></p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOpSend" aria-expanded="false" aria-controls="collapseOpSend"> - Detailed Steps <i class="bi bi-chevron-down"></i> + Execution Flow <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseOpSend"> - <h6>Steps:</h6> + <h6>Execution Flow:</h6> <ol> - <li>Enter Recipient Address: Paste/scan. <strong class="critical">Check first/last characters carefully</strong> against intended address.</li> - <li>Enter Amount.</li> - <li>Set Transaction Fee (sat/vB): Check network conditions (<a href="https://mempool.space/" target="_blank" rel="noopener noreferrer">mempool.space</a>). Balance urgency and cost.</li> - <li>Review Transaction Details: Check address, amount, fee on software screen.</li> - <li><strong class="critical">Confirm on Hardware Wallet:</strong> Verify address & amount again on HW trusted screen before physically confirming signature.</li> - <li>Broadcast Transaction.</li> + <li>Recipient Address Input: Paste/Scan. <strong class="critical">Visually verify first/last chars vs. source.</strong></li> + <li>Amount Input.</li> + <li>Fee Setting: Consult <a href="https://mempool.space/" target="_blank" rel="noopener noreferrer">mempool.space</a>. Balance urgency/cost.</li> + <li>Software Review: Check all details on host screen.</li> + <li><strong class="critical">Hardware Confirmation:</strong> Verify address & amount match ON THE DEVICE'S SCREEN before authorizing signature.</li> + <li>Broadcast Signed Transaction.</li> </ol> </div> </div> @@ -596,10 +647,10 @@ <div class="col-lg-6 col-md-6"> <div class="info-card btc-type-operation" id="card-op-check"> <div class="card-body"> - <h5><i class="bi bi-search"></i> Checking Balance & History</h5> + <h5><i class="bi bi-search"></i> Balance/History Query</h5> <div class="card-content-wrapper"> - <p class="summary">Use wallet interface. Optionally use public block explorer (like <a href="https://mempool.space/" target="_blank" rel="noopener noreferrer">mempool.space</a>) with *addresses* (not keys!) - note privacy implications.</p> - <!-- No collapse needed --> + <p class="summary">Use wallet interface. Optional: Public block explorer (<a href="https://mempool.space/" target="_blank" rel="noopener noreferrer">mempool.space</a>) - Input <span class="term">addresses only</span> (privacy leak).</p> + <!-- Simple operation, less need for collapse --> </div> </div> </div> @@ -612,30 +663,28 @@ <!-- SECTION V: Security & Custody --> <!-- ================================== --> <div class="schema-container cat-security" data-section-id="section-security"> - <h2 class="section-title" id="section-security">V. Security & Custody</h2> + <h2 class="section-title" id="section-security"><i class="bi bi-fingerprint"></i> // V. Security Protocols :: OPSEC</h2> <div class="row"> <div class="col-lg-6 col-md-12"> <div class="info-card btc-type-security" id="card-sec-seed"> <div class="card-body"> - <h5><i class="bi bi-shield-lock-fill"></i> Seed Phrase Security (CRITICAL)</h5> + <h5><i class="bi bi-shield-lock-fill"></i> Seed Phrase :: OPSEC Level MAX</h5> <div class="card-content-wrapper"> - <p class="summary">Treat your seed phrase like the ultimate key to your vault. Protect it physically and digitally above all else.</p> + <p class="summary"><strong class="critical">[最重要 - CRITICAL]</strong> Your 12/24 words ARE your Bitcoin. Treat accordingly. Physical/Digital contamination = Total Loss.</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSecSeed" aria-expanded="false" aria-controls="collapseSecSeed"> - Golden Rules <i class="bi bi-chevron-down"></i> + Security Directives <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseSecSeed"> - <strong class="rule">RULE #1: NEVER EVER type, photograph, scan, or digitally input your seed phrase into ANY online or potentially compromised device (computer, phone, password manager, cloud storage, email, etc.).</strong> - <strong class="rule">RULE #2: NEVER speak your seed phrase aloud where it could be recorded or overheard.</strong> - <strong class="rule">RULE #3: NEVER give your seed phrase to ANYONE claiming to be support staff or offering help. Legitimate support NEVER needs your seed.</strong> - <h6>Storage Best Practices:</h6> + <strong class="rule">Directive Alpha: ABSOLUTELY NO DIGITAL INPUT/STORAGE (No photos, typing, cloud, pwd mgrs). Assume ALL networked devices compromised.</strong> + <strong class="rule">Directive Bravo: ZERO TRUST POLICY. NEVER SHARE SEED. "Support" requesting seed = IMMEDIATE SCAM DETECTED.</strong> + <strong class="rule">Directive Charlie: BACKUP PHYSICALLY (STEEL RECOMMENDED), VERIFY ACCURACY, SECURE OFFLINE STORAGE (Redundant/Distributed Recommended).</strong> + <h6>Storage Strategy:</h6> <ul> - <li>Use durable materials (paper minimum, <strong class="term">steel recommended</strong> for fire/water resistance).</li> - <li>Protect from physical threats (fire, flood, corrosion, theft).</li> - <li>Store in secure, private locations (safe, hidden). Consider obscurity.</li> - <li>Redundancy: Consider multiple secure locations or Shamir Backup (Advanced VI.G). Balance security vs. accessibility.</li> - <li>Verification: Ensure backup accuracy. <strong class="term">Test your recovery plan periodically.</strong></li> + <li><span class="pros">Recommended:</span> Verified accurate transcription, Fire/Water/Corrosion proof steel plates, Multiple secure physical locations (consider geographic distribution), Obscurity.</li> + <li><span class="cons">Avoid:</span> Plain paper (fragile), easily discoverable locations, single point of failure for backup.</li> + <li><span class="term">Test Recovery Plan Periodically.</span></li> </ul> </div> </div> @@ -643,98 +692,78 @@ <div class="col-lg-6 col-md-12"> <div class="info-card btc-type-security" id="card-sec-device"> <div class="card-body"> - <h5><i class="bi bi-hdd-fill"></i> Device Security (Hardware Wallets)</h5> + <h5><i class="bi bi-cpu-fill"></i> Hardware Module :: OPSEC</h5> <div class="card-content-wrapper"> - <p class="summary">Secure the physical device and its operation. Buy direct, use strong PIN, verify transactions on screen.</p> + <p class="summary">Source directly. Strong Credentials. <strong class="critical">VERIFY ALL TX DATA ON TRUSTED DISPLAY.</strong> Firmware Hygiene.</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSecDevice" aria-expanded="false" aria-controls="collapseSecDevice"> - Best Practices <i class="bi bi-chevron-down"></i> + Operational Procedures <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseSecDevice"> - <h6>Best Practices:</h6> + <h6>Standard Operating Procedures:</h6> <ul> - <li><strong>Sourcing:</strong> Buy <strong class="term">directly from manufacturer</strong> or authorized reseller. Avoid third-party marketplaces.</li> - <li><strong>Tamper Evidence:</strong> Inspect packaging/device upon arrival.</li> - <li><strong>PIN:</strong> Use a strong, unique PIN (more than 4 digits recommended).</li> - <li><strong>Passphrase:</strong> Understand usage and backup implications (Advanced VI.A).</li> - <li><strong>Firmware Updates:</strong> Keep updated, but verify notifications (check official site), have seed backup ready, consider brief wait unless critical vulnerability.</li> - <li><strong class="critical">Trusted Display:</strong> Always verify addresses and transaction amounts on the device's screen before confirming. Key defense against PC malware.</li> + <li><strong>Acquisition Protocol:</strong> Source <strong class="term">Direct from Manufacturer</strong> / Authorized Reseller ONLY. Verify tamper-evident seals.</li> + <li><strong>Access Control:</strong> Implement strong, unique <span class="term">PIN</span>. Understand and secure optional <span class="term">Passphrase</span> if used (becomes part of seed).</li> + <li><strong class="critical">Trusted Display Verification:</strong> MANDATORY check for every TX/Address generation. Confirms data against host malware (e.g., clipboard hijacks).</li> + <li><strong>Firmware Integrity:</strong> Update only from official sources. Verify release notes. Have seed backup accessible *before* starting update. Consider delaying non-critical updates slightly.</li> + <li><strong>Physical Security:</strong> Protect device from theft and unauthorized access ("Evil Maid Attack").</li> </ul> </div> </div> </div> + <!-- Add SW/Network, Physical, Backup Cards similarly --> <div class="col-lg-6 col-md-12"> <div class="info-card btc-type-security" id="card-sec-sw-network"> <div class="card-body"> - <h5><i class="bi bi-pc-display"></i> Software & Network Security</h5> + <h5><i class="bi bi-broadcast-pin"></i> Host System & Network Hygiene</h5> <div class="card-content-wrapper"> - <p class="summary">Maintain good digital hygiene: Use reputable software, keep OS updated, be wary of phishing, avoid public Wi-Fi for sensitive ops.</p> + <p class="summary">Use reputable wallet software (official sources). Keep OS/Security updated. Vigilant against Phishing. Avoid untrusted Networks.</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSecSw" aria-expanded="false" aria-controls="collapseSecSw"> - Key Points <i class="bi bi-chevron-down"></i> + Defense Layers <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseSecSw"> - <h6>Key Points:</h6> + <h6>Defense Layers:</h6> <ul> - <li><strong>Wallet Software:</strong> Download from official sources only. Verify signatures if possible. Prefer well-maintained, reputable, ideally open-source wallets.</li> - <li><strong>OS Security:</strong> Keep computer/phone OS and security software updated.</li> - <li><strong>Phishing Awareness:</strong> Be extremely skeptical of unsolicited requests/links related to your wallet or funds. Verify via official channels.</li> - <li><strong>Network:</strong> Avoid sensitive operations (seed entry/recovery) on untrusted networks.</li> - <li><strong>Clipboard Malware:</strong> <strong class="critical">Always double-check pasted addresses.</strong> Verify on HW screen if possible.</li> + <li><strong>Software Source:</strong> Download ONLY from official developer/manufacturer websites. Verify signatures if possible. Prefer open-source & well-audited.</li> + <li><strong>System Updates:</strong> Keep Operating System and Anti-Malware definitions current.</li> + <li><strong>Phishing Defense:</strong> Extreme skepticism towards unsolicited emails, DMs, popups requesting wallet interaction or credentials. Verify via known official channels.</li> + <li><strong>Network Security:</strong> Avoid sensitive operations (seed recovery) on public/untrusted Wi-Fi. Consider VPN.</li> + <li><strong class="critical">Clipboard Malware Awareness:</strong> Always re-verify pasted addresses visually. Use HW trusted display confirmation.</li> </ul> </div> </div> </div> <div class="col-lg-6 col-md-12"> - <div class="info-card btc-type-security" id="card-sec-physical"> - <div class="card-body"> - <h5><i class="bi bi-lock-fill"></i> Physical Security</h5> - <div class="card-content-wrapper"> - <p class="summary">Protect hardware wallet from theft/tampering ("Evil Maid"). Protect seed backups from theft, damage, discovery.</p> - <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSecPhys" aria-expanded="false" aria-controls="collapseSecPhys"> - Considerations <i class="bi bi-chevron-down"></i> - </button> - </div> - </div> - <div class="collapse collapse-content" id="collapseSecPhys"> - <h6>Considerations:</h6> - <ul> - <li><strong>Hardware Wallet Device:</strong> Don't leave unattended in insecure places. PIN protects against casual theft. Be aware of sophisticated physical attacks if device is stolen (SE helps).</li> - <li><strong>Seed Phrase Backups:</strong> Treat like physical bearer assets (cash, gold). Think about who might find them, how to protect against fire/flood/theft.</li> - </ul> - </div> - </div> - </div> - <div class="col-lg-6 col-md-12"> <div class="info-card btc-type-security" id="card-sec-backup"> <div class="card-body"> - <h5><i class="bi bi-cloud-download"></i> Backup & Recovery</h5> + <h5><i class="bi bi-server"></i> Backup, Recovery & Succession</h5> <div class="card-content-wrapper"> - <p class="summary"><strong class="term">Seed phrase is the primary backup</strong>, not the device. Have a clear, <strong class="term">tested</strong> recovery plan. Consider estate planning.</p> + <p class="summary"><span class="term">Seed phrase IS the master key.</span> Device is disposable. Have a <strong class="term">tested</strong> recovery protocol. Plan for inheritance/incapacity.</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSecBackup" aria-expanded="false" aria-controls="collapseSecBackup"> - Planning Steps <i class="bi bi-chevron-down"></i> + Contingency Planning <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseSecBackup"> - <h6>Planning Steps:</h6> + <h6>Contingency Protocols:</h6> <ul> - <li><strong>Know the Process:</strong> Understand how to use your seed phrase to restore your wallet on a compatible device/software.</li> - <li><strong>Practice Recovery:</strong> Consider simulating recovery on a testnet wallet or with a small amount to ensure your backup works and you understand the steps *before* an emergency.</li> - <li><strong>Estate Planning:</strong> Crucial for ensuring assets aren't lost upon incapacitation/death. Options include: + <li><strong>Recovery Drill:</strong> Know the exact steps to restore wallet from seed on a compatible interface. Practice with testnet or small amounts *before* needed.</li> + <li><strong>Estate / Succession Planning:</strong> CRITICAL to avoid permanent loss. <ul> - <li>Clear instructions stored securely with trusted executor/lawyer.</li> - <li>Multisignature setups involving trusted parties (family, lawyer, service).</li> - <li>Specialized inheritance services (research carefully).</li> - <li>Examples: <a href="https://keys.casa/bitcoin-inheritance-planning" target="_blank" rel="noopener noreferrer">Casa Inheritance</a>, <a href="https://unchained.com/inheritance/" target="_blank" rel="noopener noreferrer">Unchained Capital Inheritance Protocol</a></li> + <li>Securely documented instructions with trusted executor/lawyer.</li> + <li><span class="term">Multisignature</span> setups distributing control.</li> + <li>Specialized inheritance platforms (Vet carefully!). Examples: <a href="https://keys.casa/bitcoin-inheritance-planning" target="_blank" rel="noopener noreferrer">Casa</a>, <a href="https://unchained.com/inheritance/" target="_blank" rel="noopener noreferrer">Unchained Capital</a>.</li> </ul> </li> + <li><strong>Redundancy:</strong> Multiple secure backups mitigate single point of failure risk (theft, disaster).</li> </ul> </div> </div> </div> + </div> <!-- /.row --> </div> <!-- /.schema-container --> @@ -743,30 +772,29 @@ <!-- SECTION VI: Advanced Operations --> <!-- ==================================== --> <div class="schema-container cat-advanced" data-section-id="section-advanced"> - <h2 class="section-title" id="section-advanced">VI. Advanced Operations & Concepts</h2> + <h2 class="section-title" id="section-advanced"><i class="bi bi-motherboard"></i> // VI. Advanced Configurations</h2> <div class="row"> - <div class="col-lg-4 col-md-6"> + <!-- Populate with cards for Passphrase, Multisig, Node Connect, Coin Control, PSBTs, Fee Bumping, Shamir, Testnet --> + <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-advanced" id="card-adv-passphrase"> <div class="card-body"> - <h5><i class="bi bi-mask"></i> BIP-39 Passphrase ("25th Word")</h5> + <h5><i class="bi bi-mask"></i> BIP-39 Passphrase</h5> <div class="card-content-wrapper"> - <p class="summary">Optional secret word/phrase added to seed creates separate hidden wallets. Enhances security/deniability. <strong class="critical">Forgetting = PERMANENT loss!</strong></p> + <p class="summary">Optional "25th word" added to seed -> Creates separate hidden wallet instance. Security through obscurity/deniability.</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAdvPassphrase" aria-expanded="false" aria-controls="collapseAdvPassphrase"> - Details & Risks <i class="bi bi-chevron-down"></i> + Risks & Use Case <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseAdvPassphrase"> - <h6>Mechanism & Use Cases</h6> + <h6>Functionality:</h6> <ul> - <li>Adds a user-defined secret to the seed for key derivation. `Seed + Passphrase = Different Wallet`.</li> - <li>Use Cases: Plausible deniability (small amount in main wallet, large in passphrase wallet); adds security factor beyond physical seed backup.</li> + <li><code>Seed + Passphrase = Unique Wallet</code>. Passphrase is never stored on device.</li> + <li>Use Case: Plausible deniability under duress (reveal non-passphrase wallet); extra security layer (requires seed + passphrase).</li> </ul> - <h6>CRITICAL Risks</h6> + <h6><strong class="critical">CRITICAL RISK:</strong></h6> <ul> - <li><strong class="critical">Forgetting the exact passphrase (case/space sensitive) means PERMANENT loss</strong> of funds in that wallet. No recovery possible.</li> - <li>Must be backed up securely and separately, or perfectly memorized (risky).</li> - <li>Typing errors lead to different/empty wallets.</li> + <li><strong class="cons">Forgetting exact passphrase = PERMANENT FUND LOSS. NO RECOVERY.</strong> Must be backed up separately/memorized perfectly (risky). Case/space sensitive.</li> </ul> </div> </div> @@ -774,81 +802,87 @@ <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-advanced" id="card-adv-multisig"> <div class="card-body"> - <h5><i class="bi bi-people-fill"></i> Multisignature (Multisig)</h5> + <h5><i class="bi bi-diagram-3-fill"></i> Multisignature (Multisig)</h5> <div class="card-content-wrapper"> - <p class="summary">Requires M-of-N keys (e.g., 2-of-3) to sign. Enhances security, enables shared custody, robust backups.</p> + <p class="summary">M-of-N key scheme (e.g., 2-of-3 signatures required). Distributes control & eliminates single points of failure.</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAdvMultisig" aria-expanded="false" aria-controls="collapseAdvMultisig"> - Setup & Use Cases <i class="bi bi-chevron-down"></i> + Applications <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseAdvMultisig"> - <h6>Setup & Use Cases</h6> + <h6>Applications:</h6> <ul> - <li>Requires coordinator software (Sparrow, Specter, Electrum, Nunchuk, Unchained, Casa) to manage public keys and create/sign transactions (<span class="term">PSBTs</span>).</li> - <li>Use Cases: Eliminates single points of failure (needs multiple device/location compromises); joint accounts; corporate treasury; inheritance planning.</li> - <li>Resource: <a href="https://sparrowwallet.com/docs/multisig-wallet.html" target="_blank" rel="noopener noreferrer">Sparrow Wallet Multisig Guide</a></li> + <li><strong>Enhanced Security:</strong> Requires compromise of multiple keys/devices/locations.</li> + <li><strong>Shared Custody:</strong> Joint accounts, corporate treasury.</li> + <li><strong>Robust Backup/Inheritance:</strong> Distribute keys among user, vault, lawyer, family.</li> </ul> + <p>Setup requires coordinator software (<code>Sparrow</code>, <code>Specter</code>, <code>Nunchuk</code>) using <span class="term">PSBTs</span>.</p> + <ul><li>Resource: <a href="https://sparrowwallet.com/docs/multisig-wallet.html" target="_blank" rel="noopener noreferrer">Sparrow Multisig Guide</a></li></ul> </div> </div> </div> <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-advanced" id="card-adv-node"> <div class="card-body"> - <h5><i class="bi bi-hdd-network"></i> Connect to Full Node</h5> + <h5><i class="bi bi-hdd-network-fill"></i> Connect to Full Node</h5> <div class="card-content-wrapper"> - <p class="summary">Connect wallet to your own <a href="https://bitcoincore.org/" target="_blank" rel="noopener noreferrer">Bitcoin Core</a> node for maximum <span class="term">privacy</span> and <span class="term">trust minimization</span>.</p> + <p class="summary">Interface wallet with own <a href="https://bitcoincore.org/" target="_blank" rel="noopener noreferrer">Bitcoin Core</a> node. <strong class="pros">Maximum Privacy & Trust Minimization.</strong></p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAdvNode" aria-expanded="false" aria-controls="collapseAdvNode"> - Why & How <i class="bi bi-chevron-down"></i> + Rationale <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseAdvNode"> - <h6>Why & How</h6> + <h6>Rationale:</h6> <ul> - <li><strong>Why:</strong> Avoid leaking addresses/transaction history to third-party servers; independently verify Bitcoin rules.</li> - <li><strong>How:</strong> Run Bitcoin Core node (or node packages like Umbrel, Start9). Connect compatible wallets (Sparrow, Specter, Electrum+Server) to node's IP.</li> - <li>Resource: <a href="https://bitcoin.org/en/full-node#choose-your-node" target="_blank" rel="noopener noreferrer">Node implementation options</a></li> + <li><strong>Privacy:</strong> Avoids leaking address/transaction data to third-party servers.</li> + <li><strong>Verification:</strong> Independently validate all network rules and transactions. No need to trust external providers.</li> + <li><strong>Network Health:</strong> Contributes to decentralization.</li> </ul> + <p>Requires running node software (e.g., Bitcoin Core, Umbrel, Start9) and compatible wallet (<code>Sparrow</code>, <code>Specter</code>, <code>Electrum</code> + Server).</p> + <ul><li>Resource: <a href="https://bitcoin.org/en/full-node#choose-your-node" target="_blank" rel="noopener noreferrer">Node Implementation Options</a></li></ul> </div> </div> </div> <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-advanced" id="card-adv-coincontrol"> <div class="card-body"> - <h5><i class="bi bi-coin"></i> Coin Control (UTXO Mgmt)</h5> + <h5><i class="bi bi-vinyl-fill"></i> Coin Control :: UTXO Selection</h5> <div class="card-content-wrapper"> - <p class="summary">Manually select which <span class="term">UTXOs</span> to spend. Enhances privacy, helps manage fees, allows labeling.</p> + <p class="summary">Manually select input <span class="term">UTXOs</span> for spending. Advanced privacy & fee management technique.</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAdvCoinControl" aria-expanded="false" aria-controls="collapseAdvCoinControl"> - Benefits & Wallets <i class="bi bi-chevron-down"></i> + Benefits <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseAdvCoinControl"> - <h6>Benefits & Wallets</h6> + <h6>Benefits:</h6> <ul> - <li><strong>Benefits:</strong> Avoid linking unrelated UTXOs (privacy); strategically select UTXOs for fee optimization; label UTXOs by source.</li> - <li><strong>Wallets:</strong> Electrum, Sparrow, Specter typically offer good coin control features.</li> + <li><strong>Privacy:</strong> Avoids linking potentially unrelated UTXOs; breaks address reuse heuristics. Can segregate UTXO sources (e.g., KYC vs non-KYC - *note chain analysis limitations*).</li> + <li><strong>Fee Optimization:</strong> Select UTXOs to minimize transaction size/cost.</li> + <li><strong>Labeling:</strong> Track origin/purpose of specific UTXOs.</li> </ul> + <p>Requires wallet support (e.g., <code>Electrum</code>, <code>Sparrow</code>, <code>Specter</code>).</p> </div> </div> </div> <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-advanced" id="card-adv-psbt"> <div class="card-body"> - <h5><i class="bi bi-file-earmark-binary"></i> PSBTs (BIP-174)</h5> + <h5><i class="bi bi-file-binary-fill"></i> PSBTs :: Transaction Fragments</h5> <div class="card-content-wrapper"> - <p class="summary">Partially Signed Bitcoin Transaction format. Standard for <span class="term">air-gapped signing</span> and <span class="term">multisig coordination</span>.</p> + <p class="summary">Partially Signed Bitcoin TX format (<a href="https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki" target="_blank" rel="noopener noreferrer">BIP-174</a>). Standard for offline/multisig workflows.</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAdvPsbt" aria-expanded="false" aria-controls="collapseAdvPsbt"> - Use Cases & Link <i class="bi bi-chevron-down"></i> + Workflow Examples <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseAdvPsbt"> - <h6>Use Cases & Link</h6> + <h6>Workflow Examples:</h6> <ul> - <li><strong>Use Cases:</strong> Transfer unsigned transactions to offline signers (Coldcard, Seedsigner) via SD/QR; pass transactions between multiple signers in a multisig setup.</li> - <li>Key Link: <a href="https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki" target="_blank" rel="noopener noreferrer">BIP-174 Specification</a></li> + <li><strong>Air-Gap:</strong> Create unsigned PSBT online -> Transfer (SD/QR) -> Sign offline -> Transfer signed PSBT back -> Broadcast.</li> + <li><strong>Multisig:</strong> Create PSBT -> Pass to signer 1 -> Sign -> Pass to signer 2 -> Sign -> ... -> Broadcast fully signed TX.</li> </ul> </div> </div> @@ -856,41 +890,30 @@ <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-advanced" id="card-adv-fee-bump"> <div class="card-body"> - <h5><i class="bi bi-graph-up-arrow"></i> RBF & CPFP (Fee Bumping)</h5> + <h5><i class="bi bi-graph-up-arrow"></i> Fee Bumping :: RBF & CPFP</h5> <div class="card-content-wrapper"> - <p class="summary"><span class="term">RBF (BIP-125):</span> Replace your stuck transaction with higher fee. <span class="term">CPFP:</span> Spend unconfirmed *incoming* UTXO with high fee.</p> - <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAdvFeeBump" aria-expanded="false" aria-controls="collapseAdvFeeBump"> - Purpose & Link <i class="bi bi-chevron-down"></i> - </button> + <p class="summary"><span class="term">RBF (Replace-By-Fee):</span> Replace own stuck TX w/ higher fee (<a href="https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki" target="_blank" rel="noopener noreferrer">BIP-125</a>). <span class="term">CPFP:</span> Spend stuck *incoming* TX w/ high fee.</p> + <!-- Simple enough, maybe no collapse --> </div> </div> - <div class="collapse collapse-content" id="collapseAdvFeeBump"> - <h6>Purpose & Link</h6> - <ul> - <li><strong>Purpose:</strong> Techniques to increase the effective fee rate of transactions stuck in the mempool due to low fees.</li> - <li><strong>RBF Note:</strong> Requires initial transaction to signal RBF support (wallet feature).</li> - <li>Key Link: <a href="https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki" target="_blank" rel="noopener noreferrer">BIP-125 Specification (RBF)</a></li> - </ul> - </div> </div> </div> <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-advanced" id="card-adv-shamir"> <div class="card-body"> - <h5><i class="bi bi-share-fill"></i> Shamir Backup (SLIP-39)</h5> + <h5><i class="bi bi-intersect"></i> Shamir Backup :: Seed Sharding</h5> <div class="card-content-wrapper"> - <p class="summary">Splits seed into M-of-N shares (e.g., 3-of-5). Increases redundancy/security vs. single backup point.</p> + <p class="summary">Split seed into M-of-N shares (<a href="https://github.com/satoshilabs/slips/blob/master/slip-0039.md" target="_blank" rel="noopener noreferrer">SLIP-39</a>). Requires threshold for recovery. Enhanced redundancy/security.</p> <button class="btn btn-sm details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAdvShamir" aria-expanded="false" aria-controls="collapseAdvShamir"> - Pros, Cons & Link <i class="bi bi-chevron-down"></i> + Tradeoffs <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseAdvShamir"> - <h6>Pros, Cons & Link</h6> + <h6>Tradeoffs:</h6> <ul> - <li><strong class="pros">Pros:</strong> Lose some shares without losing access; attacker needs multiple shares.</li> - <li><strong class="cons">Cons:</strong> More complex setup/recovery; less widely supported than BIP-39 (Trezor T, specific tools).</li> - <li>Key Link: <a href="https://github.com/satoshilabs/slips/blob/master/slip-0039.md" target="_blank" rel="noopener noreferrer">SLIP-39 Specification</a></li> + <li><strong class="pros">Pros:</strong> Tolerate loss of some shares; attacker needs multiple shares.</li> + <li><strong class="cons">Cons:</strong> Complex setup/recovery; less wallet support than BIP-39 (Trezor T primarily).</li> </ul> </div> </div> @@ -898,10 +921,9 @@ <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-advanced" id="card-adv-testnet"> <div class="card-body"> - <h5><i class="bi bi-joystick"></i> Testnet</h5> + <h5><i class="bi bi-joystick"></i> Testnet :: Simulation Grid</h5> <div class="card-content-wrapper"> - <p class="summary">Parallel Bitcoin network with valueless coins. Safely test features, practice recovery, learn without risking real funds.</p> - <!-- No collapse needed --> + <p class="summary">Parallel Bitcoin network using valueless coins. Safely test features, practice recovery, learn protocols.</p> </div> </div> </div> @@ -914,142 +936,139 @@ <!-- SECTION VII: Hardware Wallet Comparison --> <!-- ========================================= --> <div class="schema-container cat-comparison" data-section-id="section-comparison"> - <h2 class="section-title" id="section-comparison">VII. Hardware Wallet Comparison</h2> + <h2 class="section-title" id="section-comparison"><i class="bi bi-motherboard-fill"></i> // VII. Hardware Module Matrix</h2> <div class="row"> <div class="col-12"> <div class="info-card btc-type-comparison" id="card-compare-factors"> <div class="card-body"> - <h5 class="text-center"><i class="bi bi-bar-chart-line"></i> Key Comparison Factors</h5> + <h5 class="text-center"><i class="bi bi-sliders"></i> Comparison Vectors</h5> <div class="card-content-wrapper"> - <p class="summary text-center">Evaluate HW wallets based on: Security Model (SE vs MCU), Source Code (Open/Closed), Bitcoin Focus, Air-Gap capability, UI/UX, Advanced Features, Price, Reputation.</p> + <p class="summary text-center">Evaluate modules based on: Security Arch (SE/MCU), Source Code Auditability, Bitcoin Focus, Air-Gap Protocol, UX/UI, Advanced Feature Set, Cost, Vendor Trust.</p> <button class="btn btn-sm details-toggle mx-auto" type="button" data-bs-toggle="collapse" data-bs-target="#collapseCompareFactors" aria-expanded="false" aria-controls="collapseCompareFactors"> - Factor Details <i class="bi bi-chevron-down"></i> + Vector Details <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseCompareFactors"> - <h6>Factor Details:</h6> + <h6>Vector Analysis:</h6> <ul> - <li><strong>Security Model:</strong> Secure Element (dedicated chip, often closed) vs. Generic MCU (standard chip, allows open HW/FW, relies on software security).</li> - <li><strong>Source Code:</strong> Open (auditable, transparent) vs. Closed (trust manufacturer). Applies to Firmware and sometimes Hardware design.</li> - <li><strong>Bitcoin Focus:</strong> Reduces attack surface vs. Multi-Coin convenience.</li> - <li><strong>Air-Gap:</strong> True air-gap (microSD, QR, NFC) vs. USB/Bluetooth connection required.</li> - <li><strong>User Interface:</strong> Ease of use, screen type/size, buttons vs. touch.</li> - <li><strong>Advanced Features:</strong> Support for Passphrases, Multisig (PSBT), Coin Control, Shamir, etc.</li> - <li><strong>Price Point.</strong></li> - <li><strong>Reputation:</strong> Manufacturer history, community trust, security incident handling.</li> + <li><strong>Security Arch:</strong> Secure Element (Dedicated, often closed) vs. Generic MCU (Open potential, relies on SW hardening).</li> + <li><strong>Source Code:</strong> Open (Verifiable) vs. Closed (Trust-based). Firmware & Hardware.</li> + <li><strong>Coin Support:</strong> Bitcoin-Only (Reduced attack surface) vs. Multi-Coin (Convenience, increased complexity).</li> + <li><strong>Air-Gap:</strong> True air-gap (SD/QR/NFC) vs. USB/Bluetooth dependent.</li> + <li><strong>UX/UI:</strong> Interface simplicity, screen quality, input method.</li> + <li><strong>Features:</strong> Passphrase, Multisig (PSBT), Coin Control, Shamir etc. support level.</li> + <li><strong>Cost.</strong></li> + <li><strong>Vendor Reputation:</strong> History, security posture, community trust.</li> </ul> </div> </div> </div> <!-- Specific Wallet Cards --> - <div class="col-lg-4 col-md-6"> - <div class="info-card btc-type-comparison comparison-item" id="card-compare-trezor"> + <div class="col-lg-4 col-md-6"> + <div class="info-card btc-type-comparison comparison-item" id="card-compare-trezor"> <div class="card-body"> - <h5><i class="bi bi-unlock"></i> Trezor (T/Safe 3)</h5> + <h5><i class="bi bi-unlock-fill"></i> Trezor (T/Safe 3)</h5> <div class="card-content-wrapper"> - <p class="summary"><strong class="pros">Pros:</strong> Open source history (T HW/FW, Safe 3 FW), user-friendly Suite, good passphrase/SLIP-39 (T) support, Safe 3 adds SE. <strong class="cons">Cons:</strong> Model T=MCU, Safe 3 SE=closed, not air-gapped.</p> + <p class="summary"><span class="pros">[+] Open Source History, User-Friendly Suite, Passphrase/SLIP-39 (T), Safe 3 adds SE.</span> <span class="cons">[-] Model T=MCU, Safe 3 SE=closed, No Air-Gap.</span></p> <p><a href="https://trezor.io/" target="_blank" rel="noopener noreferrer">trezor.io</a></p> </div> </div> - </div> - </div> - <div class="col-lg-4 col-md-6"> - <div class="info-card btc-type-comparison comparison-item" id="card-compare-coldcard"> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card btc-type-comparison comparison-item" id="card-compare-coldcard"> <div class="card-body"> - <h5><i class="bi bi-calculator"></i> Coldcard (Mk4/Q1)</h5> + <h5><i class="bi bi-calculator-fill"></i> Coldcard (Mk4/Q1)</h5> <div class="card-content-wrapper"> - <p class="summary"><strong class="pros">Pros:</strong> Bitcoin-only, high security focus, true air-gap (SD/NFC/USB), excellent PSBT/multisig, open source FW, strong physical security. <strong class="cons">Cons:</strong> Steeper learning curve, needs coordinator SW, basic UI, Mk4=MCU.</p> - <p><a href="https://coldcard.com/" target="_blank" rel="noopener noreferrer">coldcard.com</a></p> + <p class="summary"><span class="pros">[+] Bitcoin-Only, High Security Rep, True Air-Gap (SD/NFC), Top PSBT/Multisig, Open FW, Physical Security++.</span> <span class="cons">[-] Steep Learning Curve, Needs Coordinator SW, Basic UI, Mk4=MCU.</span></p> + <p><a href="https://coldcard.com/" target="_blank" rel="noopener noreferrer">coldcard.com</a></p> </div> </div> - </div> - </div> - <div class="col-lg-4 col-md-6"> - <div class="info-card btc-type-comparison comparison-item" id="card-compare-ledger"> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card btc-type-comparison comparison-item" id="card-compare-ledger"> <div class="card-body"> - <h5><i class="bi bi-usb-symbol"></i> Ledger (Nano/Stax)</h5> + <h5><i class="bi bi-usb-fill"></i> Ledger (Nano/Stax)</h5> <div class="card-content-wrapper"> - <p class="summary"><strong class="pros">Pros:</strong> Uses SE, wide coin support, popular, beginner-friendly Ledger Live. <strong class="cons">Cons:</strong> Closed source FW/SE, "Recover" controversy, past data breach, relies on Ledger Live.</p> + <p class="summary"><span class="pros">[+] Uses SE, Wide Coin Support, Popular, Ledger Live UI.</span> <span class="cons">[-] Closed Source FW/SE, "Recover" Controversy, Past Data Breach, Relies on Ledger Live.</span></p> <p><a href="https://www.ledger.com/" target="_blank" rel="noopener noreferrer">ledger.com</a></p> </div> </div> - </div> - </div> - <div class="col-lg-4 col-md-6"> - <div class="info-card btc-type-comparison comparison-item" id="card-compare-bitbox"> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card btc-type-comparison comparison-item" id="card-compare-bitbox"> <div class="card-body"> - <h5><i class="bi bi-box"></i> BitBox02 (BTC-Only)</h5> + <h5><i class="bi bi-box-fill"></i> BitBox02 (BTC-Only)</h5> <div class="card-content-wrapper"> - <p class="summary"><strong class="pros">Pros:</strong> Good security/usability (SE + open FW elements), minimalist, BTC-only option, good passphrase/multisig via app. <strong class="cons">Cons:</strong> Requires BitBoxApp, less air-gap flexibility.</p> + <p class="summary"><span class="pros">[+] Good Security/UX (SE + Open FW parts), Minimalist, BTC-Only Option, Good App Integration.</span> <span class="cons">[-] Requires BitBoxApp, Limited Air-Gap.</span></p> <p><a href="https://bitbox.swiss/" target="_blank" rel="noopener noreferrer">bitbox.swiss</a></p> </div> </div> - </div> - </div> - <div class="col-lg-4 col-md-6"> - <div class="info-card btc-type-comparison comparison-item" id="card-compare-seedsigner"> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card btc-type-comparison comparison-item" id="card-compare-seedsigner"> <div class="card-body"> - <h5><i class="bi bi-qr-code"></i> Seedsigner (DIY)</h5> + <h5><i class="bi bi-qr-code-scan"></i> Seedsigner (DIY)</h5> <div class="card-content-wrapper"> - <p class="summary"><strong class="pros">Pros:</strong> Low cost, DIY/educational, fully air-gapped (QR), stateless, fully open source HW/SW. <strong class="cons">Cons:</strong> Requires assembly/setup, usability varies, slower QR process.</p> + <p class="summary"><span class="pros">[+] Low Cost, DIY/Edu, Fully Air-Gapped (QR), Stateless Option, Fully Open Source HW/SW.</span> <span class="cons">[-] Requires Assembly/Setup, UX Depends on Parts, Slower QR.</span></p> <p><a href="https://seedsigner.com/" target="_blank" rel="noopener noreferrer">seedsigner.com</a></p> </div> </div> - </div> - </div> - <!-- Add Jade & Passport similarly --> - <div class="col-lg-4 col-md-6"> - <div class="info-card btc-type-comparison comparison-item" id="card-compare-jade"> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card btc-type-comparison comparison-item" id="card-compare-jade"> <div class="card-body"> - <h5><i class="bi bi-camera"></i> Blockstream Jade</h5> + <h5><i class="bi bi-camera-fill"></i> Blockstream Jade</h5> <div class="card-content-wrapper"> - <p class="summary"><strong class="pros">Pros:</strong> Affordable, Bitcoin-focused, optional stateless/blind oracle, QR air-gap, open source HW/FW. <strong class="cons">Cons:</strong> Oracle requires trust (optional), basic UI.</p> - <p><a href="https://blockstream.com/jade/" target="_blank" rel="noopener noreferrer">blockstream.com/jade/</a></p> + <p class="summary"><span class="pros">[+] Affordable, BTC-Focused, Stateless/Blind Oracle option, QR Air-Gap, Open Source HW/FW.</span> <span class="cons">[-] Oracle requires trust (optional), Basic UI.</span></p> + <p><a href="https://blockstream.com/jade/" target="_blank" rel="noopener noreferrer">blockstream.com/jade/</a></p> </div> </div> - </div> - </div> - <div class="col-lg-4 col-md-6"> - <div class="info-card btc-type-comparison comparison-item" id="card-compare-passport"> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card btc-type-comparison comparison-item" id="card-compare-passport"> <div class="card-body"> - <h5><i class="bi bi-passport"></i> Foundation Passport</h5> + <h5><i class="bi bi-passport-fill"></i> Foundation Passport</h5> <div class="card-content-wrapper"> - <p class="summary"><strong class="pros">Pros:</strong> Premium design, Bitcoin-focused, air-gapped (QR/microSD), security features, open source FW. <strong class="cons">Cons:</strong> Higher price, relies on app/coordinator.</p> - <p><a href="https://foundationdevices.com/" target="_blank" rel="noopener noreferrer">foundationdevices.com</a></p> + <p class="summary"><span class="pros">[+] Premium Design, BTC-Focused, Air-Gapped (QR/SD), Security Focus, Open Source FW.</span> <span class="cons">[-] Higher Price, Relies on App/Coordinator.</span></p> + <p><a href="https://foundationdevices.com/" target="_blank" rel="noopener noreferrer">foundationdevices.com</a></p> </div> </div> - </div> - </div> + </div> + </div> + <div class="col-lg-4 col-md-6"> + <div class="info-card btc-type-comparison comparison-item" id="card-compare-choice"> + <div class="card-body"> + <h5 class="text-center"><i class="bi bi-check2-square"></i> Optimal Module Selection</h5> + <div class="card-content-wrapper"> + <p class="summary text-center">Selection Matrix: Factor in Tech Skill, Budget, Altcoin Need, Air-Gap Requirement, Open Source Preference, Feature Needs (Multisig), Vendor Trust. <strong class="term">Analyze tradeoffs for your threat model.</strong></p> + </div> + </div> + </div> + </div> </div> <!-- /.row --> - <div class="row"> - <div class="col-12"> - <div class="info-card btc-type-comparison" id="card-compare-choice"> - <div class="card-body"> - <h5 class="text-center"><i class="bi bi-check2-square"></i> Which is Right for You?</h5> - <div class="card-content-wrapper"> - <p class="summary text-center">Consider technical comfort, budget, altcoin needs, air-gap preference, open vs. closed source importance, required advanced features, and trust. No single "best" wallet exists; understand the trade-offs for your specific needs.</p> - </div> - </div> - </div> - </div> - </div> </div> <!-- /.schema-container --> <!-- =============================================== --> <!-- SECTION VIII: Common Issues & How People Lose --> <!-- =============================================== --> - <div class="schema-container cat-pitfalls" data-section-id="section-pitfalls"> - <h2 class="section-title" id="section-pitfalls">VIII. Common Issues & How People Lose Bitcoin</h2> + <div class="schema-container cat-pitfalls" data-section-id="section-pitfalls"> + <h2 class="section-title" id="section-pitfalls"><i class="bi bi-exclamation-diamond-fill"></i> // VIII. Threat Vectors & Failure Modes</h2> <div class="row"> <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-pitfall" id="card-pitfall-seed"> <div class="card-body"> - <h5><i class="bi bi-trash"></i> Seed Phrase Loss/Errors</h5> + <h5><i class="bi bi-journal-x"></i> Seed Phrase Compromise/Loss</h5> <div class="card-content-wrapper"> - <p class="summary"><strong class="cons">Most common failure point!</strong> Physical loss, incorrect backup (words/order), backing up wrong seed, forgetting/losing passphrase.</p> + <p class="summary"><strong class="cons">FAILURE MODE #1:</strong> Physical loss/damage, incorrect backup transcription, backing up wrong initial seed, lost/forgotten passphrase.</p> </div> </div> </div> @@ -1057,9 +1076,9 @@ <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-pitfall" id="card-pitfall-phishing"> <div class="card-body"> - <h5><i class="bi bi-person-badge"></i> Phishing / Social Engineering</h5> + <h5><i class="bi bi-broadcast"></i> Phishing / Social Engineering</h5> <div class="card-content-wrapper"> - <p class="summary"><strong class="cons">Instant theft!</strong> Entering seed into fake sites/apps, tricked by fake "support" asking for seed.</p> + <p class="summary"><strong class="cons">FAILURE MODE #2:</strong> User Deception -> Seed revealed to fake site/app/support. Results in immediate, total loss.</p> </div> </div> </div> @@ -1067,9 +1086,9 @@ <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-pitfall" id="card-pitfall-device"> <div class="card-body"> - <h5><i class="bi bi-pc-horizontal"></i> Device/Software Issues</h5> + <h5><i class="bi bi-hdd-rack-fill"></i> Device/Software Failure</h5> <div class="card-content-wrapper"> - <p class="summary">Forgetting PIN (needs seed recovery), accidental wipe without *tested* backup, rare software bugs.</p> + <p class="summary">Forgotten PIN (requires seed), accidental wipe <span class="term">without verified backup</span>, rare critical software bugs.</p> </div> </div> </div> @@ -1077,9 +1096,9 @@ <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-pitfall" id="card-pitfall-malware"> <div class="card-body"> - <h5><i class="bi bi-bug"></i> Malware</h5> + <h5><i class="bi bi-virus"></i> Host System Malware</h5> <div class="card-content-wrapper"> - <p class="summary">Clipboard hijacking (check HW screen!), keyloggers (risk for SW wallets), fake wallet apps.</p> + <p class="summary">Clipboard hijacker (verify HW screen!), keyloggers (risk SW), fake wallet apps.</p> </div> </div> </div> @@ -1087,9 +1106,9 @@ <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-pitfall" id="card-pitfall-physical"> <div class="card-body"> - <h5><i class="bi bi-person-bounding-box"></i> Physical Access / Theft</h5> + <h5><i class="bi bi-person-fill-x"></i> Physical Compromise</h5> <div class="card-content-wrapper"> - <p class="summary">Seed backup found/stolen, unsecured HW stolen (PIN/passphrase are defenses), coercion, insider theft.</p> + <p class="summary">Seed backup theft/discovery, unsecured HW theft (PIN/Passphrase=defense), coercion, insider theft.</p> </div> </div> </div> @@ -1097,9 +1116,9 @@ <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-pitfall" id="card-pitfall-supply"> <div class="card-body"> - <h5><i class="bi bi-box-seam"></i> Supply Chain / Bad Wallets</h5> + <h5><i class="bi bi-truck"></i> Supply Chain / Bad Vendor</h5> <div class="card-content-wrapper"> - <p class="summary">Tampered device (rare for reputable vendors), using incompetent/malicious wallets.</p> + <p class="summary">Tampered device (buy direct!), using flawed/malicious/unknown wallet interfaces.</p> </div> </div> </div> @@ -1107,9 +1126,9 @@ <div class="col-lg-4 col-md-6"> <div class="info-card btc-type-pitfall" id="card-pitfall-estate"> <div class="card-body"> - <h5><i class="bi bi-person-x"></i> Lack of Estate Planning</h5> + <h5><i class="bi bi-person-slash"></i> Succession Failure</h5> <div class="card-content-wrapper"> - <p class="summary">Funds become inaccessible upon owner's death/incapacitation.</p> + <p class="summary">Lack of estate planning -> Funds permanently inaccessible after owner death/incapacity.</p> </div> </div> </div> @@ -1120,22 +1139,23 @@ <!-- ======================= --> <!-- SECTION IX: Glossary --> <!-- ======================= --> - <div class="schema-container cat-glossary" data-section-id="section-glossary"> - <h2 class="section-title" id="section-glossary">IX. Glossary</h2> + <div class="schema-container cat-glossary" data-section-id="section-glossary"> + <h2 class="section-title" id="section-glossary"><i class="bi bi-book-half"></i> // IX. Terminology Lexicon</h2> <div class="row"> <div class="col-12"> <div class="info-card btc-type-glossary" id="card-glossary"> <div class="card-body"> - <h5 class="text-center"><i class="bi bi-book-half"></i> Key Terms</h5> + <h5 class="text-center"><i class="bi bi-translate"></i> Protocol Glossary</h5> <div class="card-content-wrapper"> - <p class="summary text-center">Definitions for essential Bitcoin wallet terminology.</p> + <p class="summary text-center">Definitions for core Bitcoin & Wallet terminology.</p> <button class="btn btn-sm details-toggle mx-auto" type="button" data-bs-toggle="collapse" data-bs-target="#collapseGlossary" aria-expanded="false" aria-controls="collapseGlossary"> - View Glossary <i class="bi bi-chevron-down"></i> + Access Lexicon <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseGlossary"> <dl> + <!-- Populate DL with terms from outline --> <dt>Address</dt><dd>Identifier used to receive Bitcoin (e.g., starts with 1, 3, bc1q, bc1p).</dd> <dt>Air Gap</dt><dd>Keeping a device (signer) physically isolated from network connections.</dd> <dt>BIP-32</dt><dd>Standard for Hierarchical Deterministic (HD) wallets, deriving keys from a master seed.</dd> @@ -1194,21 +1214,21 @@ <!-- SECTION X: Further Resources --> <!-- ========================== --> <div class="schema-container cat-resources" data-section-id="section-resources"> - <h2 class="section-title" id="section-resources">X. Further Resources</h2> + <h2 class="section-title" id="section-resources"><i class="bi bi-compass-fill"></i> // X. External Network Nodes</h2> <div class="row"> <div class="col-12"> <div class="info-card btc-type-resource" id="card-resources"> <div class="card-body"> - <h5 class="text-center"><i class="bi bi-link-45deg"></i> Links & Education</h5> + <h5 class="text-center"><i class="bi bi-link-45deg"></i> Intelligence & Tools</h5> <div class="card-content-wrapper"> - <p class="summary text-center">Links to wallets, block explorers, educational sites, and the author's resources.</p> + <p class="summary text-center">Links to essential wallet interfaces, block explorers, educational archives, and author's datasets.</p> <button class="btn btn-sm details-toggle mx-auto" type="button" data-bs-toggle="collapse" data-bs-target="#collapseResources" aria-expanded="false" aria-controls="collapseResources"> - View Links <i class="bi bi-chevron-down"></i> + Access Resource Index <i class="bi bi-chevron-down"></i> </button> </div> </div> <div class="collapse collapse-content" id="collapseResources"> - <h6>A. Wallet Software:</h6> + <h6>A. Wallet Interfaces (Software):</h6> <ul> <li><a href="https://electrum.org/" target="_blank" rel="noopener noreferrer">Electrum</a></li> <li><a href="https://sparrowwallet.com/" target="_blank" rel="noopener noreferrer">Sparrow Wallet</a></li> @@ -1216,7 +1236,7 @@ <li><a href="https://bluewallet.io/" target="_blank" rel="noopener noreferrer">BlueWallet</a></li> <li><a href="https://nunchuk.io/" target="_blank" rel="noopener noreferrer">Nunchuk</a> (Multisig focus)</li> </ul> - <h6>B. Hardware Wallets:</h6> + <h6>B. Hardware Modules:</h6> <ul> <li><a href="https://trezor.io/" target="_blank" rel="noopener noreferrer">Trezor</a></li> <li><a href="https://coldcard.com/" target="_blank" rel="noopener noreferrer">Coldcard</a></li> @@ -1226,21 +1246,20 @@ <li><a href="https://blockstream.com/jade/" target="_blank" rel="noopener noreferrer">Blockstream Jade</a></li> <li><a href="https://foundationdevices.com/" target="_blank" rel="noopener noreferrer">Foundation Devices</a></li> </ul> - <h6>C. Block Explorers:</h6> + <h6>C. Network Explorers:</h6> <ul> <li><a href="https://mempool.space/" target="_blank" rel="noopener noreferrer">mempool.space</a></li> <li><a href="https://blockstream.info/" target="_blank" rel="noopener noreferrer">Blockstream.info</a></li> </ul> - <h6>D. Education & Information:</h6> + <h6>D. Knowledge Archives:</h6> <ul> <li><a href="https://bitcoin.org/en/" target="_blank" rel="noopener noreferrer">Bitcoin.org</a></li> <li><a href="https://bitcoin.page/" target="_blank" rel="noopener noreferrer">bitcoin.page</a></li> <li><a href="https://www.lopp.net/bitcoin-information.html" target="_blank" rel="noopener noreferrer">Lopp.net Bitcoin Resources</a></li> <li><a href="https://en.bitcoin.it/wiki/Main_Page" target="_blank" rel="noopener noreferrer">Bitcoin Wiki</a></li> <li><a href="https://bitcoinops.org/" target="_blank" rel="noopener noreferrer">Bitcoin Optech</a> (Technical)</li> - <li><a href="https://bitcointv.com/" target="_blank" rel="noopener noreferrer">Bitcoin TV</a> (Video)</li> </ul> - <h6>E. Author's Resources:</h6> + <h6>E. Author's Datasets:</h6> <ul> <li><a href="https://walletrecovery.info/articles/" target="_blank" rel="noopener noreferrer">WalletRecovery.info Articles</a></li> <li><a href="https://davidveksler.substack.com/archive" target="_blank" rel="noopener noreferrer">David Veksler Substack Archive</a></li> @@ -1261,53 +1280,27 @@ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> <script> -// Simple script for dynamic year and potentially future interactions document.addEventListener('DOMContentLoaded', () => { - // --- Update footer year dynamically --- const footerYearEl = document.getElementById('footer-year'); if (footerYearEl) { - footerYearEl.textContent = `© ${new Date().getFullYear()} David Veksler`; + footerYearEl.textContent = `Cyberpunk Wallet Matrix v2.1 - © ${new Date().getFullYear()} David Veksler`; } - // --- Toggle Chevron Icons on Collapse Buttons --- const collapseElements = document.querySelectorAll('.collapse'); collapseElements.forEach(collapseEl => { - // Find the button targeting this collapse element const button = document.querySelector(`.details-toggle[data-bs-target="#${collapseEl.id}"]`); const icon = button ? button.querySelector('.bi') : null; - if (button && icon) { const updateIcon = (isShown) => { - if (isShown) { - icon.classList.remove('bi-chevron-down'); - icon.classList.add('bi-chevron-up'); - } else { - icon.classList.remove('bi-chevron-up'); - icon.classList.add('bi-chevron-down'); - } + icon.classList.toggle('bi-chevron-up', isShown); + icon.classList.toggle('bi-chevron-down', !isShown); }; - - // Set initial state based on whether the collapse element starts shown updateIcon(collapseEl.classList.contains('show')); - - // Use Bootstrap events for reliability - collapseEl.addEventListener('show.bs.collapse', () => { - updateIcon(true); - }); - - collapseEl.addEventListener('hide.bs.collapse', () => { - updateIcon(false); - }); + collapseEl.addEventListener('show.bs.collapse', () => updateIcon(true)); + collapseEl.addEventListener('hide.bs.collapse', () => updateIcon(false)); } }); - - // --- Placeholder for LeaderLine/Highlighting Logic --- - // The hover/dimming/line drawing logic from the DB example would go here - // if complex interactivity is desired later. For now, this basic structure - // focuses on content presentation and Bootstrap collapse functionality. }); </script> -<!-- Cloudflare Beacon --> -<!-- <script defer src="https://static.cloudflareinsights.com/beacon.min.js/..." data-cf-beacon='{"token": "YOUR_TOKEN"}'></script> --> </body> </html> \ No newline at end of file