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)
Metadata
Release files for btctxstore 4.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| btctxstore-4.8.0.tar.gz | 23.2 kB | Without provenance | Details |
Release files / btctxstore-4.8.0.tar.gz
| Download URL | btctxstore-4.8.0.tar.gz |
|---|---|
| Size | 23.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7793e1dfa589dc52402f6a7b2347975449a96ef430905aebe56407aec704c408
|
|
BLAKE2b-256 checksum How to use checksums |
4c0a56ebbd2db0e5b72803f7d78a1803e634ef71fbfa8ebfa1146c4b78002767
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for btctxstore 4.8.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.