explaingit

maggo83/firmware

Analysis updated 2026-07-24

0Audience · developerComplexity · 4/5Setup · hard

TLDR

Firmware and desktop simulator for Coldcard, a physical Bitcoin hardware wallet. Keeps Bitcoin keys offline and lets anyone verify the device's software by compiling it themselves.

Mindmap

mindmap
  root((repo))
    What it does
      Stores Bitcoin keys offline
      Desktop simulator for testing
      Reproducible builds
    Project structure
      Shared code folder
      Simulator for Mac and Linux
      Firmware for physical device
    Use cases
      Verify device software
      Test wallet features without device
      Develop new Bitcoin features
    Audience
      Bitcoin security developers
      Hardware wallet users
      Open source contributors
    Tech stack
      MicroPython
      Python
      Docker

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Run a virtual Coldcard on your computer to test Bitcoin wallet features without the physical device.

USE CASE 2

Download and compile the firmware yourself to verify it matches the official release exactly.

USE CASE 3

Inspect the open-source code to audit the security of your hardware wallet.

USE CASE 4

Experiment with upcoming Bitcoin features like Taproot on the edge branch.

What is it built with?

PythonMicroPythonDockerC

How does it compare?

maggo83/firmware00kaku/gallery-slider-block04amanrajj/netwatch
Stars00
LanguageJavaScriptRust
Last pushed2021-05-19
MaintenanceDormant
Setup difficultyhardeasymoderate
Complexity4/52/53/5
Audiencedevelopergeneralops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires installing system dependencies, setting up an isolated Python environment, and compiling MicroPython from source.

In plain English

This repository contains the firmware and a desktop simulator for the Coldcard, a hardware wallet designed for storing Bitcoin securely. The Coldcard is a physical device that keeps your Bitcoin private keys offline, reducing the risk of theft from online attacks. The project's code allows developers to inspect the software running on the device, verify its integrity, and run a simulated version on a personal computer for testing and development. A central feature of this project is its support for reproducible builds. This means that anyone can download the source code, compile it, and verify that the resulting software matches the official release byte for byte. This process has been automated using a tool called Docker, and the repository provides step-by-step instructions for performing this verification. If the rebuild produces a different result, the system shows the differences, allowing users to confirm exactly what software is on their hardware wallet. The code is organized into several distinct directories. A shared folder contains code common to both the simulator and the physical product. The unix directory holds a simulator for macOS and Linux systems, allowing rapid testing without the physical device. The stm32 directory contains the files needed to build the final binary for the actual hardware. There are also folders for test cases, external libraries, graphics, and the bootloader, which is factory-set code that cannot be changed by the user but can be inspected for verification. The project maintains two main branches of development. The master branch covers the latest hardware versions, known as Mk and Q. The edge branch contains experimental features that may not be ready for general release, such as Taproot or Miniscript support. This allows developers to iterate more quickly on new Bitcoin advancements. Older hardware versions, like Mk3 and earlier, are supported on a separate legacy branch. Setting up the simulator requires installing several system dependencies on macOS or Linux. The process involves creating an isolated Python environment, installing required packages, and compiling a version of MicroPython. After setup, a developer can run the simulator to interact with a virtual Coldcard on their screen. Building the actual firmware for the physical device follows a similar path, producing a file that can be loaded onto a Coldcard using a command-line tool. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
How do I set up and run the Coldcard simulator on my Mac or Linux machine using this repository?
Prompt 2
Walk me through the steps to perform a reproducible build of the Coldcard firmware using Docker to verify the official release.
Prompt 3
Explain the difference between the master, edge, and legacy branches in this Coldcard firmware repository.
Prompt 4
How do I compile the firmware binary from source and load it onto a physical Coldcard device using the command line?

Frequently asked questions

What is firmware?

Firmware and desktop simulator for Coldcard, a physical Bitcoin hardware wallet. Keeps Bitcoin keys offline and lets anyone verify the device's software by compiling it themselves.

How hard is firmware to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is firmware for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.