Skip to content

LedgerHQ/app-solana

This branch is 369 commits ahead of, 15 commits behind solana-labs/ledger-app-solana:redirect-to-ledgerhq.

Folders and files

NameName
Last commit message
Last commit date
Jan 28, 2025
Jan 28, 2025
Nov 23, 2022
Sep 5, 2024
Sep 1, 2023
Jun 5, 2024
Feb 3, 2025
Jan 28, 2025
Jan 28, 2025
Jan 28, 2025
Aug 25, 2022
Oct 29, 2024
Mar 23, 2023
Aug 26, 2020
May 15, 2019
Feb 3, 2025
Sep 10, 2024
May 4, 2020
Jan 28, 2025
May 4, 2020
Oct 7, 2022

Repository files navigation

Build Status

Solana app for Ledger Wallet

Overview

This app adds support for the Solana native token to Ledger Nano S hardware wallet.

Current Features:

  • Pubkey queries
  • Parse, display and sign all Solana CLI generated transaction formats
  • Blind sign arbitrary transactions (Enabled via settings)

Prerequisites

For building the app

$ docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest

Build

Build the app in the container. The BOLOS_SDK variable is used to specify the target SDK, allowing to compile the application for each Ledger device. See Ledger Application Builder for more details.

# E.g. for Nano S
$ sudo docker run --rm -ti -v "$(realpath .):/app" --user $(id -u $USER):$(id -g $USER) ghcr.io/ledgerhq/ledger-app-builder//ledger-app-dev-tools:latest
bash$ BOLOS_SDK=$NANOS_SDK make

Clean

Within the running development container

bash$ BOLOS_SDK=$NANOS_SDK make clean

Working with the device

See Ledger Application Builder for more details.

Load

$ sudo docker run --rm -ti  -v "$(realpath .):/app" --privileged -v "/dev/bus/usb:/dev/bus/usb" --user $(id -u $USER):$(id -g $USER) ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest
bash$ BOLOS_SDK=$NANOS_SDK make load

Delete

Within the running development container

bash$ BOLOS_SDK=$NANOS_SDK make delete

Test

Unit

Run C tests:

bash$ make -C libsol

Ragger

Make sure that you have already built the application for the specific device.

Run Ragger tests:

# Install python test suite dependencies
bash$ pip install -r "tests/python/requirements.txt"

# Run test suite for the specific device, e.g. nanos
bash$ pytest tests/python/ --tb=short -v --device nanos -k ""

To regenerate golden snapshots, use --golden_run option.

Integration

First enable blind-signing in the App settings

bash$ cargo run --manifest-path tests/Cargo.toml

About

Solana app for all Ledger devices

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 79.4%
  • Rust 10.0%
  • Python 6.1%
  • C++ 3.0%
  • Makefile 0.7%
  • Shell 0.6%
  • CMake 0.2%