{ "info": { "author": "Andrew Chow", "author_email": "andrew@achow101.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Bitcoin Hardware Wallet Interface\n\n[![Build Status](https://travis-ci.org/bitcoin-core/HWI.svg?branch=master)](https://travis-ci.org/bitcoin-core/HWI)\n\nThe Bitcoin Hardware Wallet Interface is a Python library and command line tool for interacting with hardware wallets.\nIt provides a standard way for software to work with hardware wallets without needing to implement device specific drivers.\nPython software can use the provided library (`hwilib`). Software in other languages can execute the `hwi` tool.\n\n## Prerequisites\n\nPython 3 is required. The libraries and [udev rules](hwilib/udev/README.md) for each device must also be installed. Some libraries will need to be installed\n\nFor Ubuntu/Debian:\n```\nsudo apt install libusb-1.0-0-dev libudev-dev\n```\n\nFor macOS:\n```\nbrew install libusb\n```\n\nThis project uses the [Poetry](https://github.com/sdispater/poetry) dependency manager.\nOnce HWI's source has been downloaded with git clone, it and its dependencies can be installed via poetry by execting the following in the root source directory:\n\n```\npoetry install\n```\n\nPip can also be used to install all of the dependencies (in virtualenv or system) required for operation and development. See `pyproject.toml` for all dependencies. Dependencies under `[tool.poetry.dependecies]` are user dependencies, and `[tool.poetry.dev-dependencies]` for development based dependencies.\n\n## Install\n\n```\ngit clone https://github.com/bitcoin-core/HWI.git\ncd HWI\n```\n\n## Usage\n\nTo use, first enumerate all devices and find the one that you want to use with\n\n```\n./hwi.py enumerate\n```\n\nOnce the device type and device path is known, issue commands to it like so:\n\n```\n./hwi.py -t -d \n```\n\nAll output will be in JSON form and sent to `stdout`.\nAdditional information or prompts will be sent to `stderr` and will not necessarily be in JSON.\nThis additional information is for debugging purposes.\n\n## Device Support\n\nThe below table lists what devices and features are supported for each device.\n\nPlease also see [docs](docs/) for additional information about each device.\n\n| Feature \\ Device | Ledger Nano X | Ledger Nano S | Trezor One | Trezor Model T | Digital BitBox | KeepKey | Coldcard |\n|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|\n| Support Planned | Yes | Yes | Yes | Yes | Yes | Yes | Yes |\n| Implemented | Yes | Yes | Yes | Yes | Yes | Yes | Yes |\n| xpub retrieval | Yes | Yes | Yes | Yes | Yes | Yes | Yes |\n| Message Signing | Yes | Yes | Yes | Yes | Yes | Yes | Yes |\n| Device Setup | N/A | N/A | Yes | Yes | Yes | Yes | N/A |\n| Device Wipe | N/A | N/A | Yes | Yes | Yes | Yes | N/A |\n| Device Recovery | N/A | N/A | Yes | Yes | N/A | Yes | N/A |\n| Device Backup | N/A | N/A | N/A | N/A | Yes | N/A | Yes |\n| P2PKH Inputs | Yes | Yes | Yes | Yes | Yes | Yes | Yes |\n| P2SH-P2WPKH Inputs | Yes | Yes | Yes | Yes | Yes | Yes | Yes |\n| P2WPKH Inputs | Yes | Yes | Yes | Yes | Yes | Yes | Yes |\n| P2SH Multisig Inputs | Yes | Yes | Yes | Yes | Yes | Yes | Yes |\n| P2SH-P2WSH Multisig Inputs | Yes | Yes | Yes | Yes | Yes | No | Yes |\n| P2WSH Multisig Inputs | Yes | Yes | Yes | Yes | Yes | Yes | Yes |\n| Bare Multisig Inputs | Yes | Yes | N/A | N/A | Yes | N/A | N/A |\n| Arbitrary scriptPubKey Inputs | Yes | Yes | N/A | N/A | Yes | N/A | N/A |\n| Arbitrary redeemScript Inputs | Yes | Yes | N/A | N/A | Yes | N/A | N/A |\n| Arbitrary witnessScript Inputs | Yes | Yes | N/A | N/A | Yes | N/A | N/A |\n| Non-wallet inputs | Yes | Yes | Yes | Yes | Yes | Yes | Yes |\n| Mixed Segwit and Non-Segwit Inputs | N/A | N/A | Yes | N/A | Yes | Yes | Yes |\n| Display on device screen | Yes | Yes | Yes | Yes | N/A | Yes | Yes |\n\n## Using with Bitcoin Core\n\nSee [Using Bitcoin Core with Hardware Wallets](docs/bitcoin-core-usage.md).\n\n## License\n\nThis project is available under the MIT License, Copyright Andrew Chow.\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bitcoin-core/HWI", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "hwi", "package_url": "https://pypi.org/project/hwi/", "platform": "", "project_url": "https://pypi.org/project/hwi/", "project_urls": { "Homepage": "https://github.com/bitcoin-core/HWI", "Repository": "https://github.com/bitcoin-core/HWI" }, "release_url": "https://pypi.org/project/hwi/1.0.3/", "requires_dist": [ "ecdsa (>=0.13.0,<0.14.0)", "hidapi (>=0.7.99,<0.8.0)", "libusb1 (>=1.7,<2.0)", "mnemonic (>=0.18.0,<0.19.0)", "pyaes (>=1.6,<2.0)", "typing-extensions (>=3.7,<4.0)" ], "requires_python": ">=3.6,<4.0", "summary": "A library for working with Bitcoin hardware wallets", "version": "1.0.3" }, "last_serial": 5998295, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "a2849a297b988899afe69777a72ed57c", "sha256": "7a1060f34e14d9cfe94c0764119145f0b5aed0d673599bdf3cda7341a7a21779" }, "downloads": -1, "filename": "hwi-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a2849a297b988899afe69777a72ed57c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.6", "size": 367668, "upload_time": "2019-03-15T21:00:57", "url": "https://files.pythonhosted.org/packages/f4/6d/535ae08b628ae400f096dc35d3ab5211d1860094d39cfaea8ca55379a9fc/hwi-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "684bf129a6d6f411e6513cbfe09b2a62", "sha256": "15c80e718d1a6810fe4e28bb491a66d67ee28c735714fc1891e2158d0812c3e4" }, "downloads": -1, "filename": "hwi-1.0.0.tar.gz", "has_sig": false, "md5_digest": "684bf129a6d6f411e6513cbfe09b2a62", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.6", "size": 85047, "upload_time": "2019-03-15T21:01:00", "url": "https://files.pythonhosted.org/packages/f3/f7/64102770942c3f583d0bac407fb453a7055405808643507af1c0bc4c621f/hwi-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "0e47f5afffa0d5ad9ad314d1a4c3cf7c", "sha256": "85210c5b320421f018f8133f2014c5b176d822ee346e05fef964ab5372174865" }, "downloads": -1, "filename": "hwi-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0e47f5afffa0d5ad9ad314d1a4c3cf7c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.6", "size": 145706, "upload_time": "2019-06-18T17:23:24", "url": "https://files.pythonhosted.org/packages/0a/d6/1a80b4dc709f659e1cbbbce8a6a29dbe8d9602653bc7e6de67b617ec9a6f/hwi-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "594762104f74d7f09edea4cf6ed7a154", "sha256": "dd1d73c33e9f739fd7fdfbf29c59c4aeb983baec652c12a33cf1abcd81259dd7" }, "downloads": -1, "filename": "hwi-1.0.1.tar.gz", "has_sig": false, "md5_digest": "594762104f74d7f09edea4cf6ed7a154", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.6", "size": 88238, "upload_time": "2019-06-18T17:23:26", "url": "https://files.pythonhosted.org/packages/2b/8f/782409508c2614c028a3029ccf6316619ca8afd1bd83bba515404a14cc47/hwi-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "344ac47a259116da0c9f86deda20c924", "sha256": "e5e6b29ee6a6a0b6edf761d6cc59c703dce9a4ab8156ed36c3ff27485fd45e6b" }, "downloads": -1, "filename": "hwi-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "344ac47a259116da0c9f86deda20c924", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.6", "size": 149654, "upload_time": "2019-08-28T20:08:45", "url": "https://files.pythonhosted.org/packages/55/24/d048ac1cf14ed89b7e28ae6b48d851c8b7c64fd19b942ea7e8ef33968c4d/hwi-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11039b7ddf316498a9c5aed4ec273b88", "sha256": "0adaac842fec1d4ebb3288288735d496ed0c02f633fe0a9189e3a38789b16fd4" }, "downloads": -1, "filename": "hwi-1.0.2.tar.gz", "has_sig": false, "md5_digest": "11039b7ddf316498a9c5aed4ec273b88", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.6", "size": 90480, "upload_time": "2019-08-28T20:09:07", "url": "https://files.pythonhosted.org/packages/62/5f/bda5d6cf6d3e81c2e27342ecad05ec0a7271ae0994acabef5f57e1b32d21/hwi-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "429eb24d47801c88a9041c8fc39a6b48", "sha256": "4689d95e2f0fa2042433097a9fa4d0b2fa1087ad813767aec4e15096b7b9f2ca" }, "downloads": -1, "filename": "hwi-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "429eb24d47801c88a9041c8fc39a6b48", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 150075, "upload_time": "2019-10-19T01:49:24", "url": "https://files.pythonhosted.org/packages/10/82/c62f111c6d3019138b177827d6463c92b0d245b03a29b339a3f087e2b933/hwi-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b650e56be11d63e34ec4e5e36b45610", "sha256": "b48918ad15e98a16e22ae8de99e6dd53e7af17ee9f954e8e5deb1ad36fe35392" }, "downloads": -1, "filename": "hwi-1.0.3.tar.gz", "has_sig": false, "md5_digest": "6b650e56be11d63e34ec4e5e36b45610", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 90967, "upload_time": "2019-10-19T01:49:26", "url": "https://files.pythonhosted.org/packages/b8/2b/f43b716be10e8dd3177c7b6eb1f4ae76ae366a6cc05353f6c7a76a9e9a93/hwi-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "429eb24d47801c88a9041c8fc39a6b48", "sha256": "4689d95e2f0fa2042433097a9fa4d0b2fa1087ad813767aec4e15096b7b9f2ca" }, "downloads": -1, "filename": "hwi-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "429eb24d47801c88a9041c8fc39a6b48", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 150075, "upload_time": "2019-10-19T01:49:24", "url": "https://files.pythonhosted.org/packages/10/82/c62f111c6d3019138b177827d6463c92b0d245b03a29b339a3f087e2b933/hwi-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b650e56be11d63e34ec4e5e36b45610", "sha256": "b48918ad15e98a16e22ae8de99e6dd53e7af17ee9f954e8e5deb1ad36fe35392" }, "downloads": -1, "filename": "hwi-1.0.3.tar.gz", "has_sig": false, "md5_digest": "6b650e56be11d63e34ec4e5e36b45610", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 90967, "upload_time": "2019-10-19T01:49:26", "url": "https://files.pythonhosted.org/packages/b8/2b/f43b716be10e8dd3177c7b6eb1f4ae76ae366a6cc05353f6c7a76a9e9a93/hwi-1.0.3.tar.gz" } ] }