This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Library to read/write data to bitcoin transaction outputs.

Project Description

A library to read/write data to bitcoin transactions as nulldata outputs.

Installation

Install btctxstore lib

pip install btctxstore

Use fast native functions

There is experimental code that will call into OpenSSL for slow functions. To enable this, set (and export) environment variable PYCOIN_NATIVE=openssl.

$ export PYCOIN_NATIVE=openssl

storing data in nulldata outputs

Store data in blockchain in new transaction with nulldata output.

# from examples/store_nulldata.py
import binascii
from btctxstore import BtcTxStore

# Wallet used to pay for fee. Please do not spend the testnet coins is
# this wallet or the example will fail due to lack of funds.
wifs = ["cUZfG8KJ3BrXneg2LjUX4VoMg76Fcgx6QDiAZj2oGbuw6da8Lzv1"]

# use testnet and dont post tx to blockchain for example
api = BtcTxStore(testnet=True, dryrun=True)

# store data in blockchain as nulldata output (max 40bytes)
data = binascii.hexlify(b"github.com/F483/btctxstore")
txid = api.store_nulldata(data, wifs)
print(txid)

retrieving data from nulldata outputs

Retrieve transaction from blockchain and read data stored as nulldata output.

# from examples/retrieve_nulldata.py
from btctxstore import BtcTxStore

api = BtcTxStore(testnet=True, dryrun=True)  # use testing setup for example
txid = "987451c344c504d07c1fa12cfbf84b5346535da5154006f6dc8399a8fae127eb"
hexnulldata = api.retrieve_nulldata(txid)
print(hexnulldata)

sign/verify data (bitcoind compatible)

# from examples/signverify.py
import binascii
from btctxstore import BtcTxStore

api = BtcTxStore(testnet=True, dryrun=True)  # use testing setup for example
wif = api.create_key()  # create new private key
address = api.get_address(wif)  # get private key address
data = binascii.hexlify(b"messagetext")  # hexlify messagetext

# sign data with private key
signature = api.sign_data(wif, data)
print("signature:", signature)

# verify signature (no public or private key needed)
isvalid = api.verify_signature(address, signature, data)
print("valid signature" if isvalid else "invalid signature")

Split utxos

Split utxos of wallet unitil limit or max_outputs reached.

# from examples/split_utxos.py
from btctxstore import BtcTxStore

# Please do not spend the testnet coins is this wallet
# or the example will fail due to lack of funds.
wif = "cUZfG8KJ3BrXneg2LjUX4VoMg76Fcgx6QDiAZj2oGbuw6da8Lzv1"

# use testnet and dont post tx to blockchain for example
api = BtcTxStore(testnet=True, dryrun=True)

limit = 10000000  # 0.1BTC
txids = api.split_utxos(wif, limit)
print(txids)
Release History

Release History

This version
History Node

4.8.0

History Node

4.7.1

History Node

4.7.0

History Node

4.6.1

History Node

4.6.0

History Node

4.5.0

History Node

4.4.0

History Node

4.3.0

History Node

4.2.1

History Node

4.2.0

History Node

4.1.2

History Node

4.1.1

History Node

4.1.0

History Node

4.0.0

History Node

3.0.0

History Node

2.2.0

History Node

2.1.2

History Node

2.0.2

History Node

2.0.1

History Node

2.0.0

History Node

1.1.1

History Node

1.0.1

History Node

1.0.0

History Node

0.1.1

History Node

0.1.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
btctxstore-4.8.0.tar.gz (23.2 kB) Copy SHA256 Checksum SHA256 Source May 24, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting