https://github.com/nexoraa/trezor-wallet-password-manager-hardware-crypto-mnemonic-sdk-api
This repository features Trezor Wallets integration as a password manager with hardware support. It includes tools for handling cryptocurrency mnemonic phrases, an SDK for development, and an API for secure password and crypto asset management.
https://github.com/nexoraa/trezor-wallet-password-manager-hardware-crypto-mnemonic-sdk-api
bitcoin blockchain cold-wallet cold-wallet-extension cold-wallet-futures cold-wallet-security crypto-wallet cryptocurrencies cryptocurrency ethereum gateway sdk solana trezor-wallet trezor-wallet-api trezor-wallet-bot wallet wallet-security walletconnect web3
Last synced: about 20 hours ago
JSON representation
This repository features Trezor Wallets integration as a password manager with hardware support. It includes tools for handling cryptocurrency mnemonic phrases, an SDK for development, and an API for secure password and crypto asset management.
- Host: GitHub
- URL: https://github.com/nexoraa/trezor-wallet-password-manager-hardware-crypto-mnemonic-sdk-api
- Owner: Nexoraa
- License: mit
- Created: 2025-01-20T14:31:11.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-03-10T22:20:29.000Z (3 months ago)
- Last Synced: 2025-03-10T22:26:35.785Z (3 months ago)
- Topics: bitcoin, blockchain, cold-wallet, cold-wallet-extension, cold-wallet-futures, cold-wallet-security, crypto-wallet, cryptocurrencies, cryptocurrency, ethereum, gateway, sdk, solana, trezor-wallet, trezor-wallet-api, trezor-wallet-bot, wallet, wallet-security, walletconnect, web3
- Language: C#
- Size: 1.41 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Trezor
[](https://github.com/go-faast/faast-web/blob/develop/package.json)
[](https://github.com/go-faast/faast-web/blob/develop/LICENSE)
[](https://travis-ci.com/go-faast/faast-web)
[](https://app.netlify.com/sites/faast/deploys)
#### Trezor
Configure and start the hardware wallet service as follows:
```java
// Use factory to statically bind the specific hardware wallet
TrezorV1HidHardwareWallet wallet = HardwareWallets.newUsbInstance(
TrezorV1HidHardwareWallet.class,
Optional.absent(),
Optional.absent(),
Optional.absent()
);// Wrap the hardware wallet in a suitable client to simplify message API
HardwareWalletClient client = new TrezorHardwareWalletClient(wallet);// Wrap the client in a service for high level API suitable for downstream applications
hardwareWalletService = new HardwareWalletService(client);// Register for the high level hardware wallet events
HardwareWalletEvents.subscribe(this);// Start the service
hardwareWalletService.start();```
Subscribe to Guava events coming from the Trezor client as follows:
```java
@Subscribe
public void onHardwareWalletEvent(HardwareWalletEvent event) {switch (event.getEventType()) {
case SHOW_DEVICE_DETACHED:
// Wait for device to be connected
break;
case SHOW_DEVICE_READY:
// Get some information about the device
Features features = hardwareWalletService.getContext().getFeatures().get();
log.info("Features: {}", features);
// Treat as end of example
System.exit(0);
break;
case SHOW_DEVICE_FAILED:
// Treat as end of example
System.exit(-1);
break;
}}
``````mermaid
%%{ init: { 'flowchart': { 'curve': 'bumpX' } } }%%
graph LR;
linkStyle default opacity:0.5
address_book_controller(["@trezor/address-book-controller"]);
announcement_controller(["@trezor/announcement-controller"]);
approval_controller(["@trezor/approval-controller"]);
assets_controllers(["@trezor/assets-controllers"]);
base_controller(["@trezor/base-controller"]);
composable_controller(["@trezor/composable-controller"]);
controller_utils(["@trezor/controller-utils"]);
ens_controller(["@trezor/ens-controller"]);
gas_fee_controller(["@trezor/gas-fee-controller"]);
keyring_controller(["@trezor/keyring-controller"]);
logging_controller(["@trezor/logging-controller"]);
message_manager(["@trezor/message-manager"]);
name_controller(["@trezor/name-controller"]);
network_controller(["@trezor/network-controller"]);
notification_controller(["@trezor/notification-controller"]);
permission_controller(["@trezor/permission-controller"]);
phishing_controller(["@trezor/phishing-controller"]);
preferences_controller(["@trezor/preferences-controller"]);
rate_limit_controller(["@trezor/rate-limit-controller"]);
signature_controller(["@trezor/signature-controller"]);
transaction_controller(["@trezor/transaction-controller"]);
address_book_controller --> base_controller;
address_book_controller --> controller_utils;
announcement_controller --> base_controller;
approval_controller --> base_controller;
assets_controllers --> approval_controller;
assets_controllers --> base_controller;
assets_controllers --> controller_utils;
assets_controllers --> network_controller;
assets_controllers --> preferences_controller;
composable_controller --> base_controller;
ens_controller --> base_controller;
ens_controller --> controller_utils;
ens_controller --> network_controller;
gas_fee_controller --> base_controller;
gas_fee_controller --> controller_utils;
gas_fee_controller --> network_controller;
keyring_controller --> base_controller;
keyring_controller --> message_manager;
keyring_controller --> preferences_controller;
logging_controller --> base_controller;
logging_controller --> controller_utils;
message_manager --> base_controller;
message_manager --> controller_utils;
name_controller --> base_controller;
network_controller --> base_controller;
network_controller --> controller_utils;
notification_controller --> base_controller;
permission_controller --> approval_controller;
permission_controller --> base_controller;
permission_controller --> controller_utils;
phishing_controller --> base_controller;
phishing_controller --> controller_utils;
preferences_controller --> base_controller;
preferences_controller --> controller_utils;
rate_limit_controller --> base_controller;
signature_controller --> approval_controller;
signature_controller --> base_controller;
signature_controller --> controller_utils;
signature_controller --> message_manager;
transaction_controller --> approval_controller;
transaction_controller --> base_controller;
transaction_controller --> controller_utils;
transaction_controller --> network_controller;
```### Configuration
Set these environment variables on your `gpg-agent` daemon, by overriding `/usr/lib/systemd/user/gpg-agent.service` for example.
* **PINENTRY_TREZOR_LOG_PATH** = `/path/to/log/file`. Enable logging and write logs to `/path/to/log/file`
* **PINENTRY_TREZOR_DONT_FLASH** = `1`. Don't show which keypad button was pressed when using the keyboard.
* **PINENTRY_TREZOR_KEYSET** = `123456789`. Use this letter grid for keyboard entry.
* **PINENTRY_TREZOR_DONT_EXPLAIN** = `1`. Don't explain or show the grid when entering via TTY.
* **PINENTRY_TREZOR_FORCE_MESSAGE** = `My prompt message:`. Use this prompt message instead of the GPG provided prompt.* ### Backers
## Contributing
Contributions are welcome, but please follow these contributor guidelines outlined in [CONTRIBUTING.md](CONTRIBUTING.md).
## License
metamask is licensed under a [BSD 2-Clause License](LICENSE.md) and is copyright [Intoli, LLC](https://intoli.com).
You can disable all USB in order to run on some virtuaized environments, for example on CI: