Open-source firmwareShips to anywhere11 native chains + all EVM tokensFree firmware updates for lifeSince 2014Fully auditable hardwareTHORChain swaps built-inOpen-source firmwareShips to anywhere11 native chains + all EVM tokensFree firmware updates for lifeSince 2014Fully auditable hardwareTHORChain swaps built-in
Developer Toolfor testers, auditors & power users

Run KeepKey firmware
without hardware.

libkkemu is the real KeepKey firmware — the same C that runs on the device — compiled as a library KeepKey Desktop loads directly. Drag it onto the app and whatever's on the latest firmware branch (new coins, unreleased fixes) runs in the live KeepKey Desktop UI, no device required.

What this is

One firmware, two platforms.

Not a re-implementation

Same firmware C code as the STM32 build, with the hardware peripheral layer swapped for host equivalents. Whatever ships to the emulator behaves like it will on real hardware.

In-process, not a separate app

KeepKey Desktop loads the library directly and drives it with a poll loop — no subprocess, no network port. The emulated OLED screen renders straight into the KeepKey Desktop UI.

Test wallets only

The emulator keeps its seed in host memory, encrypted at rest with a locally-generated key. It is a development tool — never load the seed from your hardware device.

Download · latest alpha build

Pick your platform.

Rebuilt automatically from firmware's alpha branch on every push. Both files come from the same source — pick the one that matches your OS.

macOS

libkkemu-macos-arm64.dylib — Apple Silicon only. This is the artifact KeepKey Desktop has actually loaded and run; the mature path.

Windows

libkkemu-win-x64.dll — cross-compiled from the same source via MinGW-w64. Newer than the macOS path; if it fails to load, file an issue with your KeepKey Desktop version.

See build hashes, commit, and firmware version for the current release ↗

Installation

Drag it onto KeepKey Desktop. That's the install.

There's no separate installer. KeepKey Desktop's global drop zone recognizes the file by content, not just its name, and wires it straight into ~/.keepkey/emulator/.

01

Open KeepKey Desktop

Any recent build. The emulator is a hidden dev feature — no toggle to find first.

02

Drag the file onto the KeepKey Desktop window

Anywhere on the app. A full-screen "Drop File" overlay confirms it’s a recognized drop target.

03

KeepKey Desktop validates it

It checks the file is a real Mach-O library (macOS) or PE/MZ binary (Windows) before ever loading it — a renamed random file is rejected, not crashed on.

04

It installs and boots

First install: KeepKey Desktop pairs automatically and boots a fresh test wallet straight into onboarding. Already have emulator wallets? They’re left untouched — start any of them from the device grid.

Dragging an emulator library onto the KeepKey Desktop window
⚠

Installing a new build stops any running emulator first — swapping a loaded library mid-session isn't safe. Existing emulator wallets on disk are never touched by an install; only running state is.

Screenshots · live emulator

This is the real KeepKey Desktop, running the real firmware.

Not mockups — a KeepKey Desktop build (v1.4.10) paired to a KeepKey Emulator window, side by side, with a test seed loaded across nine chains.

Boot a test wallet

Boot a test wallet

The device grid shows an EMULATOR card. Click Start and KeepKey Desktop pairs a saved test seed in seconds — no cable, no hardware.

Always know it’s the emulator

Always know it’s the emulator

KeepKey Desktop marks the session with an EMU badge and the exact firmware version running — v7.15.0 · dev here. No ambiguity about what you’re looking at.

Verify on the emulated device

Verify on the emulated device

Receive works exactly like real hardware: KeepKey Desktop shows the address, the emulator’s own screen shows the same address — the same verify-on-device habit as physical KeepKey.

The full multi-chain portfolio

The full multi-chain portfolio

Ethereum, THORChain, Litecoin, Mayachain, BNB, Solana, Tron, Polygon and more — the entire KeepKey Desktop dashboard, live balances included, running against the emulator.

Why we ship this openly

Open development, not a black box.

Hardware wallet firmware is usually a closed loop: you find out what it does when it ships. Publishing a working build of firmware-in-progress turns that into something the community can watch, poke at, and report back on — while it’s still changeable.

Nothing to take on faith

Download the exact build running on the alpha branch right now and watch it work, screen by screen, before it’s ever signed and shipped to hardware.

Testing happens before release, not after

Bugs found against the emulator get fixed before real devices see that firmware. Testers and auditors are part of the release pipeline, not just recipients of it.

A changelog you can run

Every push to alpha rebuilds this download automatically. It isn’t a roadmap slide about what’s coming — it’s the actual firmware, today, on your machine.

No purchase required

Try the whole product before you own it.

This isn’t a demo video or a clickable prototype — it’s the same KeepKey Desktop app, the same multi-chain dashboard, the same send/receive/swap flows, running the same firmware a physical KeepKey would run. If you’re deciding whether the software fits how you hold and move assets, this is the fastest way to find out — with a test seed, before you spend anything.

For auditors & contributors

Don't trust a prebuilt binary? Build it yourself.

make build-emulator builds libkkemu.dylib locally on macOS. make build-emulator-windows cross-compiles the Windows .dll from macOS or Linux via MinGW-w64 — no Windows machine needed. Both pull from the same firmware source these downloads are built from.

Build instructions ↗
KeepKey Firmware Emulator — Run Firmware Without Hardware | KeepKey