Ape Trezor is a plugin for Ape Framework which integrates Trezorlib ethereum.py to load and create accounts, sign messages, and sign transactions.
- python3 version 3.9 up tp 3.12.
Note: USB does not work in WSL2 environments natively and is not currently supported.
You can install the latest release via pip
:
pip install ape-trezor
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
Trezor accounts have the following capabilities in ape
:
- Can sign transactions (both static-fee and EIP-1559 compliant)
- 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 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 trezor/trezor-firmware#1336 (comment) for more information.
trezor:
hd_path: "m/44'/1'/0'/0"
To list just your Trezor accounts in ape
, do:
ape trezor list
You can also remove accounts:
ape trezor delete <alias>
ape trezor delete-all
You can sign messages with your accounts:
ape trezor sign-message <alias> "hello world"
You can also verify a message with a signature:
ape trezor verify-message "hello world" <signature>
Please see the contributing guide to learn more how to contribute to this project. Comments, questions, criticisms and pull requests are welcomed.