This repository contains the FirmaChain app for Ledger hardware wallets. It allows users to manage FirmaChain (FCT) accounts and sign FirmaChain transactions on Ledger devices.
The app is based on the Cosmos Ledger app by Zondax, adapted for the FirmaChain network.
- Ledger Nano S
- Ledger Nano S Plus
- Ledger Nano X
- Ledger Stax
- Ledger Flex
- Display, sign and broadcast FirmaChain transactions
- Support for both JSON (legacy Amino) and Protobuf (SIGN_MODE_DIRECT) sign modes
- Derivation path:
m/44'/7777777'/0'/0/0(coin type7777777) - Bech32 address prefix:
firma - Base denomination:
ufct(displayed asFCT)
- Do not use in production until this app is officially published on Ledger Live.
- Do not use a Ledger device with funds for development purposes.
- Have a separate and marked device that is used ONLY for development and testing.
The recommended companion wallet for this app is Firma Station, which connects to the Ledger device over USB (WebHID).
-
Checkout submodules:
git submodule update --init --recursive
-
Install Docker CE (https://docs.docker.com/install/)
-
We officially support Ubuntu. Install the following packages:
sudo apt update && apt-get -y install build-essential git wget cmake \ libssl-dev libgmp-dev autoconf libtool -
Install Python 3
-
This project requires the Ledger Secure SDK (tracked as a git submodule)
Using the Ledger VS Code extension is the easiest way to build and load the app:
- Open this repository in VS Code
- Open the Ledger extension from the sidebar
- Select the target device (e.g., Nano S Plus)
- Run Update container
- Run Build (full)
- Run Load app on device to install on a physical Ledger
Alternatively, build from the command line inside the Ledger dev container:
makeLoading is device-specific. Use the target matching your device:
| Device | Command |
|---|---|
| Nano S | make loadS |
| Nano S Plus | make loadS2 |
| Stax | make loadST |
| Flex | make loadFL |
Warning: The existing app on the device will be deleted before uploading.
Nano X cannot be side-loaded; it can only receive apps signed by Ledger through Ledger Live.
-
C/C++ unit tests:
make cpp_test
-
Zemu integration tests:
make zemu_install make zemu_test
Apache 2.0 — see LICENSE.