# Crypto Wallets

📁 Crypto Wallets — Chapter Description

This chapter documents the setup, use, and maintenance of cryptocurrency wallets, with a focus on self-custody, security, and interoperability across devices and nodes.

It covers both software wallets (e.g. Sparrow Wallet, Ledger Live) and hardware wallets (e.g. Coldcard, Ledger Stax, Trezor Model T), including their integration with personal infrastructure such as full nodes.

The emphasis is on maintaining control over private keys, ensuring verifiable and reproducible setups, and documenting practical workflows such as transactions, updates, and recovery procedures.

Topics include wallet installation and upgrades, hardware wallet pairing, node connectivity, backup and recovery strategies, and security considerations.

This chapter reflects a self-sovereign approach to digital assets, prioritising open-source tools, local verification, and minimal trust in third parties.

# Ledger Live AppImage on Linux Mint — Persistent Launcher & Update Workflow

## 🎯 Objective

Create and maintain a stable Ledger Live setup on Linux Mint that:

- uses a **custom persistent icon**
- survives **log out / reboot**
- continues to work after **AppImage updates**
- avoids repeated manual configuration

---

## 🧩 Overview

Ledger Live is run as an AppImage stored in a fixed location, with a `.desktop` launcher pointing to:

- a **static AppImage filename**
- a **separate, permanent icon file**

This ensures updates only affect the binary, not the launcher or icon.

---

## ⚙️ Folder Structure

<div class="relative w-full mt-4 mb-1" id="bkmrk-%7E%2Fappimages%2F%E2%94%9C%E2%94%80%E2%94%80-ledg"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%7E%2Fappimages%2F%E2%94%9C%E2%94%80%E2%94%80-ledg-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">~/AppImages/  
├── ledger-live.AppImage  
└── icons/  
└── ledger.png</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>- `ledger-live.AppImage` → replaced on updates
- `ledger.png` → permanent icon (never changes)

---

## 🧾 Desktop Launcher

Location:

<div class="relative w-full mt-4 mb-1" id="bkmrk-%7E%2Fdesktop%2Fledger-liv"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%7E%2Fdesktop%2Fledger-liv-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">~/Desktop/ledger-live.desktop</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Contents:

<div class="relative w-full mt-4 mb-1" id="bkmrk-%5Bdesktop-entry%5Dtype%3D"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%5Bdesktop-entry%5Dtype%3D-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">[Desktop Entry]  
Type=Application  
Name=Ledger Live  
Exec=/home/coolbaron/AppImages/ledger-live.AppImage  
Icon=/home/coolbaron/AppImages/icons/ledger.png  
Terminal=false  
Categories=Finance;</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 🧠 Key Principle

The setup separates responsibilities:

- **AppImage = replaceable component (software)**
- **Icon = static asset (visual identity)**
- **Launcher = fixed reference (glue)**

---

# 🔄 Update Workflow

## 1. Download new version

Saved to:

<div class="relative w-full mt-4 mb-1" id="bkmrk-%7E%2Fdownloads%2Fledger-l"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%7E%2Fdownloads%2Fledger-l-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">~/Downloads/ledger-live-desktop-&lt;version&gt;.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 2. Verify download (recommended)

<div class="relative w-full mt-4 mb-1" id="bkmrk-ls--lh-%7E%2Fdownloads-%7C"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ls--lh-%7E%2Fdownloads-%7C-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">ls</span> <span class="ͼu">-lh</span> ~/Downloads | <span class="ͼs">grep</span> ledger</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Expected size: ~150MB+

---

## 3. Replace existing AppImage (safe method)

<div class="relative w-full mt-4 mb-1" id="bkmrk-mv-%7E%2Fdownloads%2Fledge"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mv-%7E%2Fdownloads%2Fledge-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">mv</span> ~/Downloads/ledger-live-desktop-2*.AppImage ~/AppImages/ledger-live.AppImage  
<span class="ͼs">chmod</span> <span class="ͼn">+</span>x ~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 4. Test before use

<div class="relative w-full mt-4 mb-1" id="bkmrk-%7E%2Fappimages%2Fledger-l"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%7E%2Fappimages%2Fledger-l-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 🖼️ Icon Handling

Icon location:

