Skip to main content

ape-trezor: Plugin for Trezor Hardware Wallets

Project description

Quick Start

Ape Trezor is a plugin for Ape Framework which integrates Trezorlib ethereum.py to load and create accounts, sign messages, and sign transactions.

Dependencies

Note: USB does not work in WSL2 environments natively and is not currently supported.

Installation

via pip

You can install the latest release via pip:

pip install ape-trezor

via setuptools

You can clone the repository and use setuptools for the most up-to-date version:

git clone https://github.com/ApeWorX/ape-trezor.git
cd ape-trezor
python3 setup.py install

Quick Usage

Trezor accounts have the following capabilities in ape:

  1. Can sign transactions (both static-fee and EIP-1559 compliant)
  2. Can sign messages using the default EIP-191 specification

To use the Trezor plugin, you must have the Trezor USB device connected and unlocked.

WARNING: When the Trezor Suite is open, you may face additional connection issues. It is recommended to not have the Trezor Suite application open while using the plugin.

Add Accounts

Add accounts using the add command:

ape trezor add <alias>

You can also specify the HD Path:

ape trezor add <alias> --hd-path "m/44'/1'/0'/0"

WARNING: When using 3rd party wallets, such as this plugin, trezorlib discourages signing transactions from the default Ethereum HD Path m/44'/60'/0'/0. Changing the HD-Path in that circumstance will allow fewer warnings from both Ape and the device, as well as improved security. See https://github.com/trezor/trezor-firmware/issues/1336#issuecomment-720126545 for more information.

trezor:
  hd_path: "m/44'/1'/0'/0"

List Accounts

To list just your Trezor accounts in ape, do:

ape trezor list

Remove accounts

You can also remove accounts:

ape trezor delete <alias>
ape trezor delete-all

Sign Messages

You can sign messages with your accounts:

ape trezor sign-message <alias> "hello world"

Verify Messages

You can also verify a message with a signature:

ape trezor verify-message "hello world" <signature>

Using trezorctl

For conveinence, we've added trezorctl from the trezor library as a subcommand under this plugin's own ape trezor cli subcommand. To access it, simply use ape trezor ctl [CMD].

As an example, to connect to the new BLE-enabled Trezor 7 device, use:

$ ape trezor ctl ble connect

You can also use other commands for deeper management of the device such as:

# Setup a new device
$ ape trezor ctl device setup

# Manage firmware on device(s)
$ ape trezor ctl firmware

Development

Please see the contributing guide to learn more how to contribute to this project. Comments, questions, criticisms and pull requests are welcomed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ape_trezor-0.8.3.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ape_trezor-0.8.3-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file ape_trezor-0.8.3.tar.gz.

File metadata

  • Download URL: ape_trezor-0.8.3.tar.gz
  • Upload date:
  • Size: 29.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.19

File hashes

Hashes for ape_trezor-0.8.3.tar.gz
Algorithm Hash digest
SHA256 32ed6a17e2dee4ba0ceb77a47c4d3d895212181b8bea083f9e23ed9d4c918c4b
MD5 0d4e60db5f21eed3024dc29caa7097c0
BLAKE2b-256 d370d0dff55fb9d8b690916fe7a79bbe5ee0c86ed9955f91d4d94658f8c8972a

See more details on using hashes here.

File details

Details for the file ape_trezor-0.8.3-py3-none-any.whl.

File metadata

  • Download URL: ape_trezor-0.8.3-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.19

File hashes

Hashes for ape_trezor-0.8.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a3720ac200fae20df4a739a7c39608c989877e9591d96f7a21e535fddd989bdf
MD5 e7d5ceaa87a1b3d42233197b0abc1367
BLAKE2b-256 34d984605128aaf3ce335924cb1644d95494fd044e38af495bba35d79ec1c241

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page