coinsurenz / LibreTX

Create Bitcoin transactions without restrictions and better understand their contents
37 stars 7 forks source link

LibreTX

Create Bitcoin transactions without restrictions and better understand their contents

CodeFactor

LibreTX

LibreTX is a program that allows you to create Bitcoin transactions with input data that you manually provide. Users can select a transaction type and enter their data for version, input index, transaction ID, the scriptpubkey to be signed, sequence, output amount and scriptpubkey addresses, private keys, hashtype and locktime.

This allows a User to not only manage their UTXO set and create a transaction comprising of various inputs and outputs that may be difficult with other Bitcoin software, but also allows the User to easily compare different transaction formats and better understand how the inputs translate to the final transaction.

With the exception of the ECDSA and address decoding functions this was coded from scratch as both a way for me to learn all the subtilties of creating and signing the various varieties of Bitcoin transactions, and also to make life a little easier for those who want to learn more about transaction creation or even manually manage their UTXO set at a granular level.

This is intended as an educational tool and should not be treated as a secure tool to use for mainnet transactions

Installation

From Source:

At the command line:

git clone https://github.com/coinsurenz/LibreTX

enter the LibreTX directory

Dependencies:

requires python3

install the following dependecies with pip:

pip install PyQt5 ecdsa pbkdf2

To Run

python libre_tx.py

Windows Users

A Windows .EXE executable is available in the releases section. At this stage the included splash image and icon need to be located in the same directory as the exe file when it is run

Usage

A walkthrough video for each type of transaction can be found here:

https://vimeo.com/350472108

A start to finish explaination of how to send a transaction for absolute beginners:

https://vimeo.com/350743738

Links for further reading

If you'd like to read up a little more about the components used in constructing a transaction here are some handy links

Transaction Data.
Transactions- Bitcoin Wiki.
Input Index.
Script Pubkey.
Sequence.
Sighash Types.
Locktime.
What is Segwit.
Mastering Bitcoin by Andreas M. Antonopoulos.
Programming Bitcoin by Jimmy Song.