<div class="relative w-full mt-4 mb-1" id="bkmrk-%2Fhome%2Fcoolbaron%2Fappi"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%2Fhome%2Fcoolbaron%2Fappi-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">/home/coolbaron/AppImages/icons/ledger.png</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>### ✔ Behaviour

- Not affected by updates
- Not tied to Ledger Live version
- No need to re-download

### ❗ Do NOT

- delete or move the icon
- change the icon path

---

# ⚡ Auto vs Manual Updates

## 🧠 In-App Auto Update Behaviour

When clicking **“Update” inside Ledger Live**:

- downloads a new AppImage (usually to `~/Downloads` or `/tmp`)
- launches the new version
- does **not reliably**: 
    - replace existing AppImage
    - preserve filename
    - remove older versions

---

## ⚠️ Impact on This Setup

Your launcher points to:

<div class="relative w-full mt-4 mb-1" id="bkmrk-exec%3D%2Fhome%2Fcoolbaron"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-exec%3D%2Fhome%2Fcoolbaron-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">Exec=/home/coolbaron/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>If auto-update downloads a new version:

- Desktop shortcut → still opens old version
- New version → only runs manually
- Multiple AppImages may accumulate

---

## ❌ Why Auto Update Is Not Ideal

- breaks single-file structure
- introduces version drift
- creates duplicate binaries
- reduces predictability

---

## ✅ Recommended Approach — Manual Update

<div class="relative w-full mt-4 mb-1" id="bkmrk-mv-%7E%2Fdownloads%2Fledge-2"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mv-%7E%2Fdownloads%2Fledge-3"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">mv</span> ~/Downloads/ledger-live-desktop-2*.AppImage ~/AppImages/ledger-live.AppImage  
<span class="ͼs">chmod</span> <span class="ͼn">+</span>x ~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>### ✔ Benefits

- deterministic behaviour
- single source of truth
- launcher always correct
- no duplicates

---

## 🔁 Optional Hybrid Approach

1. Allow Ledger Live to download update
2. Then manually replace:

<div class="relative w-full mt-4 mb-1" id="bkmrk-ls--lh-%7E%2Fdownloads-%7C-2"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ls--lh-%7E%2Fdownloads-%7C-3"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">ls</span> <span class="ͼu">-lh</span> ~/Downloads | <span class="ͼs">grep</span> ledger  
<span class="ͼs">mv</span> ~/Downloads/ledger-live-desktop-2*.AppImage ~/AppImages/ledger-live.AppImage  
<span class="ͼs">chmod</span> <span class="ͼn">+</span>x ~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## ⚠️ Common Pitfalls

### Corrupted AppImage (e.g. 75 bytes)

Symptoms:

<div class="relative w-full mt-4 mb-1" id="bkmrk-ls--lh-%7E%2Fappimages%2Fl"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ls--lh-%7E%2Fappimages%2Fl-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">ls</span> <span class="ͼu">-lh</span> ~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Shows very small file size

➡️ Cause:

- incomplete download
- incorrect wildcard match

➡️ Fix:

- delete file
- re-download
- move explicitly

---

### Duplicate AppImages

<div class="relative w-full mt-4 mb-1" id="bkmrk-ledger-live-desktop-"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ledger-live-desktop--1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">ledger-live-desktop-2.x.x.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>➡️ Remove duplicates and keep:

<div class="relative w-full mt-4 mb-1" id="bkmrk-ledger-live.appimage-1"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ledger-live.appimage-2"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

### Launcher failure

Error:

> “There was an error launching the application”

➡️ Cause:

- broken AppImage

➡️ Fix:

- replace AppImage

---

## 🧪 Verification Commands

<div class="relative w-full mt-4 mb-1" id="bkmrk-ls--lh-%7E%2Fappimages%2Fl-2"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ls--lh-%7E%2Fappimages%2Fl-3"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">ls</span> <span class="ͼu">-lh</span> ~/AppImages/ledger-live.AppImage  
<span class="ͼs">ls</span> <span class="ͼu">-l</span> ~/AppImages/icons/ledger.png  
<span class="ͼs">cat</span> ~/Desktop/ledger-live.desktop</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 🔧 Troubleshooting

<div class="relative w-full mt-4 mb-1" id="bkmrk-chmod-%2Bx-%7E%2Fdesktop%2Fl"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-chmod-%2Bx-%7E%2Fdesktop%2Fl-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">chmod</span> <span class="ͼn">+</span>x ~/Desktop/ledger-live.desktop  
cinnamon <span class="ͼu">--replace</span> &amp;</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 💡 Maintenance Notes

