🐍 Client side implementation for TREZOR-compatible Bitcoin hardware wallets.
Go to file
2014-12-10 15:42:38 +01:00
docs Document transport_hid class 2014-08-26 14:06:19 +00:00
tests add test for GetAddress with show flag on 2014-12-10 15:42:38 +01:00
tools Refactored password.dat format, backward incompatible change. 2014-06-12 21:45:33 +02:00
trezorlib add button_wait feature for tests 2014-12-10 15:26:18 +01:00
.gitignore fix unittests using client.get_public_node method 2014-10-22 00:26:07 +02:00
build_pb.sh cleanup protobuf mess 2013-12-16 17:40:25 +01:00
cmdtr-emu.sh add cmdtr-emu.sh for easier work with emulator 2014-06-13 16:42:23 +02:00
cmdtr.py update encrypt/decrypt message commands 2014-11-26 18:49:22 +01:00
helloworld.py update example 2014-08-11 21:33:17 +02:00
mnemonic_check.py Updated warning 2014-02-03 11:36:56 +01:00
README.rst update example 2014-08-11 21:33:17 +02:00
setup.py pin protobuf dependency to 2.5.0 2014-10-19 23:14:06 +02:00

python-trezor
=============

Client side implementation for Trezor-compatible Bitcoin hardware wallets.

See http://bitcointrezor.com for more information.

Example
-------

also found in ``helloworld.py``

.. code:: python

  #!/usr/bin/python

  from trezorlib.client import TrezorClient
  from trezorlib.transport_hid import HidTransport

  def main():
      # List all connected TREZORs on USB
      devices = HidTransport.enumerate()

      # Check whether we found any
      if len(devices) == 0:
          print 'No TREZOR found'
          return

      # Use first connected device
      transport = HidTransport(devices[0])

      # Creates object for manipulating TREZOR
      client = TrezorClient(transport)

      # Print out TREZOR's features and settings
      print client.features

      # Get the first address of first BIP44 account
      # (should be the same address as shown in mytrezor.com)
      bip32_path = client.expand_path("44'/0'/0'/0/0")
      address = client.get_address('Bitcoin', bip32_path)
      print 'Bitcoin address:', address

      client.close()

  if __name__ == '__main__':
      main()

How to install (Windows)
------------------------
* Install Python 2.7 (http://python.org)
* Install Cython (Windows binaries on http://cython.org/#download)
* Install Microsoft Visual Studio 2008 Express
* Add "C:\\Program Files (x86)\\Microsoft Visual Studio 9.0" to system PATH
* Clone repository (using TortoiseGit) to local directory
* Run C:\\python27\\python.exe setup.py install (or develop)

How to install (Debian-Ubuntu)
------------------------------
* sudo apt-get install python-dev python-setuptools cython
* git clone https://github.com/trezor/python-trezor.git
* cd python-trezor
* python setup.py install (or develop)

Internal note:
--------------
* Clone cython-hidapi from github.com/trezor/cython-hidapi
* Go to cython-hidapi directory
* Run "git submodule init" in Git Bash (TortoiseGit)
* Run "git submodule update" in Git Bash (TortoiseGit)