{"id":13746861,"url":"https://github.com/shapeshift/hdwallet","last_synced_at":"2026-01-17T08:59:06.549Z","repository":{"id":37601949,"uuid":"200694503","full_name":"shapeshift/hdwallet","owner":"shapeshift","description":"A library for interacting with hardware wallets from JS/TS.","archived":false,"fork":false,"pushed_at":"2024-11-04T14:32:53.000Z","size":11968,"stargazers_count":208,"open_issues_count":30,"forks_count":89,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-11-04T15:33:59.965Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://hdwallet.shapeshift.now.sh/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shapeshift.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-05T16:50:09.000Z","updated_at":"2024-11-04T14:33:26.000Z","dependencies_parsed_at":"2024-01-22T18:40:56.701Z","dependency_job_id":"f9af04e5-d29d-472c-845d-8054f64e5ffe","html_url":"https://github.com/shapeshift/hdwallet","commit_stats":null,"previous_names":[],"tags_count":183,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shapeshift%2Fhdwallet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shapeshift%2Fhdwallet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shapeshift%2Fhdwallet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shapeshift%2Fhdwallet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shapeshift","download_url":"https://codeload.github.com/shapeshift/hdwallet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224842522,"owners_count":17378984,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T06:01:03.138Z","updated_at":"2026-01-17T08:59:06.522Z","avatar_url":"https://github.com/shapeshift.png","language":"TypeScript","funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"# HDWallet\n\n[![CircleCI](https://circleci.com/gh/shapeshift/hdwallet.svg?style=svg)](https://circleci.com/gh/shapeshift/hdwallet)\n\nA library for interacting with hardware wallets from JS/TS. Supports KeepKey,\nTrezor, and Ledger. Intended for use in web apps, chrome apps/extensions, and\nelectron/node apps.\n\nTry it out [here](https://hdwallet.shapeshift.now.sh/)!\n\n## Documentation\n\n- [hdwallet](#hdwallet)\n  - [Documentation](#documentation)\n  - [Installation](#installation)\n  - [Importing Library](#importing-library)\n  - [Usage](#usage)\n  - [Building](#building)\n  - [Developing](#developing)\n  - [Tests](#tests)\n  - [Contributing](#contributing)\n\n## Installation\n\n```bash\nyarn add @shapeshiftoss/hdwallet-core\nyarn add @shapeshiftoss/hdwallet-keepkey-webusb\nyarn add @shapeshiftoss/hdwallet-trezor-connect\nyarn add @shapeshiftoss/hdwallet-ledger-webusb\n```\n\n## Importing Library\n\nYou can import the generated bundle to use each of the component libraries:\n\n```javascript\nimport { HDWallet } from \"@shapeshiftoss/hdwallet-core\";\nimport { isKeepKey, KeepKeyHDWallet } from \"@shapeshiftoss/hdwallet-keepkey\";\nimport { isLedger, LedgerHDWallet } from \"@shapeshiftoss/hdwallet-ledger\";\nimport { isTrezor, TrezorHDWallet } from \"@shapeshiftoss/hdwallet-trezor\";\n\nimport { WebUSBKeepKeyAdapter } from \"@shapeshiftoss/hdwallet-keepkey-webusb\";\nimport { WebUSBLedgerAdapter } from \"@shapeshiftoss/hdwallet-ledger-webusb\";\nimport { TrezorAdapter } from \"@shapeshiftoss/hdwallet-trezor-connect\";\n```\n\n## Usage\n\nThe recommended way to use the library is through a `Keyring` singleton,\nwhich manages connected devices:\n\n```javascript\nimport { Keyring } from \"@shapeshiftoss/hdwallet-core\";\nconst keyring = new Keyring();\n```\n\nTo add in support for a given wallet type, add in the relevant `Transport`\nadapter by calling `useKeyring()` on it:\n\n```javascript\nimport { WebUSBKeepKeyAdapter } from \"@shapeshiftoss/hdwallet-keepkey-webusb\";\nimport { TrezorAdapter } from \"@shapeshiftoss/hdwallet-trezor-connect\";\n\nconst keepkeyAdapter = WebUSBKeepKeyAdapter.useKeyring(keyring);\n\nconst trezorAdapter = TrezorAdapter.useKeyring(keyring, {\n  debug: false,\n  manifest: {\n    email: \"you@example.com\", // TrezorConnect info\n    appUrl: \"https://example.com\", // URL of hosted domain\n  },\n});\n\nconst ledgerAdapter = LedgerAdapter.useKeyring(keyring);\n```\n\nAfter setting up a `Keyring`, and plugging various transport adapters into\nit, the next step is to pair a device:\n\n```javascript\nlet wallet = await keepkeyAdapter.pairDevice();\n\nwallet.getLabel().then((result) =\u003e {\n  console.log(result);\n});\n```\n\n## Building\n\nIt is expected that this take quite some time (around 10 minutes), due to the\nlarge size of the compiled KeepKey protobuf encoder/decoder.\n\n```bash\nyarn clean\nyarn\nyarn build\n```\n\n## Developing\n\nTo compile and watch the browser bundle, run:\n\n```bash\nyarn dev:sandbox\n```\n\nThis will launch an ssl webserver that runs at `https://localhost:1234`, with\na small demo app that shows how to use various HDWallet functionality.\n\nWe use [Zeit Now](https://zeit.co/home) for continuous deployment of this\nsandbox app. On pull requests, the builder will publish a new version of that\napp with the changes included (for example\n[#68](https://github.com/shapeshift/hdwallet/pull/68#issuecomment-542779289)).\nTry out the latest build here: https://hdwallet.shapeshift.now.sh/\n\n## Tests\n\n```bash\nyarn\nyarn build\nyarn test\n```\n\nThe integration tests have been set up to run either against a physical KeepKey\nwith debug firmware on it, or in CI pointed at a dockerized version of the\nemulator. Trezor and Ledger tests run against mocks of their respective\ntransport layers.\n\n## Contributing\n\nSee our developer guidelines [here](CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshapeshift%2Fhdwallet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshapeshift%2Fhdwallet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshapeshift%2Fhdwallet/lists"}