- Only one AppImage should exist
- Icon remains unchanged indefinitely
- Launcher requires no further edits

---

## ✅ Conclusion

This setup provides a clean, reliable, and controlled way to run Ledger Live on Linux Mint.

By separating:

- executable (AppImage)
- icon (static asset)
- launcher (fixed reference)

you achieve a **stable, repeatable, low-maintenance workflow**.

---

## 🔁 Update Command (Final)

<div class="relative w-full mt-4 mb-1" id="bkmrk-mv-%7E%2Fdownloads%2Fledge-4"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mv-%7E%2Fdownloads%2Fledge-5"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">mv</span> ~/Downloads/ledger-live-desktop-2*.AppImage ~/AppImages/ledger-live.AppImage  
<span class="ͼs">chmod</span> <span class="ͼn">+</span>x ~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 💡 Guiding Principle

> One AppImage. One path. One launcher.

# 🔐 SHA256 Verification

## 🎯 Objective

Verify that the downloaded Ledger Live AppImage has not been corrupted or altered before replacing the existing binary.

This adds a simple integrity check to the update workflow.

---

## 🧠 Why This Matters

An AppImage is a standalone executable.

Before moving it into the permanent location, it is good practice to verify:

- the download completed properly
- the file is not corrupted
- the checksum matches the official release value

This is especially useful when manually managing binaries.

---

## ✅ Step 1 — Generate the local SHA256 hash

Run:

<div class="relative w-full mt-4 mb-1" id="bkmrk-sha256sum-%7E%2Fdownload"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-sha256sum-%7E%2Fdownload-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">sha256sum ~/Downloads/ledger-live-desktop-2*.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Example output:

<div class="relative w-full mt-4 mb-1" id="bkmrk-abcd1234...-%2Fhome%2Fco"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-abcd1234...-%2Fhome%2Fco-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">abcd1234... /home/coolbaron/Downloads/ledger-live-desktop-2.145.0-linux-x86_64.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## ✅ Step 2 — Compare with the official hash

Check the SHA256 value published by Ledger for that exact version and verify that:

- the version matches
- the filename matches
- the hash matches exactly

If the hashes differ, do **not** use the file.

---

## ⚠️ Important

A valid file size alone is not enough.

Example:

- correct size → suggests a complete download
- matching SHA256 → confirms integrity

Both checks are useful, but SHA256 is the stronger verification.

---

## ✅ Recommended Verification Flow

### 1. Check file size

<div class="relative w-full mt-4 mb-1" id="bkmrk-ls--lh-%7E%2Fdownloads-%7C"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ls--lh-%7E%2Fdownloads-%7C-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">ls</span> <span class="ͼu">-lh</span> ~/Downloads | <span class="ͼs">grep</span> ledger</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>### 2. Check SHA256

<div class="relative w-full mt-4 mb-1" id="bkmrk-sha256sum-%7E%2Fdownload-2"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-sha256sum-%7E%2Fdownload-3"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">sha256sum ~/Downloads/ledger-live-desktop-2*.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>### 3. Compare with official release hash

### 4. Move only after verification

<div class="relative w-full mt-4 mb-1" id="bkmrk-mv-%7E%2Fdownloads%2Fledge"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mv-%7E%2Fdownloads%2Fledge-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">mv</span> ~/Downloads/ledger-live-desktop-2*.AppImage ~/AppImages/ledger-live.AppImage  
<span class="ͼs">chmod</span> <span class="ͼn">+</span>x ~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## ❌ If the Hash Does Not Match

Do not move the file into `~/AppImages`.

Instead:

<div class="relative w-full mt-4 mb-1" id="bkmrk-rm-%7E%2Fdownloads%2Fledge"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-rm-%7E%2Fdownloads%2Fledge-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">rm</span> ~/Downloads/ledger-live-desktop-2*.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Then download it again and repeat the check.

---

## 🧩 Practical Note

For routine use, checking file size may be enough to catch obvious failures such as the earlier **75-byte corrupted AppImage**.

For stronger assurance, especially with wallet-related software, SHA256 verification is the better habit.

---

## 💡 Guiding Principle

> Verify first. Replace second.