You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

@zondax/zemu

Package Overview
Dependencies
Maintainers
0
Versions
174
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@zondax/zemu

Zemu Testing Framework

0.60.0
latest
Source
npmnpm
Version published
Weekly downloads
2.1K
-34.73%
Maintainers
0
Weekly downloads
 
Created
Source

Zemu

zondax_light

zondax_dark

License npm version CI

We appreciate any contributions to this effort!

We recommend using the npmjs package in order to receive updates/fixes.

This project is under active development - API and usage guidelines are very likely to change

Overview

Integration and end-to-end testing of Ledger Apps is a manual and time consuming process. We believe that the Ledger apps ecosystem is lacking an adequate approach with respect to testing. The Zemu Framework is our solution for this problem. Under the hood, Zemu uses Ledger's project speculos. It's currently being used in every Ledger App built by Zondax, among many others (such as Ethereum one built by Ledger team).

Zemu is an emulation and testing framework for Ledger Nano S/S+/X/Stax/Flex devices.

Features

  • Minimal configuration + Docker based
  • Speculos/Qemu based emulation
  • Container pooling for improved test performance
  • Easy JS/TypeScript API
    • Vitest / Jest / Mocha compatible
    • Parallelized testing
    • Abstracted device control (buttons, reset, etc.)
    • Navigate thru screens and take screenshots of them
  • Support for all Ledger devices (Nano S/S+/X/Stax/Flex)
  • Enhanced error handling with detailed APDU status codes
  • Debugging (support for CLion and vscode, even mixed C/Rust)

Installation

npm install --save-dev @zondax/zemu
# or
pnpm add -D @zondax/zemu

Quick Start

import Zemu from '@zondax/zemu'

const sim = new Zemu(APP_PATH)
await sim.start({ model: 'nanos' })

// Interact with your app
await sim.clickRight()
await sim.clickBoth()

// Take screenshots
const screenshot = await sim.snapshot()

// Clean up
await sim.close()

Docs

Check our documentation and quickstart at https://docs.zondax.ch

Who we are?

We are Zondax, a company pioneering blockchain services. If you want to know more about us, please visit us at zondax.ch

Keywords

Zondax

FAQs

Package last updated on 28 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts