
Product
Introducing Socket Firewall Enterprise: Flexible, Configurable Protection for Modern Package Ecosystems
Socket Firewall Enterprise is now available with flexible deployment, configurable policies, and expanded language support.
@consensys/ledgerhq-metamask-keyring
Advanced tools
A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.
This repository contains a node module that makes it easy to integrate the Metamask Mobile app through the app's generic KeyringController / Keyring approach.
The Metamask Ethereum Keyring Controller is an abstraction to work with multiple keyrings that serve as bridges to external wallet / HW wallet providers. The component needs to adhere to the Keyring Class protocol to support Ethereum based actions from the Ledger Nano X device.
As such is provides the following members used by a top level KeyringController:
Keyring.type - A class property that returns a unique string describing the Keyring. (value fixed to 'Ledger')serialize() - Returns any JSON-serializable JavaScript object that you like to store as the state of the LedgerKeyring. It will be encoded to a string, encrypted with the user's password, and stored to disk.deserialize(object) - Restores the internal state based on the previously store keyring state.addAccounts(n) - Retrieves an account from the ledger and stores the address on the PK. In the current implementation we are supporting a single default account and won't allow adding more.getAccounts() - Retrieves the list of accounts store in the keyring statesignTransaction(address, transaction) - Interacts with the Ledger Device to sign an ethereumjs-tx transactionsignMessage / signPersonalMessage(address, data) - Takes a hash data and signs it using the Ledger DevicesignTypedData(address, data, versionInformation) - Signs a typed message (EIP712) using the Ledger Device. Only V4 is supported.getName() - Returns a user friendly name that can be used as label for Metamask accountsgetAppAndVersion() - Returns the currently running application and version that can be used as a "pre-check" of conditions before trying to sign.forgetDevice() - Resets the state of the keyringsetTransport() - Specifies the transport to use when talking to the Ledger Device.const KeyringController = require('eth-keyring-controller');
const LedgerKeyring = require('@ledgerhq/metamask-keyring');
const BluetoothTransport = require("@ledgerhq/react-native-hw-transport-ble");
const keyringController = new KeyringController({
keyringTypes: [LedgerKeyring],
initState: initState.KeyringController,
});
// Connect to device first
const device = ...; // get the device to econnect to
const transport = await BluetoothTransport.open(device);
// Perform signing action
const tx = ...; // ethereumjs-tx object
const address = ...;
const signedTx = await keyringController.signTransaction(address, tx);
FAQs
A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.
The npm package @consensys/ledgerhq-metamask-keyring receives a total of 105 weekly downloads. As such, @consensys/ledgerhq-metamask-keyring popularity was classified as not popular.
We found that @consensys/ledgerhq-metamask-keyring demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 12 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket Firewall Enterprise is now available with flexible deployment, configurable policies, and expanded language support.

Security News
Open source dashboard CNAPulse tracks CVE Numbering Authorities’ publishing activity, highlighting trends and transparency across the CVE ecosystem.

Product
Detect malware, unsafe data flows, and license issues in GitHub Actions with Socket’s new workflow scanning support.