Skip to content

DhruvKhemani/Praesidium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Praesidium

Praesidium is an open source, easy-to-use bitcoin wallet for Blockchain Security 2Go cards written in Python. It is made for consumers and developers that want to experience almost all of the cards functionalities in a fast and intuitive GUI.

More pictures can be found below under Screenshots.

Features

Praesidium enables you to do a lot of things with your Blockchain Security 2Go card:

  • Generate new keypairs
  • List all avaliable keypairs
  • Show your Bitcoin address (also in form of a QR code)
  • Unlock the card via a PIN
  • Show how many Bitcoins you possess
  • Generate and broadcast a transaction
  • Log each transaction made in a text file

If you want to learn Bitcoin on a low level the transaction logs even show you how each transaction was built byte for byte.

Installation

To install Praesidium either clone this repository or download the Praesidium folder to your machine.

Please note that this software is inteded for use with Python 3. It was tested and build on Python versions 3.6.8 and 3.7.4.

Dependencies

Praesidium uses a total of 4 dependencies which do not come nativly with python:

You can use the PIP installer (for Python 3!) to install most these dependencies, the blocksec2go library requires additional steps:

Base58:

pip install base58

Bech32:

pip install bech32

Blocksec2go:

To install the blocksec2go python library i recommend you follow this installation guide since this library uses the pyscard library which requieres swig.

If you are on Windows and already have chocolately package manager installed you can do the following steps to install the blocksec2go library:

choco install swig
pip install blocksec2go

If any errors pop up, you are probably still missing some files/dependencies. I suggest you either google the error or open a new issue with a screenshot.

Qt for Python:

pip install pyside2

Qrcode:

Qrcode needs Pillow (a Python Imaging Library fork) to function correctly.

pip install Pillow
pip install qrcode

Usage

To start the application go into the praesidium folder and run the following command:

python praesidium.py

If you are not using the 'Identiv uTrust 3700 F' reader (which you most probably are not) then change the string in line 24 inside praesidium.py to your readers name:

reader_name = 'Identiv uTrust 3700 F'

If you do not know your readers name you can run the command blocksec2go list_readers in your terminal/cli after installing the blocksec2go library. This will show you a list of readers connected to your system. You do not need to copy the full name of the reader, but you should keep in mind that Praesidium chooses the first reader from that list with the name you entered in line 24. So if you have multiple readers connected with the same name it is recommended you either enter the full name of the reader in reader_name or you disconenct all other readers except for the one you intend on using.

TLDR: Change the value of the reader_name variable to your readers name and remember that Praesidium does not support multiple readers with the same name (It uses the "first" reader with that name and ignores the others)!

License

The source code is licensed under GPLv3. The license is available here.

The PySide2 library is licenced under LGPLv3. The source code of this library was not modified in any way for this project. You can find the source code for PySide2 here.

Screenshots

Default start screen: Screenshot

Blockchain Security 2Go card gets placed on reader: Screenshot

Another card, that is not a Blockchain Security 2Go card, gets placed on the reader: Screenshot

A full Keypair screen: Screenshot

Before there were 27 keypairs and now a new keypair (Keypair 28) gets generated: Screenshot

Keypair 29 was entered in the Keypair number box, which not a valid keypair because it has not been generated yet: Screenshot

Main window of Keypair 1 with PIN already entered correctly: Screenshot

A wrong PIN is entered (Note that a PIN can only be entered 3 times incorrectly, after that the card is locked and has to manually be unlocked via the command line and the PUK): Screenshot

Balance on this Bitcoin address is too low to sucessfully pay the desired amount to the target address: Screenshot

The returned change falls under the minimum amount of Satoshi required to make a transaction (This means either the fees can be increased, which the program does by default, or the amount can be increased or more balance can be added to this address so that the returned change is above the threshhold): Screenshot

A broadcastable transaction is generated and you can choose to broadcast or store it (This is done in case you want to push the transaction manually or at a later time): Screenshot

About

Praesidium - An open source bitcoin wallet for Blockchain Security 2Go cards

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages