Go to file
Pavol Rusnak a6c489ab4b
update protobuf
2016-11-23 13:27:21 +01:00
bash_completion.d add initial bash_completion script 2016-06-22 17:26:11 +02:00
tests update to new ApplySettings order 2016-11-22 22:04:23 +01:00
tools tools: fix signtest.py 2016-11-09 12:39:25 +01:00
trezorlib update protobuf 2016-11-23 13:27:21 +01:00
.gitignore add tox 2016-10-17 14:17:42 +02:00
.travis.yml drop python 2.6 and older, 3.3 and older 2016-02-18 11:19:15 +01:00
COPYING python-trezor is LGPLv3 2015-01-30 23:55:29 +01:00
MANIFEST.in Include the COPYING in sdist (#82) 2016-11-17 01:30:05 +01:00
README.rst update readme 2016-09-14 21:36:16 +02:00
build_pb.sh monkey-patch build_pb.sh to support python3 2016-11-05 21:56:42 +01:00
cmdtr.py rename cmdtr.py to trezorctl (but keep symlink for now) 2015-02-22 14:23:39 +01:00
requirements.txt add tox 2016-10-17 14:17:42 +02:00
setup.py bump version 2016-10-21 15:25:32 +02:00
tox.ini add tox 2016-10-17 14:17:42 +02:00
trezorctl Support for matrix recovery 2016-11-23 11:42:20 +01:00

README.rst

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

.. image:: https://travis-ci.org/trezor/python-trezor.svg?branch=master
    :target: https://travis-ci.org/trezor/python-trezor

.. image:: https://badges.gitter.im/trezor/community.svg
    :target: https://gitter.im/trezor/community

Client side implementation for TREZOR-compatible Bitcoin hardware wallets.

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

Install
-------

(Run with sudo if not running in superuser mode under Linux)

.. code::

  pip install trezor

On Linux you might need to run these commands first:

.. code::
  sudo apt-get install python-dev cython libusb-1.0-0-dev libudev-dev git
  sudo pip install setuptools

Example
-------

also found in ``tools/helloworld.py``

.. code:: python

  #!/usr/bin/env 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()

PIN Entering
------------

When you are asked for PIN, you have to enter scrambled PIN. Follow the numbers shown on TREZOR display and enter the their positions using the numeric keyboard mapping:

=== === ===
 7   8   9
 4   5   6
 1   2   3
=== === ===

Example: your PIN is **1234** and TREZOR is displaying the following:

=== === ===
 2   8   3
 5   4   6
 7   9   1
=== === ===

You have to enter: **3795**