Clone Applications

Use this guide to create and publish a clone (variant) of an existing Bitcoin or Ethereum device application. It focuses on the minimal steps required to complete the task.

Prerequisites

  • Understanding of the device app development framework (learn more here)
  • Ledger VS Code extension installed and configured (learn more here)
  • Icons templates here
  • Signed commits enabled: git commit -S -m "message"

Bitcoin

If you are adding a new Bitcoin clone with no new features or your clone was previously included in the Bitcoin app and you need to update it :

Fork the Bitcoin app boilerplate

Fork the app-bitcoin-clone-boilerplate.

Customize it

  • Add your icon
  • Update the Makefile and README
  • Override APDU handlers as needed (defined WEAK by default)

Build and test

  • Build with the Ledger VS Code extension
  • Add tests and ensure CI is green

Ethereum clones

⚠️

Make your changes to the develop branch only.

⚠️

For security reasons, the repository is set up to accept only pull requests with signed commits. To sign your commits, use the -S flag : $ git commit -S -m your commit message

Fork the Ethereum application

Fork the Ethereum app.

Modify app-ethereum/src_common/network.c

Add your chain ID, chain name and Ticker to network.c following this example:

{.chain_id = 592, .name = "Astar", .ticker = "ASTR"},

Add an icon for Ledger Stax

Add your 64x64px gif icon in the glyphs folder following this naming convention: chain_yourchainid_64px.gif. Use the template provided here.

Add your Network to Chainlist.org

Click “Add Your Network +” on the Chainlist homepage and follow the ReadMe to add your Network.

Open a pull request

When your application is ready, open a pull request on the Ethereum application repository.

Troubleshooting

  • Build fails in VS Code:
    • Verify Ledger toolchain installation and environment variables
  • CI not green:
    • Run tests locally and update failing cases
    • Ensure icon filenames and paths match conventions
  • Signed commits rejected:
    • Configure GPG and Git signing: git config —global commit.gpgsign true
    • Use git commit -S and ensure your GPG key is trusted on GitHub

Publishing the application

When your application or PR is ready, follow the process in Publishing an application.

Ledger
Copyright © Ledger SAS. All rights reserved. Ledger, Ledger Stax, Ledger Nano S, Ledger Vault, Bolos are trademarks owned by Ledger SAS