Library to read/write data to bitcoin transaction outputs.
Project description
A library to read/write data to bitcoin transactions as nulldata outputs.
Installation
pip install btctxstore
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)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
btctxstore-4.1.0.tar.gz
(18.7 kB
view hashes)