🐍 Client side implementation for TREZOR-compatible Bitcoin hardware wallets.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
Edward Betts 0c0d7ef893 Include tests in release source tarball
It would be great to include the test suite in the pypi release tarball.
That way people who download and build the release can run the tests to
ensure the library is working.

Linux distributions, such as Debian, base their packages of Python
modules on the pypi release. This means the test suite can be run when
building a Debian package, it should catch mistakes in the packaging or
errors in dependencies.

I've written some more on this topic on the Debian Python mailing list.
https://lists.debian.org/debian-python/2016/04/msg00074.html
8 years ago
tests fix spelling of TREZOR 8 years ago
tools fix spelling of TREZOR 8 years ago
trezorlib Revert "Added code to make trezor-agent work with keepkey." 8 years ago
.gitignore remove images 9 years ago
.travis.yml drop python 2.6 and older, 3.3 and older 8 years ago
COPYING python-trezor is LGPLv3 9 years ago
MANIFEST.in Include tests in release source tarball 8 years ago
README.rst fix spelling of TREZOR 8 years ago
build_pb.sh cleanup protobuf mess 11 years ago
cmdtr.py rename cmdtr.py to trezorctl (but keep symlink for now) 9 years ago
helloworld.py Update hashbang to use /usr/bin/env python 9 years ago
mnemonic_check.py Update hashbang to use /usr/bin/env python 9 years ago
setup.py bump version 8 years ago
trezorctl fix spelling of TREZOR 8 years ago
trezorctl-emu.sh rename cmdtr.py to trezorctl (but keep symlink for now) 9 years ago

README.rst

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

.. image:: https://travis-ci.org/trezor/python-trezor.svg?branch=master
    :target: https://travis-ci.org/trezor/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/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**

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 libusb-1.0-0-dev libudev-dev git
* git clone https://github.com/trezor/python-trezor.git
* cd python-trezor
* python setup.py install (or develop)