# Manually verify firmware binary

Source URL: https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/manually-verify-firmware-binary
Updated: 2026-04-09T09:36:23.000Z
Category: Blockstream Jade
Section: Add More Security & Functionality

---

If you use [JadeLink](https://store.blockstream.com/products/jadelink-air-gapped-usb-drive) or perform updates locally via the upgrade script, you can ensure the update's firmware file matches the official firmware released by Blockstream.

## For JadeLink Users

1. Download the [firmware binary](https://jadefw.blockstream.com/upgrade/download.html).
2. Open Terminal and run `shasum -a 256 path/to/.bin/file`.
3. Check the resulting hash against the list of published hashes here according to your firmware version.  
    
The `cmphash` should match the result from Terminal:
  - [Jade Plus](https://jadefw.blockstream.com/bin/jade2.0/index.json)
  - [Jade Classic](https://jadefw.blockstream.com/bin/jade1.1/index.json)

## For Upgrade Script Users

1. Clone the [Blockstream Jade repo](https://github.com/Blockstream/Jade).
2. Make sure to [set up the environment](https://github.com/Blockstream/Jade/tree/master?tab=readme-ov-file#set-up-the-environment).
3. Open terminal and from the Jade directory run `./update_jade_fw.py`.  
    
Use the `--release` flag to choose from previous or beta firmware releases instead of the latest
4. When asked to save a copy of downloaded firmware, type `y`.
5. Run `shasum -a 256 path/to/.bin/file`
6. Check the resulting hash against the list of published hashes here according to your firmware version.  
    
The `cmphash` should match the result from Terminal:
  - [Jade Plus](https://jadefw.blockstream.com/bin/jade2.0/index.json)
  - [Jade Classic](https://jadefw.blockstream.com/bin/jade1.1/index.json)

### Note: Uncompressed Firmware

The above instructions are for compressed firmware files. If you wish to verify an uncompressed firmware file, you can run the following command instead:

```plaintext
printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" | cat - path/to/.bin/file | gzip -qdc 2>/dev/null | shasum -a 256
```

In this case, you will be checking that the `fwhash` matches instead of the `cmphash`.

Navigation: Blockstream Help Center > Blockstream Jade > Manually verify firmware binary

## Related Articles in This Section
- [Enable swaps with Jade](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/enable-swaps-with-jade)
- [Enable a duress PIN](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/enable-a-duress-pin)
- [Use Jade as a stateless signing device](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/use-jade-as-a-stateless-signing-device)
- [Use Jade as a 2FA authentication device](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/use-jade-as-a-2fa-authentication-device)
- [Use Jade as a Bitcoin miner](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/use-jade-as-a-bitcoin-miner)
- [Use Jade with testnet](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/use-jade-with-testnet)
- [Add a BIP39 passphrase for Jade](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/add-a-bip39-passphrase-for-jade)
- [Create a BIP85 child recovery phrase](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/create-a-bip85-child-recovery-phrase)
- [Create a recovery phrase using dice](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/create-a-recovery-phrase-using-dice)
- [Calculate the final word from a provided recovery phrase entry](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/calculate-the-final-word-from-a-provided-recovery-phrase-entry)
- [Back up a multisig configuration on Jade](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/back-up-a-multisig-configuration-on-jade)
- [Disable Bluetooth](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/disable-bluetooth)
- [Manually verify firmware binary](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/manually-verify-firmware-binary) (current)
- [Set up a personal blind oracle](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/set-up-a-personal-blind-oracle)
- [Set up a personal blind oracle with Umbrel](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/set-up-a-personal-blind-oracle-with-umbrel)
- [Use cases for Temporary Signer](https://helpcenter.dxp-frontend.devserver.app/blockstream-jade/add-more-security-functionality/use-cases-for-temporary-signer)
